Page 1 sur 1

Erreur php - énigme

Posté : 07 sept. 2014, 21:52
par n101011
Bonjour,

On me demande de corriger les erreurs dans les lignes suivantes:

1. <?php
2.
3. int $i;
4. for($i = 1; $i < 99; $i++)
5.    ${'_'.$i} = pow($i,3);
6.
7. for($i = 1; $i < 99, $i++)
8.    ${'_'.$i.'_'.($i+1)} = ${'_'.$i} * ${'_'.($i+1)};
9.
10. ?> 

Selon moi:
- il faut enlever la ligne 3
- ajouter un { en fin de ligne 4
- ajouter un } ligne 6
- remplacer "," par ";" et ajouter un { à la fin de la ligne 7
- ajouter un } ligne 9


On me demande en plus la variable qui vaut 8869743000 ? Je réponds 45 car (45*46)^3=8869743000

Pour valider ma réponse, je dois écrire réponse = "variable" - "multiplication des nombres des lignes contenant des erreurs entre elles".

Je réponds donc 45-4536 ou 45-21 (si on considère que les {} sont facultatifs car une seule instruction).

Mais dans les 2 cas ma réponse est refusée ! Où ai-je faux ?

Merci

Re: Erreur php - énigme

Posté : 07 sept. 2014, 23:01
par Invité
Up

Re: Erreur php - énigme

Posté : 07 sept. 2014, 23:34
par Invité
Ma question me parait pourtant triviale pour un oeil averti ! Vraiment personne ?

Re: Erreur php - énigme

Posté : 08 sept. 2014, 00:27
par Nestecha
Ce code ne veut rien dire. Je comprends pas bien le but, tu peux développer ? Où as tu eu ce code, qu'est ce qu'il est censé signifier ? Les '_' doivent être remplacés ?

Re: Erreur php - énigme

Posté : 08 sept. 2014, 02:26
par Invité
J'ai simplement ce code à disposition et je dois renvoyer les lignes comportant des fautes + la variable qui renvoie 8869743000 pour valider une énigme.

Il me semble donc que le code permet de calculer pour chaque nombre i < 99 (i*(i+1))^3. Non ?

Re: Erreur php - énigme

Posté : 08 sept. 2014, 08:45
par sirakawa
@r n101011
Non, il ne faut pas ajouter des accolades au for: quand il y a une seule instruction elles sont faculttaives.
Voici une version commentée:
<?PHP //cosmétique
//. aberrant à cause du point
//. int $i; aberrant à cause du point, inexistanten PHP et inutile
for($i = 1; $i < 99; $i++)//point aberrant retiré cubes de $i [1 ...98]
   ${'_'.$i} = pow($i,3); //point aberrant retiré; Crée des variables $_1, $_2...


/* ajout pour comprendre*/
$variables = get_defined_vars();
print "<h2>Variables définies par le premier for</h2>";
print_r($variables);
print "$_2 $_3";
//.point aberrant retiré
/*
virgule à remplacer par ; 
99 à remplacer par 97 : limites, car on multiplie les variables de nom $_i: $__1 à $_99 par les variables de nom $_i+1: $__2 à $_100 qui n'existe pas.

*/

for($i = 1; $i < 97; $i++)// produit de deux cubes successifs
    ${'_'.$i.'_'.($i+1)} = ${'_'.$i} * ${'_'.($i+1)};
print "<hr>";
print "<h2>Variables définies après le second for</h2>";
$variables = get_defined_vars();
print_r($variables);
?><!--point aberrant retiré-->

Re: Erreur php - énigme

Posté : 08 sept. 2014, 13:54
par Invité
Pardon je n'avais pas vu le dernier message. Merci pour cette réponse !

Re: Erreur php - énigme

Posté : 08 sept. 2014, 21:32
par moogli
Modération :
Les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

Re: Erreur php - énigme

Posté : 09 sept. 2014, 10:43
par sirakawa
@moogli surtout:
Il vaut mieux comme certains, répondre que les réponses fournies ne sont pas adéquates, ou qu'on s'était mal expliqué; ça fait remonter le topic sans enfreindre les règles, du moins visiblement.