Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2899 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  boucle while: table de multiplication

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

boucle while: table de multiplication

n°1329869
shyboy
Webmaster du dimanche
Posté le 21-03-2006 à 23:46:12  profilanswer
 

je tente de composer un petit script qui me donnerais les tables de multiplication ( 10 colonnes/ 10 lignes) et celà avec des boucles while plutot que for, mais je bloque ( ne riez pas!!)
 
 
voilà mon script:

Spoiler :


 
$i=1;
$j=1;
echo "<table border=1><th>x</th>";
while($i<=10) {echo "<th>".$i."</th>";$i++;
}
while($j<=10) {echo "<tr><th>".$j."</th></tr>";$j++; "<td>".$i*$j."</td>";}
// remplissage de la table
echo "</tr>";
echo"</table>";
?>


 
cordialement,


---------------
blog Bretagne
mood
Publicité
Posté le 21-03-2006 à 23:46:12  profilanswer
 

n°1329889
zapan666
Tout est relatif
Posté le 22-03-2006 à 00:13:42  profilanswer
 

pi être parce que faut imbriqué 2 while et que là, c'est pas le cas ?


Message édité par zapan666 le 22-03-2006 à 00:13:58

---------------
my flick r - Just Tab it !
n°1329892
shyboy
Webmaster du dimanche
Posté le 22-03-2006 à 00:21:37  profilanswer
 

explique ?


---------------
blog Bretagne
n°1329895
zapan666
Tout est relatif
Posté le 22-03-2006 à 00:24:31  profilanswer
 

Code :
  1. $i=1;
  2. $j=1;
  3. echo "<table border=1><th>x</th>";
  4. while($i<=10) {
  5.         echo "<tr><th>".$i."</th>";
  6.         while($j<=10) {
  7.                 echo "<td>".$i*$j."</td>";
  8.                 $j++;
  9.         } // fin while j
  10. echo "</tr>";
  11.          $i++;
  12. } // fin while i
  13. // remplissage de la table
  14. echo"</table>";
  15. ?>


 
de toute façon, tu prend ton algo avec les for, tu remplice les for par des while

Code :
  1. for (i = 0 ; i < 10 ; i++) {
  2. // blabla
  3. }


 
devient
 

Code :
  1. i = 0
  2. while ( i < 10) {
  3. // blabla
  4. i++
  5. }

Message cité 1 fois
Message édité par zapan666 le 22-03-2006 à 00:26:33

---------------
my flick r - Just Tab it !
n°1329908
shyboy
Webmaster du dimanche
Posté le 22-03-2006 à 01:01:07  profilanswer
 

zapan666 a écrit :

Code :
  1. $i=1;
  2. $j=1;
  3. echo "<table border=1><th>x</th>";
  4. while($i<=10) {
  5.         echo "<tr><th>".$i."</th>";
  6.         while($j<=10) {
  7.                 echo "<td>".$i*$j."</td>";
  8.                 $j++;
  9.         } // fin while j
  10. echo "</tr>";
  11.          $i++;
  12. } // fin while i
  13. // remplissage de la table
  14. echo"</table>";
  15. ?>


 
de toute façon, tu prend ton algo avec les for, tu remplice les for par des while

Code :
  1. for (i = 0 ; i < 10 ; i++) {
  2. // blabla
  3. }


 
devient
 

Code :
  1. i = 0
  2. while ( i < 10) {
  3. // blabla
  4. i++
  5. }



 
 
 
je viens d'imbriquer els boucles whiles et j'ai rien qu'une ligne!....

Code :
  1. <?
  2. $i=1;
  3. $j=1;
  4. echo "<table border=1><th>x</th>";
  5. //creation premiere ligne
  6. while($i<=10) {echo "<th>".$i."</th>";$i++;
  7. }
  8. //boucle contenu de la table
  9. while($i<=10) {echo "<th>".$i."</th>";$i++;
  10. //premiere colone
  11. while($j<=10) {echo "<tr><th>".$j."</th></tr>";
  12. ; "<td>".$i*$j."</td>";$j++;
  13. // remplissage de la table
  14. }
  15. echo "</tr>";
  16. }
  17. echo"</table>";
  18. ?>


---------------
blog Bretagne
n°1329910
masklinn
í dag viðrar vel til loftárása
Posté le 22-03-2006 à 01:05:14  profilanswer
 

shyboy a écrit :

je viens d'imbriquer els boucles whiles et j'ai rien qu'une ligne!....

Code :
  1. <?
  2. $i=1;
  3. $j=1;
  4. echo "<table border=1><th>x</th>";
  5. //creation premiere ligne
  6. while($i<=10) {echo "<th>".$i."</th>";$i++;
  7. }
  8. //boucle contenu de la table
  9. while($i<=10) {echo "<th>".$i."</th>";$i++;
  10. //premiere colone
  11. while($j<=10) {echo "<tr><th>".$j."</th></tr>";
  12. ; "<td>".$i*$j."</td>";$j++;
  13. // remplissage de la table
  14. }
  15. echo "</tr>";
  16. }
  17. echo"</table>";
  18. ?>



Ce serait une bonne idée d'apprendre le HTML je pense.
 
Dans la mesure où tu ne crées jamais de lignes (row == tr), il ne vas sûrement pas en afficher.
 
Mais bon, PHP-Staÿle on fait n'importe quoi et on se demande pourquoi ça marche pas, ça nous change [:linuxine]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1330006
nargy
Posté le 22-03-2006 à 10:39:49  profilanswer
 

Exemple de table de 3:

Code :
  1. <table>
  2. <tr><td>1*1=1</td><td>2*1=2</td><td>3*1=3</td></tr>
  3. <tr><td>1*2=2</td><td>2*2=4</td><td>3*2=6</td></tr>
  4. <tr><td>1*3=3</td><td>2*3=6</td><td>3*3=9</td></tr>
  5. </table>


 
Ok, on factorise les rangs:

Code :
  1. <table>
  2. <?
  3. for($i=1;$i<=3;$i++)
  4. {
  5.   echo "<tr><td>1*$i=".(1*$i)."</td><td>2*$i=".(2*$i)."</td><td>3*$i=".(3*$i)."</td></tr>\n";
  6. }
  7. ?>
  8. </table>


 
Ok, on factorise les colonnes:

Code :
  1. <table>
  2. <?
  3. for($j=1;$j<=3;$j++)
  4. {
  5.   echo "<tr>";
  6.   for($i=1;$i<=3;$i++)
  7.   {
  8.     echo "<td>$j*$i=".($j*$i)."</td>";
  9.   }
  10.   echo "</tr>\n";
  11. }
  12. ?>
  13. </table>


 
Ok, on ajoute les entêtes, et table par 10:

Code :
  1. <table border=1>
  2. <?
  3. $max=10;
  4. echo "<caption>Table de multiplication par $max</caption>";
  5. echo "<tr><th></th>";
  6. for($i=1;$i<=$max;$i++)
  7.   echo "<th>$i</th>";
  8. echo "</tr>\n";
  9. for($j=1;$j<=$max;$j++)
  10. {
  11.   echo "<tr><th>$j</th>";
  12.   for($i=1;$i<=$max;$i++)
  13.   {
  14.     echo "<td>".($j*$i)."</td>";
  15.   }
  16.   echo "</tr>\n";
  17. }
  18. ?>
  19. </table>


Message édité par nargy le 22-03-2006 à 10:47:21
n°1330023
shyboy
Webmaster du dimanche
Posté le 22-03-2006 à 11:04:41  profilanswer
 

merci , mais avec la boucle while?


---------------
blog Bretagne
n°1330030
Lord II
PIB2000
Posté le 22-03-2006 à 11:11:32  profilanswer
 

Ca ressemble un peu à un exercice de base de la boucle while, cà.
 
Donc, je te renvoie vers la doc de l'instruction while
 
Surtout que ce n'est pas trop compliqué de remplacer un for par un while ( surtout aussi simple que ca )


Message édité par Lord II le 22-03-2006 à 11:13:58
n°1330032
Yertle
Posté le 22-03-2006 à 11:13:31  profilanswer
 

Code :
  1. $m = 10; //on fera un tableau jusqu'a la table de 10
  2. echo "<table border='1'>"; //j'ouvre le tableau
  3. echo "<tr>"; //j'ouvre une ligne
  4. echo "<caption>Table de multiplication par ".$m."</caption>";
  5. echo "<th></th>"; //cellule vide (en haut à gauche)
  6. //on va écrire la première ligne du tableau, c'est un ligne d'entête sans valeurs calculées
  7. $i = 1;
  8. while ($i<=$m){
  9.     echo "<th>".$i."</th>";
  10.     $i++;
  11. }
  12. echo "</tr>"; //je referme la première ligne
  13. //je vais compléter le tableau en affichant une colonne avec les valeurs non calculées et le corps du tableau avec les valeurs calculées
  14. $x = 1
  15. while($x<=$m){
  16.     echo "<tr>"; //a chaque boucle j'ouvre une ligne
  17.     echo "<th>".$x."</th>"; //j'affiche la valeur dans la première case
  18.     //je vais parcourir les chiffres de 1 à 10 pour les multiplier par la valeur de la ligne courante ($x)
  19.     $y = 1;
  20.     while($y<=$m){
  21.         echo "<td>".($x*$y)."</td>"; //à chaque boucle j'ouvre une case, j'affiche le résultat de la multiplication et je referme la case
  22.     $y++;
  23.     }
  24.     echo "</tr>"; //je ferme la ligne
  25.     $x++;
  26. }


 
[edit] ah merde je viens de me rendre compte que c'est exactement ce qu'a fait Nargy !
Mais pourquoi ce borner à faire des parcours totaux en while, c'est l'instruction for pour les totaux et while c'est pour les parcours partiels voyons ![/edit]


Message édité par Yertle le 22-03-2006 à 11:20:51
mood
Publicité
Posté le 22-03-2006 à 11:13:31  profilanswer
 

n°1330080
smaragdus
whores, drugs & J.S. Bach
Posté le 22-03-2006 à 11:52:25  profilanswer
 

shyboy a écrit :

merci , mais avec la boucle while?


C'est pas un while qu'il faut utiliser mais un for. Point :o

n°1330100
shyboy
Webmaster du dimanche
Posté le 22-03-2006 à 12:15:56  profilanswer
 

oui , le for pas de problème, mais je dois la faire avec une boucle while!


---------------
blog Bretagne
n°1330102
mechkurt
Posté le 22-03-2006 à 12:19:00  profilanswer
 

si t'est pas capable de transformer une boucle for en boucle while arrette tout de suite la programmation...
en plus qq'un t'as expliqué comment faire et t'as filé le lien vers la doc !


---------------
D3
n°1330105
smaragdus
whores, drugs & J.S. Bach
Posté le 22-03-2006 à 12:25:22  profilanswer
 

shyboy a écrit :

oui , le for pas de problème, mais je dois la faire avec une boucle while!


 
Ah c'est un devoir à faire ?
Tu es donc hors-charte mon gars  :sarcastic:  

n°1330114
Lord II
PIB2000
Posté le 22-03-2006 à 12:33:00  profilanswer
 

smaragdus a écrit :

Ah c'est un devoir à faire ?
Tu es donc hors-charte mon gars  :sarcastic:


 
 
 
C'est bien ce que j'avais présentit

n°1330121
smaragdus
whores, drugs & J.S. Bach
Posté le 22-03-2006 à 12:42:59  profilanswer
 

Lord II a écrit :

C'est bien ce que j'avais présentit


ouais, bien vu :jap:

n°1330122
shyboy
Webmaster du dimanche
Posté le 22-03-2006 à 12:43:10  profilanswer
 

j'ai passé l'age de faire des devoirs, mais je me devais de comprendre les boucles histoire de ne pas mourrir complétement idiot, désolé de n'être pas  compétent  en prog , j'en suis le premier peiné croyez moi!


---------------
blog Bretagne
n°1330126
smaragdus
whores, drugs & J.S. Bach
Posté le 22-03-2006 à 12:51:19  profilanswer
 

shyboy a écrit :

j'ai passé l'age de faire des devoirs,

Bien sûr...  :sarcastic:  

Citation :

mais je me devais de comprendre les boucles histoire de ne pas mourrir complétement idiot, désolé de n'être pas  compétent  en prog , j'en suis le premier peiné croyez moi!

Et bien le 1er truc à comprendre dans les boucles, c'est de savoir quand faire un for et quand faire un while.
Dans ton cas, c'est un for  :sarcastic:


Message édité par smaragdus le 22-03-2006 à 12:57:50
n°1330148
shyboy
Webmaster du dimanche
Posté le 22-03-2006 à 13:08:16  profilanswer
 

merci pour vos conseils , je retourne dans mon manuel...pour comprendre l'imbrication des boucles, c'est pas gagné!


---------------
blog Bretagne

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  boucle while: table de multiplication

 

Sujets relatifs
[PHP-MYSQL] Accès au bon champ d'une tableproblème conception table (problème clé primaire)
Table Access Liée à SQL Server par ODBCProbleme pour boucle sur collection userform
[.NET] Binding champs de table bdd <=> propriété d'objetboucle if then else dans une autre boucle if then else
Supression de ligne en boucle (Word)[Matlab] Boucle de lecture de fichier
Pb boucle for concaténé avec une variabletable d 'agregat ?
Plus de sujets relatifs à : boucle while: table de multiplication


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR