Comment faire un calcul ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment faire un calcul ?

par Sebe » 08 déc. 2006, 12:35

au temps pour moi j'ai oublié le return (false); (un copier/coller fait a la va-vite ) :lol:

de plus tu n'a pas obligé d'affécter $palier*$facteur/$tempsp à $vitesse pour faire un return (encore ce fichu copier/coller...)
Ok, un grand merci pour ta réponse

par Devether » 08 déc. 2006, 12:28

au temps pour moi j'ai oublié le return (false); (un copier/coller fait a la va-vite ) :lol:

de plus tu n'a pas obligé d'affécter $palier*$facteur/$tempsp à $vitesse pour faire un return (encore ce fichu copier/coller...)

EDIT : C'est corrigé!

par Sebe » 08 déc. 2006, 11:46

Salut,

Là, j'ai un soucis avec le post de Devether et de Ajoloca qui me proposent 2 fonctions qui différent :

Proposition de Devether
// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($vitesse = $palier*$facteur/$tempsp);
    }  
Proposition de Ajoloca
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($palier*$facteur/$tempsp);
    return (false);
} 
N'étant pas une bête de concours de la programmation, je suis perdu ... laquelle choisir, qu'est-ce que chacune d'elle a de mieux que l'autre, ... ?

Merci

par Devether » 08 déc. 2006, 10:26

1. je dois donc laisser tomber 'function vitesse1', 'function vitesse2' et 'function vitesse3' pour 'function vitesse' ... sera-t-il toujours bien fait la différence entre les 3 vitesses ?
C'est a toi de définir a chaque fois une variable en fonction des paramètres que tu passes en argument.

exemple :

<?php
// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($palier*$facteur/$tempsp);
    return (false);
    } 

$palier = 800;
$facteur = 1/(24*60);
$palier3  = ... ;
...

// Appel de la fonction
$vitesse1 = vitesse($tempsp1, $palier, $facteur); 
$vitesse2 = vitesse($tempsp2, $palier, $facteur); 
$vitesse3 = vitesse($tempsp3, $palier3, $facteur); 

// Affichage de la valeur
echo $vitesse1."<br />"; 
echo $vitesse2."<br />"; 
echo $vitesse3."<br />"; 
?>

par Sebe » 08 déc. 2006, 01:27

Re,

J'ai fais les changement et il me signale qu'il y a un problème:
Parse error: parse error, unexpected '}' in F:\wamp\www\facile\components\com_cat\cat.php on line 10
C'est que '}' est fermé et il en manque un ouvert pour faire le compte ... où dois-je le mettre?

Merci



Edition: J'ai trouvé :
// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($palier*$facteur/$tempsp);
	return (false);
} 
Merci[/b]

par Ajoloca » 08 déc. 2006, 01:16

Re,
C'est normal, tu déclares dans la focntion 3 paramètres et quand tu l'appelles tu ne lui passes que un seul. Comme tes paramètres n'ont pas de valeur par défaut, il n'aime pas.
<?php// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($palier*$facteur/$tempsp);
    }
    return (false);
}
$palier = 800;
$facteur = 1/(24*60);
// Appel de la fonction
$vitesse = vitesse($tempsp1, $palier, $facteur);
// Affichage de la valeur
echo $vitesse; 
?>
Comme tu vois j'ai fais QQ modifs dans ta fonction. Comme on l'a vu précedement la variable $vitesse à l'intérieur de la fonction ne sert à rien, si, à retarder le PGM et à consommer de la mémoire inutillement.

Pense à donner une valeur à $tempsp1 avant l'appel de la fonction, sinon elle va te retourner "false"

par Sebe » 08 déc. 2006, 01:03

Je parle de celle qui calcule la vitesse:
<?php// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($vitesse = $palier*$facteur/$tempsp);
    } 

$palier = 800;
$facteur = 1/(24*60);
// Appel de la fonction
$vitesse = vitesse($tempsp1);
// Affichage de la valeur
echo $vitesse; 
?>
qui me renvoit ce jolie message d'erreur:
Warning: Missing argument 2 for vitesse(), called in F:\wamp\www\facile\components\com_cat\cat.php on line 91 and defined in F:\wamp\www\facile\components\com_cat\cat.php on line 6

Warning: Missing argument 3 for vitesse(), called in F:\wamp\www\facile\components\com_cat\cat.php on line 91 and defined in F:\wamp\www\facile\components\com_cat\cat.php on line 6
C'est pas coton !

par Ajoloca » 08 déc. 2006, 00:57

Re,
De quelle fonction tu parles ?

par Sebe » 08 déc. 2006, 00:56

Un grand merci pour ton aide grâce à elle et ce que j'ai continué à faire de mon coté j'ai ce code:
<?php
// Fonction d'évaluation de la récupération
function recup($fcrecup, $fcp3){
   if($fcrecup == 0 || $fcp3 == 0) return(" "); //Pas de message d'erreur !
   if($fcrecup < ($fcp3 * 0.5652)) return("Excellente");
   if($fcrecup < ($fcp3 * 0.5815)) return("Très bonne");
   if($fcrecup < ($fcp3 * 0.6033)) return("Bonne");
   if($fcrecup < ($fcp3 * 0.6304)) return("Moyenne");
   if($fcrecup < ($fcp3 * 0.663)) return("Médiocre");
   if($fcrecup < ($fcp3 * 0.6902)) return("Mauvaise");
   return("Très mauvaise");
} 
// Appel de la fonction
$recup = recup($fcrecup, $tempsp3);
// Affichage de la valeur calculée
echo $recup;
?>
Une merveille (pour moi !)

Ici je bosse sur l'autre fonction qui ne me mets un message d'erreur qui est dù à l'abscence de valeur dans la variable ... je cherche un forçage bien placé pour que la variable ne garde pas toujours la même valeur !

Un grand merci pour l'aide

par Ajoloca » 08 déc. 2006, 00:34

Re,

En PHP un seul signe = signifie affectation
$a = 5; // Attribue la valeur 5 la variable $a
Pour tester l'égalité en valeur c'est le double = (==)
if($a == 5) // Vrai si le contenu de $a est = 5 mais aussi si $a = '5' (caractère)
Pour tester l'égalité et le type c'est le triple = (===)
if ($a === 5) // Vrai si $a est = 5 Faux si $a = '5' (caractère)
Donc dans ta focntion tu fais une affectation
if($fcrecup = 0 or $fcp3 = 0)
et non un test.

par Sebe » 07 déc. 2006, 23:47

Re,

Je suis toujours occupé de découvrir mais j'ai encore une question avec la fonction d'évaluation de la récupération:
<?php
// Fonction d'évaluation de la récupération
function recup($fcrecup, $fcp3){
   if($fcrecup = 0 or $fcp3 = 0) return(" "); //Pas de message d'erreur !
   if($fcrecup < $fcp3 * 0.5652) return("Excellente");
   if($fcrecup < $fcp3 * 0.5815) return("Très bonne");
   if($fcrecup < $fcp3 * 0.6033) return("Bonne");
   if($fcrecup < $fcp3 * 0.6304) return("Moyenne");
   if($fcrecup < $fcp3 * 0.663) return("Médiocre");
   if($fcrecup < $fcp3 * 0.6902) return("Mauvaise");
   return("Très mauvaise");
} 

// Appel de la fonction
$recup = recup($fcrecup, $tempsp3);
// Affichage de la valeur calculée
echo $recup;
?>
le message est d'entrée 'Très mauvaise'. Je comprend donc qu'il n'y aucune variable dont la valeur égale à 0 ... c'est bien cela ?

Comment y remédier ?

Merci

par Sebe » 07 déc. 2006, 20:20

Salut,
tu peux faire mieux
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($vitesse = $palier*$facteur/$tempsp);
    } 
Merci pour ta proposition mais je me pose des questions de débutant (peut-être !):
  • 1. je dois donc laisser tomber 'function vitesse1', 'function vitesse2' et 'function vitesse3' pour 'function vitesse' ... sera-t-il toujours bien fait la différence entre les 3 vitesses ?
    2. si pour la valeur $facteur, il vaut mieux qu'elle soit égal à '0.0006944444' ou à '1/(24*60)' ?
Merci pour les infos

par Devether » 07 déc. 2006, 17:20

tu peux faire mieux
function vitesse($tempsp, $palier, $facteur) {
    if($tempsp != 0) return ($vitesse = $palier*$facteur/$tempsp);
    } 

par Sebe » 07 déc. 2006, 17:08

Salut,
Return va te sortir de ta fonction
Donc, il est souhaitable de tout séparer ainsi:
function vitesse1($tempsp1) {
	if($tempsp1 != 0) return ($vitesse1 = 800*0.0006944444/$tempsp1);
	}

function vitesse2($tempsp2) {
	if($tempsp2 != 0) return ($vitesse2 = 800*0.0006944444/$tempsp2);
	}

function vitesse3($tempsp3, $palier3) {
	if($tempsp3 != 0 and $palier3 != 0) return ($vitesse3 = $palier3*0.0006944444/$tempsp3);	
	}
?

Merci

par Sebe » 07 déc. 2006, 16:02

Re,

Dans le fichier 'cat.php', il y a ce tableau qui s'affiche
Image
ou l'utilisateur remplit les cases blanches qui seront les saisies !
Au moment de la validation du formulaire, les valeurs sont retournées dans un fichier où je stocke toutes mes fonctions 'cat.js' où, je voudrais, qu'elles soient traitées et renvoyées sur la 1er page !

Par exemple, pour le palier 1 où la distance est de 800 m, je devrais d'abord y voir si (dans le fichier 'cat.js') $tempsp1 est différent de 0 avant de faire le calcul $vitesse1 = 800*0.0006944444/$tempsp1 afin que le tableau (du fichier 'cat.php') se remplisse ... je peux fournir le fichier Excell pour montrer mes intentions mais où le poster?

mere-teresa,
Donc, je dois faire 3 fonctions différentes?

Merci à tout les 2