Table des mutliplications [Résolu]

Signaler
Messages postés
114
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
24 juin 2021
-
 tzmagnum -
Bonjour,

Comment faire pour que mes premières lignes horizontale & vertical soit de 0 à 10 et que l'horizontale ne soit pas en négatif mais bien en positif svp ?

Merci d'avance

Voici le code et un printscreen du résultat :

<html>
      <head><title>Afficher le tableau des multiplications</title>
<style type="text/css">

.tableStyle{
background:#dbe5f1;
border:1px solid black;
width:600px;
margin:40px;
}
.tableStyle tr td{
border:1px solid black;
text-align:center;
}
</style>
</head>
</html>
<center>
<?php
function cl($i,$j)
 {
$r="background-color:chocolate";
$c="background-color:coral";

$k="background-color:khaki";
   if($i==0 ){
      return $r;
      }elseif($i%2==1){
	    
     return $c;
         }else{
	   return $k;
	  }
 }
 echo"<h2> <b><u>Tableau  des multiplications :</u></b> </h2>";
echo"<table  class='tableStyle'>";
 for($i=0;$i<12;$i++)
 {
 
  $r="background-color:chocolate";
$g="background-color:coral";
    echo"<tr>";
    for($j=0;$j<12;$j++)
   {
       $k=$i-1;
	   $l=$j-1;
	   $p=$l*$k;
     if( $j==0 and $i==0)
	   { 
	   echo"<td style='$r;'>    </td>";
       }elseif( $j==0 )
       {
		 
	     echo "<td style='$r;'><b>$k</b></td>"; 
	   }else{
	         $c=cl($i,$j);
              if($i==$j or $i==0)
			  {
		    
       echo"<td style='$c;'><b>$p</b></td>"; 
	       	     }else{
			     echo"<td style='$c;'>$p</td>"; 
			     }
	        }
	} 
   	
     echo"</tr>";
 
 }
echo"</table>"; 


?>
</center>


2 réponses

Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
Bonjour,

Voici le code et après les explications :

<html>
    <head>
    <title>Afficher le tableau des multiplications</title>
  <style type="text/css">
   .tableStyle {
    background:#dbe5f1;
    border:1px solid black;
    width:600px;
    margin:40px;
   }
   .tableStyle tr td {
    border:1px solid black;
    text-align:center;
   }
  </style>
 </head>
 <body>
  <center>
   <?php
    function cl($i,$j)
     {
    $r="background-color:chocolate";
    $c="background-color:coral";

    $k="background-color:khaki";
       if($i==1 ){
          return $r;
          }elseif($i%2==1){
         
         return $c;
             }else{
        return $k;
       }
     }
     echo"<h2> <b><u>Tableau  des multiplications :</u></b> </h2>";
    echo"<table  class='tableStyle'>";
     for($i=1;$i<12;$i++)
     {
     
      $r="background-color:chocolate";
    $g="background-color:coral";
        echo"<tr>";
        for($j=1;$j<12;$j++)
       {
           $k= $i-1;
        $l= $j-1;
        $p= $l * $k;

         if( $j==1 and $i==1)
        { 
        echo"<td style='$r;'>    </td>";
           }elseif( $j==1 )
           {
        //Facteur Colonne
          echo "<td style='$r;'><b>$k</b></td>"; 
        }else{
             $c=cl($i,$j);
                if($i==$j) {
           //Diagonale
              echo '<td style=' . $c . ';"><b>' . $p . '</b></td>'; 
       }
        //Facteur Horizontal
       elseif ($i==1) {
        echo '<td style=' . $c . ';"><b>' . $l . '</b></td>';
       }
       else{
        //Verticale
        echo '<td style=' . $c . ';">' . $p . '</td>'; 
       }
      }
     } 
        
         echo"</tr>";
     
     }
    echo"</table>";
   ?>
  </center>
 </body>
</html>


Votre problème c'était qu'à la ligne 60 vous avez mit la variable $p. Mais en corrigeant cette variable la diagonale ne fonctionne plus.

Alors voila ce que j'ai changé : A la ligne 62 j'ai rajouté un elseif pour séparé la condition en 2, en faisant cela il y a une condition qui multiplie la verticale par l'horizontale et l'autre qui n'affiche que l'horizontal. Et j'ai aussi fait en sorte que le tableau commence par 1 et non par 0.

Ravi d'avoir aidé
Messages postés
114
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
24 juin 2021

Merci beaucoup.

Et si par exemple je voudrais qu’il commence par 0 et qu’il fini par 10, que dois-je changer svp ?

Merci d’avance
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169 >
Messages postés
114
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
24 juin 2021

Pour faire ça il suffit de changer tout les 1 qui se trouvent dans une condition ou une boucle par 0

if($i == 1 ){


Devien

if($i == 0 ){


Vous faites ça pour toutes les conditions ou les boucles. Enfaite ce chiffre correspond à la la première ligne ou colonne.
Merci c'est résolu