Comment faire un calcul ?

Mammouth du PHP | 545 Messages

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
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

ViPHP
ViPHP | 1961 Messages

08 déc. 2006, 00:57

Re,
De quelle fonction tu parles ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 545 Messages

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 !
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

ViPHP
ViPHP | 1961 Messages

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"
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 545 Messages

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]
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphant du PHP | 134 Messages

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 />"; 
?>
Modifié en dernier par Devether le 08 déc. 2006, 12:30, modifié 1 fois.

Mammouth du PHP | 545 Messages

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
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphant du PHP | 134 Messages

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é!
Modifié en dernier par Devether le 08 déc. 2006, 12:37, modifié 1 fois.

Mammouth du PHP | 545 Messages

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
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!