guignol71
Messages postés29Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention10 janvier 2011 24 déc. 2007 à 12:13
Autant pour moi Yoman64!
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 24 déc. 2007 à 12:03
Salut,
petite précision (désolé, je ne peux pas m'empecher la remarque:)), é n'est pas une valeur ASCII, la valeur ascii de 'é' est 233, é et cie sont des "entitées html" (J'ai peut être pas la bonne traduction, je ne connais que le terme anglais html entities). Pour utiliser sa valeur ascii pure tu peux toujours faire é
Mais c'est un bon conseil, encodage correct ou pas, il y a toujours une possibilité que les accents s'affiche mal sous certain navigateur/plateforme, du coup les entitées assure que les accents vont être bien affiché :)
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 24 déc. 2007 à 10:46
Ok je vais changer ça, merci pour le brevet.
guignol71
Messages postés29Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention10 janvier 2011 24 déc. 2007 à 10:44
Petit détail : pour tes accents pense à les mettre sous leur valeur ASCII, ex : remplace tes é par é et ce sera un bon début pour être aux normes W3C...
Sinon merde pour ton brevet l'année prochaine.
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 20 déc. 2007 à 17:41
Alors, je suis bon dans toutes les matières surtout les maths mais là >< J'ai rien compris
kiki67100
Messages postés313Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention10 août 20131 20 déc. 2007 à 03:13
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 19 déc. 2007 à 12:58
Bah je précise je suis en 4eme au collège et le codage, c'est juste parce que j'adore l'ordinateur et le code. Et non je sais pas ce que c'est les... Les quoi déjà ? Ah oui les reperes orthonomes.
guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016 18 déc. 2007 à 23:13
Oui bon Pour sqrt c'est la rapidité de ma réponse, en fait c'est le fait d'utilser un repère qui permet cela.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 18 déc. 2007 à 23:08
quel rapport entre === et sqrt ? le probleme dans mon code n'etait pas sur sqrt... il etait sur le typage plus generalement...
guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016 18 déc. 2007 à 23:05
Coucou,
pour la classe point, tu as as raison, mais j'ai mis ce bout de code en connaissance de cause et le but était d'être pedagogue (et pour ne pas brûler les étapes) : A 13 ans tu ne connais pas forcément l'objet (dans 99.9999% des cas).Et pour le === : je n'ai pas mis de sqrt donc aucun pb.
Et en plus dans mon bout de code si j'avais voulu être d'equerre, j'aurais mis un test sur les types car là ça peut renvoyer true si tu ne passes pas un NULL en param
Moi je connaissais même pas la prog à ce t'age là.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 18 déc. 2007 à 22:55
c'est beaucoup plus lourd pour ton serveur...
dvdstory
Messages postés192Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention10 août 2009 18 déc. 2007 à 22:52
Et si je confirme, j'utilise bien Ajax, seulement du texte, je n'utilise pas la structure xml lorsque je communique avec le serveur.
je suis d'accors on aurait pu le faire en Javascript, mais mon code PHP fait quand même 800 lignes de code pour le mode avancé et 300 pour le mode basic. Je trouve ça quand meme un peu lourd a charger en plus dans le navigateur internet, il y a déja l'index(XHTML), les 2 fichiers css (un pour l'écran et l'autre pour l'imprimante) et les images.
Et cela consomme moins de resource pour l'internaute (mais plus pour le serveur) et consomme moins de bande passante pour les 2 (internaute et serveur).
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 18 déc. 2007 à 22:36
les globales c'est le mal...
n'utilise pas pow pour calculer un carre, pow utilise a^b=e^(b*ln(a)) et c'est moche car tu perds en precision...
pour les === ici tu ne dois pas avoir trop de problemes, du fait du retour de pow...
plutot que de passer des array, tu devrais faire une class Point tout simplement
dvdstory, j'espere que ce que tu dis est faux... j'espere que ce site ne fait pas d'ajax pour ca... ca n'a aucun interret, autant tout faire en javascript...
guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016 18 déc. 2007 à 22:08
Salut,
@geantfire=>je sais pas si tu apprends les repères orthonormés( ça fait un peu loin la 4éme pour moi) mais pourquoi ne passerais-tu pas en paramètre les coordonnées des points dans le plan sous forme de tableau? à moins que tu aies fait ce code dans le but d'un exercice bien défini:
Bon comme ça m'amuse un exemple:
$triangle2=array('A'=>array('x'=>0,'y'=>0),
'B'=>array('x'=>0,'y'=>1),
'C'=>array('x'=>1,'y'=>1)) ;
function isRectangle($aPts)
{
/**
comme il me semble
AB² = (Xb-Xa)² + (Yb-Ya)²
cela revient à écrire $CarreAB=pow(($aPts['B']['x']-$aPts['A']['x']),2)+pow(($aPts['B']['y']-$aPts['A']['y']),2);
idem Pour BC² et AC²
*/
$CarreAB=pow(($aPts['B']['x']-$aPts['A']['x']),2)+pow(($aPts['B']['y']-$aPts['A']['y']),2);
$CarreBC=pow(($aPts['C']['x']-$aPts['B']['x']),2)+pow(($aPts['C']['y']-$aPts['B']['y']),2);
$CarreAC=pow(($aPts['C']['x']-$aPts['A']['x']),2)+pow(($aPts['C']['y']-$aPts['A']['y']),2);
/**
soit tu fais
*/
return ( ($CarreAB===$CarreBC+$CarreAC || $CarreAC===$CarreBC+$CarreAB) || $CarreBC === $CarreAC+$CarreAB );
/**
ou sinon si tu préfères (c'est peut plus compréhensible sous cette forme)
*/
if ( $CarreAB===$CarreBC+$CarreAC )
return true;
if ( $CarreAC===$CarreBC+$CarreAB )
return true;
if ( $CarreBC === $CarreAC+$CarreAB )
return true;
return false;
}
if (isRectangle($triangle1))
echo '
rectangle';
else echo '
pas rectangle';
if (isRectangle($triangle2))
echo '
rectangle';
else echo '
pas rectangle';
Et si tu veux récupérer la longueur de l'hypothénuse eh ben là, faut apprendre à utiliser les variables globales , ou comme l'a dit malalam par reference (je dis ça mais la, t'as le temps pour ça...)
dvdstory
Messages postés192Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention10 août 2009 18 déc. 2007 à 22:08
J'en profite pour me faire un peu de pub a propos d'une application web sur le théorème et la réciproque de Pythagore programmé en PHP et en JavaScript (utilisation d'Ajax). Disponible à l'adresse http://www.egrunenberger.com/pythagore/ N'oubliez pas de mettre le mode avancé pour avoir toute les foctions, vous verez c'est bien fait, j'ai pas encore trouvé mieux.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 17 déc. 2007 à 21:28
moi ce qui me fait marrer, c'est que quand on regarde le code de depart, et les codes que vous avez envoye pour corriger, le sien correspond au moins a ce qu'on entend des procedures sur les bancs des cours d'infos... (une procedure, c'est un truc qui sert a faire des choses... c'est a peu de choses pres notre definition des procedures)
vous vous codez en php et pas en pascal alors pour vous, une fonction ca calcule (comme en math), ca a des entrees et une sortie, mais n'affiche rien (c'est pas son role), sauf que vos exemples ne sont pas coherents... le sien, correspond par contre a ce que le prof pense des procedures...
enfin j'ai pas dit qu'en php, ce qu'il a fait devait se faire... mais en algorithmique imperative comme ce que l'on voit en cours, c'est correct... contrairement a vos deux exemples...
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 17 déc. 2007 à 21:18
Il est vrai que le passage par référence n'est pas tout a fait adapter a ce cas précis. Mais si l'on souhaite faire ce genre de fonction, le renvois d'un true ou false est le plus approprié que de renvoyer un array.
Je crois que si l'on a besoin de savoir les valeurs des deux carrés, alors il est plus avantageux de les calculer sans faire appel a une fonction qui retourne un array, non? (Je dis ça tout naivement, c'est une question , je veux savoir selon vous si l'interet de retourner un array dans ce cas précis est justifié)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 17 déc. 2007 à 18:39
php n'est pas fait pour faire des maths, mon exemple le montre plutot bien... la gestion des variables en php devrait permetre d'eviter les casts, alors qu'en fait...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 17 déc. 2007 à 18:25
@Coucou => le triple égal est de toute manière plus rapide. Et j'attends bien 2 types identiques. Il est anormal de jouer avec des flottants et des entiers sans en tenir compte...mon code était juste un exemple sur les références. Si je faisais un code "matheux", je casterai mes valeurs, perso. Et je n'autoriserai que des flottants dans ce cas précis.
Si j'ai retourné les deux valeurs, c'est parce que je m'attends à ce que l'auteur modifie encore mon code...parce que l'idéal est de trouver le moyen (et c'est fgacile), de retourner les valeurs dans les 2 cas, tout en indiquant que dans un cas on est ok, dans l'autre non. Mais c'est facile, ça coule de source. Ma réponse était juste pour Yoman en fait comme je le dis plus haut : juste un exemple sur comment se passer du passage par référence. Mais le mieux est de retourner tes 2 valeurs dans tous les cas...et c'est plus juste : j'attends 2 valeurs, pas une, le carré des côtés et le carré de l'hypothénuse.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 17 déc. 2007 à 18:15
sur une source qui a l'air d'avoir un point commun avec les mathematiques...
je trouve ce morceau de code marrant, en effet, si deux nombres sont egaux, alors ... on renvoie ... un tableau qui contient deux fois ce nombre... formidable non ?
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 17 déc. 2007 à 18:04
Alors je met quoi ? Une fonction qui renvoi TRUE ou FALSE ou autre chose ??
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 17 déc. 2007 à 18:00
Hello,
@Yoman, ce n'est pas très joli ce que tu fais là. 2 variables passées dans une fonction que tu vas redéfinir de toute manière, ce juste pour les afficher sans faire de return dessus...
Beaucoup de fonctions PHP retourne une valeur, un tableau, une ressource etc...ce qu'elles doivent retourner en cas de succès, et false en cas d'échec. Autant garder ce principe. Le passage par référence doit être utilisé dans des buts bien précis, quand on a bien une valeur en amont d'une fonction, et que cette fonction DOIT modifier cette valeur en tenant compte de son origine.
$aReturn=reciproqueDePythagore(5, 4, 3);
if (is_array($aReturn)) {
echo "Donc ce triangle est rectangle d'apres la réciproque du théorème de Pythagore.";
echo "Le carré de l'hypothenuse est égal à : ".$aReturn[0]."
";
echo "Le carre des deux côtés est égal à : ".$aReturn[1];
} else {
echo "Donc ce triangle n'est pas rectangle d'apres la réciproque du théorème de Pythagore.";
}
?>
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 16 déc. 2007 à 13:07
Il n'est pas vraiment utile, c'est juste si tu souhaite affiché certaine choses comme tu le fais :
par exemple toi tu affichais dans ta fonction:
echo "Le carré de l'hypothenuse est égal à : ".$carre_hypothenuse."
";
echo "Le carre des deux côtés est égal à : ".$carre_cotes;
et bien c'est toujours possible en le sortant de la fonction , par exemple:
echo "Le carré de l'hypothenuse est égal à : ".$carre_hypothenuse."
";
echo "Le carre des deux côtés est égal à : ".$carre_cotes;
if ($p)
echo "Donc ce triangle est rectangle d'apres la réciproque du théorème de Pythagore.";
else
echo "Donc ce triangle n'est pas rectangle d'apres la réciproque du théorème de Pythagore.";
?>
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 16 déc. 2007 à 11:48
ici, il n'a probablement pas son utilite
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 16 déc. 2007 à 11:45
Humm oui mais la je t'avoue le signe & je comprends pas ce que tu veux en faire.
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 16 déc. 2007 à 11:36
C'est bien de commencer, mais tu es mieu d'écouter les conseils dès maintenant sinon tu vas être perdu plus tard :P.
Ils ont raison, du html dans une fonction c'est jamais bon puisque ça réduit considérablement sont utilitée... On ne pourrait pas s'en servir dans un autre projet sans la modifier par exemple.
if (reciproqueDePythagore(5, 4, 3))
echo "Donc ce triangle est rectangle d'apres la réciproque du théorème de Pythagore.";
else
echo "Donc ce triangle n'est pas rectangle d'apres la réciproque du théorème de Pythagore.";
?>
C'est pas très mélangeant.
Tu peux égallement ajouté un signe "&" devant les arguments dans ta fonction pour récuperé leurs valeur et les afficher en dehors de la fonction
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 16 déc. 2007 à 11:10
Désolé mais je prefère la garder comme ça parce que comme je commence le PHP je prefere ne pas me melanger.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 16 déc. 2007 à 01:32
idem, et afficher des valeurs pleines de chiffres ca sert a rien... autant minimiser le nombre de variables utilisees et ne pas faire de calculs intermediaires
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 16 déc. 2007 à 00:47
+1 avec Codefalse. C'est la première impression que j'ai eue en voyant ton code...
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 16 déc. 2007 à 00:37
essaye de séparer le code html de ta fonction
ta fonction retourne une valeur, et tu gere le html en dehors de ta fonction ! :)
geantfire
Messages postés17Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention12 mars 2008 15 déc. 2007 à 19:59
C'est ma première source donc je voudrais vos avis s'il vous plait.
24 déc. 2007 à 12:13
24 déc. 2007 à 12:03
petite précision (désolé, je ne peux pas m'empecher la remarque:)), é n'est pas une valeur ASCII, la valeur ascii de 'é' est 233, é et cie sont des "entitées html" (J'ai peut être pas la bonne traduction, je ne connais que le terme anglais html entities). Pour utiliser sa valeur ascii pure tu peux toujours faire é
Mais c'est un bon conseil, encodage correct ou pas, il y a toujours une possibilité que les accents s'affiche mal sous certain navigateur/plateforme, du coup les entitées assure que les accents vont être bien affiché :)
Voici une référence http://en.wikipedia.org/wiki/Html_entities
24 déc. 2007 à 10:46
24 déc. 2007 à 10:44
Sinon merde pour ton brevet l'année prochaine.
20 déc. 2007 à 17:41
20 déc. 2007 à 03:13
19 déc. 2007 à 12:58
18 déc. 2007 à 23:13
18 déc. 2007 à 23:08
18 déc. 2007 à 23:05
pour la classe point, tu as as raison, mais j'ai mis ce bout de code en connaissance de cause et le but était d'être pedagogue (et pour ne pas brûler les étapes) : A 13 ans tu ne connais pas forcément l'objet (dans 99.9999% des cas).Et pour le === : je n'ai pas mis de sqrt donc aucun pb.
Et en plus dans mon bout de code si j'avais voulu être d'equerre, j'aurais mis un test sur les types car là ça peut renvoyer true si tu ne passes pas un NULL en param
Moi je connaissais même pas la prog à ce t'age là.
18 déc. 2007 à 22:55
18 déc. 2007 à 22:52
je suis d'accors on aurait pu le faire en Javascript, mais mon code PHP fait quand même 800 lignes de code pour le mode avancé et 300 pour le mode basic. Je trouve ça quand meme un peu lourd a charger en plus dans le navigateur internet, il y a déja l'index(XHTML), les 2 fichiers css (un pour l'écran et l'autre pour l'imprimante) et les images.
Et cela consomme moins de resource pour l'internaute (mais plus pour le serveur) et consomme moins de bande passante pour les 2 (internaute et serveur).
18 déc. 2007 à 22:36
n'utilise pas pow pour calculer un carre, pow utilise a^b=e^(b*ln(a)) et c'est moche car tu perds en precision...
pour les === ici tu ne dois pas avoir trop de problemes, du fait du retour de pow...
plutot que de passer des array, tu devrais faire une class Point tout simplement
dvdstory, j'espere que ce que tu dis est faux... j'espere que ce site ne fait pas d'ajax pour ca... ca n'a aucun interret, autant tout faire en javascript...
18 déc. 2007 à 22:08
@geantfire=>je sais pas si tu apprends les repères orthonormés( ça fait un peu loin la 4éme pour moi) mais pourquoi ne passerais-tu pas en paramètre les coordonnées des points dans le plan sous forme de tableau? à moins que tu aies fait ce code dans le but d'un exercice bien défini:
Bon comme ça m'amuse un exemple:
$triangle1=array('A'=>array('x'=>1,'y'=>2),
'B'=>array('x'=>4,'y'=>5),
'C'=>array('x'=>0,'y'=>2)) ;
$triangle2=array('A'=>array('x'=>0,'y'=>0),
'B'=>array('x'=>0,'y'=>1),
'C'=>array('x'=>1,'y'=>1)) ;
function isRectangle($aPts)
{
/**
comme il me semble
AB² = (Xb-Xa)² + (Yb-Ya)²
cela revient à écrire $CarreAB=pow(($aPts['B']['x']-$aPts['A']['x']),2)+pow(($aPts['B']['y']-$aPts['A']['y']),2);
idem Pour BC² et AC²
*/
$CarreAB=pow(($aPts['B']['x']-$aPts['A']['x']),2)+pow(($aPts['B']['y']-$aPts['A']['y']),2);
$CarreBC=pow(($aPts['C']['x']-$aPts['B']['x']),2)+pow(($aPts['C']['y']-$aPts['B']['y']),2);
$CarreAC=pow(($aPts['C']['x']-$aPts['A']['x']),2)+pow(($aPts['C']['y']-$aPts['A']['y']),2);
/**
soit tu fais
*/
return ( ($CarreAB===$CarreBC+$CarreAC || $CarreAC===$CarreBC+$CarreAB) || $CarreBC === $CarreAC+$CarreAB );
/**
ou sinon si tu préfères (c'est peut plus compréhensible sous cette forme)
*/
if ( $CarreAB===$CarreBC+$CarreAC )
return true;
if ( $CarreAC===$CarreBC+$CarreAB )
return true;
if ( $CarreBC === $CarreAC+$CarreAB )
return true;
return false;
}
if (isRectangle($triangle1))
echo '
rectangle';
else echo '
pas rectangle';
if (isRectangle($triangle2))
echo '
rectangle';
else echo '
pas rectangle';
Et si tu veux récupérer la longueur de l'hypothénuse eh ben là, faut apprendre à utiliser les variables globales , ou comme l'a dit malalam par reference (je dis ça mais la, t'as le temps pour ça...)
18 déc. 2007 à 22:08
N'oubliez pas de mettre le mode avancé pour avoir toute les foctions, vous verez c'est bien fait, j'ai pas encore trouvé mieux.
17 déc. 2007 à 21:28
vous vous codez en php et pas en pascal alors pour vous, une fonction ca calcule (comme en math), ca a des entrees et une sortie, mais n'affiche rien (c'est pas son role), sauf que vos exemples ne sont pas coherents... le sien, correspond par contre a ce que le prof pense des procedures...
enfin j'ai pas dit qu'en php, ce qu'il a fait devait se faire... mais en algorithmique imperative comme ce que l'on voit en cours, c'est correct... contrairement a vos deux exemples...
17 déc. 2007 à 21:18
Je crois que si l'on a besoin de savoir les valeurs des deux carrés, alors il est plus avantageux de les calculer sans faire appel a une fonction qui retourne un array, non? (Je dis ça tout naivement, c'est une question , je veux savoir selon vous si l'interet de retourner un array dans ce cas précis est justifié)
17 déc. 2007 à 18:39
17 déc. 2007 à 18:25
Si j'ai retourné les deux valeurs, c'est parce que je m'attends à ce que l'auteur modifie encore mon code...parce que l'idéal est de trouver le moyen (et c'est fgacile), de retourner les valeurs dans les 2 cas, tout en indiquant que dans un cas on est ok, dans l'autre non. Mais c'est facile, ça coule de source. Ma réponse était juste pour Yoman en fait comme je le dis plus haut : juste un exemple sur comment se passer du passage par référence. Mais le mieux est de retourner tes 2 valeurs dans tous les cas...et c'est plus juste : j'attends 2 valeurs, pas une, le carré des côtés et le carré de l'hypothénuse.
17 déc. 2007 à 18:15
if($carre_hypothenuse === $carre_cotes) {
return array($carre_hypothenuse, $carre_cotes);
} else {
return false;
}
je trouve ce morceau de code marrant, en effet, si deux nombres sont egaux, alors ... on renvoie ... un tableau qui contient deux fois ce nombre... formidable non ?
malalam, de plus, ton === n'a pas sa place ici :
max@debian:~$ php -r '$ab=sqrt(0.5); $bc=sqrt(3.5); $b=$ab*$ab+$bc*$bc; echo $b."\n".gettype($b)."\n"; $c=4; echo (($b==$c)?'OK':'NOK')."\n";'
4
double
OK
max@debian:~$ php -r '$ab=sqrt(0.5); $bc=sqrt(3.5); $b=$ab*$ab+$bc*$bc; echo $b."\n".gettype($b)."\n"; $c=4; echo (($b===$c)?'OK':'NOK')."\n";'
4
double
NOK
max@debian:~$
17 déc. 2007 à 18:04
17 déc. 2007 à 18:00
@Yoman, ce n'est pas très joli ce que tu fais là. 2 variables passées dans une fonction que tu vas redéfinir de toute manière, ce juste pour les afficher sans faire de return dessus...
Beaucoup de fonctions PHP retourne une valeur, un tableau, une ressource etc...ce qu'elles doivent retourner en cas de succès, et false en cas d'échec. Autant garder ce principe. Le passage par référence doit être utilisé dans des buts bien précis, quand on a bien une valeur en amont d'une fonction, et que cette fonction DOIT modifier cette valeur en tenant compte de son origine.
<?php
function reciproqueDePythagore($hypothenuse, $AB, $CA) {
$carre_hypothenuse = $hypothenuse * $hypothenuse;
$carre_cotes = $AB * $AB + $CA * $CA;
if($carre_hypothenuse === $carre_cotes) {
return array($carre_hypothenuse, $carre_cotes);
} else {
return false;
}
}
$aReturn=reciproqueDePythagore(5, 4, 3);
if (is_array($aReturn)) {
echo "Donc ce triangle est rectangle d'apres la réciproque du théorème de Pythagore.";
echo "Le carré de l'hypothenuse est égal à : ".$aReturn[0]."
";
echo "Le carre des deux côtés est égal à : ".$aReturn[1];
} else {
echo "Donc ce triangle n'est pas rectangle d'apres la réciproque du théorème de Pythagore.";
}
?>
16 déc. 2007 à 13:07
par exemple toi tu affichais dans ta fonction:
echo "Le carré de l'hypothenuse est égal à : ".$carre_hypothenuse."
";
echo "Le carre des deux côtés est égal à : ".$carre_cotes;
et bien c'est toujours possible en le sortant de la fonction , par exemple:
<?php
function reciproqueDePythagore($hypothenuse, $AB, $CA, &$carre_hypothenuse=0, &$carre_cotes=0)
{
$carre_hypothenuse = $hypothenuse * $hypothenuse;
$carre_cotes = $AB * $AB + $CA * $CA;
if($carre_hypothenuse == $carre_cotes)
return true;
else
return false;
}
$p=reciproqueDePythagore(5, 4, 3,$carre_hypothenuse,$carre_cotes);
echo "Le carré de l'hypothenuse est égal à : ".$carre_hypothenuse."
";
echo "Le carre des deux côtés est égal à : ".$carre_cotes;
if ($p)
echo "Donc ce triangle est rectangle d'apres la réciproque du théorème de Pythagore.";
else
echo "Donc ce triangle n'est pas rectangle d'apres la réciproque du théorème de Pythagore.";
?>
16 déc. 2007 à 11:48
16 déc. 2007 à 11:45
16 déc. 2007 à 11:36
Ils ont raison, du html dans une fonction c'est jamais bon puisque ça réduit considérablement sont utilitée... On ne pourrait pas s'en servir dans un autre projet sans la modifier par exemple.
<?php
function reciproqueDePythagore($hypothenuse, $AB, $CA)
{
$carre_hypothenuse = $hypothenuse * $hypothenuse;
$carre_cotes = $AB * $AB + $CA * $CA;
if($carre_hypothenuse == $carre_cotes)
return true;
else
return false;
}
if (reciproqueDePythagore(5, 4, 3))
echo "Donc ce triangle est rectangle d'apres la réciproque du théorème de Pythagore.";
else
echo "Donc ce triangle n'est pas rectangle d'apres la réciproque du théorème de Pythagore.";
?>
C'est pas très mélangeant.
Tu peux égallement ajouté un signe "&" devant les arguments dans ta fonction pour récuperé leurs valeur et les afficher en dehors de la fonction
16 déc. 2007 à 11:10
16 déc. 2007 à 01:32
16 déc. 2007 à 00:47
16 déc. 2007 à 00:37
ta fonction retourne une valeur, et tu gere le html en dehors de ta fonction ! :)
15 déc. 2007 à 19:59