bonjour la famille j 'ai un soucis avec la multiplication de deux matrices que je veux programmer en php
voici mon code:
c'est mon formulaire 1 permettant à l'utilisateur de saisir la taille de ses matrices. Cela fonctionne
<!DOCTYPE >
<html>
<head>
<meta charset="utf-8"/>
<title>formulaire1</title>
</head>
<body>
<form method="POST" action="formulaire2.php" enctype="multipart/form-data"/>
<?php echo'le nombre de ligne de la matrice est representé par X<br>';
echo'le nombre de colonne de la matrice est representé par y<br>';
?>
<border>
<table>
<tr>
<td><label>a(x)</label></td>
<td><input type="number" name="a_x"></td>
</tr>
<tr>
<td><label>a(y)</label></td>
<td><input type="number" name="a_y"></td>
</tr>
<tr>
<td><label>b(x)</label></td>
<td><input type="number" name="b_x"></td>
</tr>
<tr>
<td><label>b(y)</label></td>
<td><input type="number" name="b_y"></td>
</BR>
<tr>
<td><input type="submit" name="bouton" value="valider"></td>
<td align="right"><input type="reset" name="bouton" value="Annuler"></td>
</tr>
</tr>
</table>
</border>
<table>
</body>
</html>
voici le formulaire2 qui permettre d'afficher les champs ou le visiteur va saisir ses matrices. ca fonctionne aussi
<?php
// la recuperation des donnees du formulaire1
if ( isset($_POST['a_x'])|| isset ($_POST['a_y']) || isset($_POST['b_x'])|| isset($_POST['b_y']) )
{
$a_x = $_POST['a_x'];
$a_y = $_POST['a_y'];
$b_x = $_POST['b_x'];
$b_y = $_POST['b_y'];
echo"A = $a_x";
echo"<br>B = $a_y";
echo"<br>C = $b_x";
echo"<br>D = $b_y";
echo'<hr>';
$matrice_A=array();
$matrice_B=array();
}
// Fin recuperation des donnees du formulaire1
?>
<!DOCTYPE >
<html>
<head>
<meta charset="utf-8"/>
<title>matrice</title>
</head>
<body>
<form method="post" action="formulaire3.php" enctype="multipart/form-data">
<input type='hidden' name='a_x' value='<?=$a_x;?>' />
<input type='hidden' name='a_y' value='<?=$a_y;?>' />
<input type='hidden' name='b_x' value='<?=$b_x;?>' />
<input type='hidden' name='b_y' value='<?=$b_y;?>' />
<?php
echo'La matrice A est:<br>';
for($i = 1; $i <= $a_x; $i++){
for($j = 1; $j <= $a_y; $j++){ ?>
<input type='number' size='2' name='a_<?= $i . $j?>' />
<?php
}
echo '<br>';
}
echo '';
echo'La matrice B est:<br>';
for($i = 1; $i <= $b_x; $i++){
for($j = 1; $j <= $b_y; $j++){ ?>
<input type='number' size='3' name='b_<?= $i . $j?>' />
<?php
}
echo '<br>';
}
echo '';
?>
<br><input type='submit' name="sendform" value='valider'/>
<form>
</body>
</html>
voici le formulaire 3 qui affiche les matices saisies et demande à l'utilisateur de choisir son opérateur . cela marche aussi
<?php
// var_dump($_POST);
if(isset($_POST, $_POST['sendform']) && !empty($_POST) && !empty($_POST['sendform']) )
{
$a_x = (int) $_POST['a_x'];
$a_y = (int) $_POST['a_y'];
$b_x = (int) $_POST['b_x'];
$b_y = (int) $_POST['b_y'];
foreach($_POST as $valeur){
if($valeur == ''){
header('location: formulaire1.php');
}
}
for($i = 1; $i <= $a_x; $i++){
for($j = 1; $j <= $a_y; $j++){
echo $_POST['a_' . $i . $j] .' ';
$tabA[] = $_POST['a_' . $i . $j];
}
echo '<br>';
}
echo '<br>';
for($i = 1; $i <= $b_x; $i++){
for($j = 1; $j <= $b_y; $j++){
echo $_POST['b_' . $i . $j] .' ';
}
echo '<br>';
} ?>
<form method="post" action="matrice.php" enctype="multipart/form-data">
choisissez votre operateur<br />
<input type='hidden' name='a_x' value='<?=$a_x;?>' />
<input type='hidden' name='a_y' value='<?=$a_y;?>' />
<input type='hidden' name='b_x' value='<?=$b_x;?>' />
<input type='hidden' name='b_y' value='<?=$b_y;?>' />
<?php
for($i = 1; $i <= $b_x; $i++){
for($j = 1; $j <= $a_y; $j++){?>
<input type='hidden' name='a_<?=$i . $j?>' value='<?= $_POST['a_' . $i . $j]?>' />
<?php
}
} ?>
<?php
for($i = 1; $i <= $b_x; $i++){
for($j = 1; $j <= $b_y; $j++){?>
<input type='hidden' name='b_<?=$i . $j?>' value='<?= $_POST['b_' . $i . $j]?>' />
<?php
}
} ?>
<input type='radio' name='choix' value="som" id='la somme'/>
<label for="la somme">la somme <label/><br/>
<input type='radio' name='choix' value="sous" id='la soustraction'/>
<label for="la soustraction">la soustraction <label/><br/>
<input type='radio' name='choix' value="multi" id='la multiplicaton'/>
<label for="la multiplicaton">la multiplicaton <label/><br/>
<input type='submit' name='boutton' value='Calculer !'>
</form>
<?php
}
?>
voici la matrice et le problème est au niveau de la multiplication ;la somme et la soustraction marchent
<!DOCTYPE >
<html>
<head>
<meta charset="utf-8"/>
<title>matrice</title>
</head>
<body>
<?php
//var_export($_POST);
if(isset($_POST, $_POST['boutton']) && !empty($_POST['boutton']))
{
if($_POST['choix'] == "som")
{
for ($i=1; $i <= (int) $_POST['a_x']; $i++)
{
for ($j = 1; $j <= (int) $_POST['a_y']; $j++)
{
$res[$i . $j] = (int) $_POST['a_' . $i . $j] + (int) $_POST['b_' . $i . $j];
}
}
}
elseif ($_POST['choix'] == "sous")
{
for ($i=1; $i <= (int) $_POST['a_x']; $i++)
{
for ($j = 1; $j <= (int) $_POST['a_y']; $j++)
{
$res[$i . $j] = (int) $_POST['a_' . $i . $j] - (int) $_POST['b_' . $i . $j];
}
}
}
elseif ($_POST['choix'] == "multi")
{
if( $_POST['a_x']==$_POST['b_y'])
{
for ($i=1; $i <= (int) $_POST['a_x']; $i++)
{
//$res1 = [];
for ($j = 1; $j <= (int) $_POST['a_y']; $j++)
{
for ($k = 0; $k <= (int) $_POST['a_y']; $k++)
{
$k = $j;
}
$res[$i . $j] += (int) $_POST['a_' . $k . $j] * (int) $_POST['b_' . $i . $k];
}
//$res[$i . $k] = $res1;
// var_dump($res1);
}
}
elseif( $_POST['a_x']!=$_POST['b_y'])
{
echo"impossible de faire multiplication";
}
}
echo '<br>';
for ($i = 1; $i <= (int) $_POST['a_x']; $i++)
{
for ($j=1; $j <= (int) $_POST['a_y']; $j++)
{
echo $res[$i . $j] . ' ';
}
echo '<br>';
}
echo '<br>';
echo '<a href="formulaire1.php">Retour </a>';
}
?>
</body>
</html>
Afficher la suite