Différences entre versions de « Php algo td4 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
  
 
Par exemple, la matrice suivante est une matrice de Toeplitz :
 
Par exemple, la matrice suivante est une matrice de Toeplitz :
<center><math>A=\begin{pmatrix}
+
<center><pre>
0 &1 & 2 & 3 & 4\\
+
---------------------
5 & 0 & 1 & 2 & 3\\
+
| 0 | 1 | 2 | 3 | 4 |
6 & 5 & 0 & 1 & 2\\
+
---------------------
7 & 6 & 5 & 0 & 1\\
+
| 5 | 0 | 1 | 2 | 3 |
\end{pmatrix}</math></center>
+
---------------------
 +
| 6 | 5 | 0 | 1 | 2 |
 +
---------------------
 +
| 7 | 6 | 5 | 0 | 1 |
 +
---------------------
 +
</pre>
 +
</center>
  
 
On souhaite écrire un programme qui permette de créer et d’afficher des matrices de Toeplitz. Ce programme devra effectuer les opérations suivantes :
 
On souhaite écrire un programme qui permette de créer et d’afficher des matrices de Toeplitz. Ce programme devra effectuer les opérations suivantes :
Ligne 18 : Ligne 24 :
 
Faire une analyse du sujet en décrivant les fonctionnalités du programme en langage naturel ou sous forme d’algorigramme et écrivez le en ''PHP''.
 
Faire une analyse du sujet en décrivant les fonctionnalités du programme en langage naturel ou sous forme d’algorigramme et écrivez le en ''PHP''.
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1120px">
+
<div class="toccolours mw-collapsible mw-collapsed">
 
<big>Exercice 1</big>
 
<big>Exercice 1</big>
<source lang="php" style="border:1px solid black;font-size:130%" class="mw-collapsible-content">
+
<syntaxhighlight lang="php" class="mw-collapsible-content">
 
<?php
 
<?php
 
$args_num = 4;
 
$args_num = 4;
Ligne 67 : Ligne 73 :
 
main($argv);
 
main($argv);
 
?>
 
?>
</source>
+
</syntaxhighlight>
 
</div>
 
</div>
 +
 
= Exécution =
 
= Exécution =
 
<pre>
 
<pre>
Ligne 86 : Ligne 93 :
  
 
<center>
 
<center>
<math>P(X) = c_0.X^0 + c_1.X^1 + c_2.X^2 + \cdots + c_d.X^d \,</math>
+
P(X) = aX^0 + bX^1 + cX^2 + ... + dX^d
 
</center>
 
</center>
  
On limitera le degré de nos polynômes à la valeur 10 et nous considérerons seulement les polynômes dans <math>\N</math>.
+
On limitera le degré de nos polynômes à la valeur 10 et nous considérerons seulement les polynômes dans N.
  
 
== Question 1 ==
 
== Question 1 ==

Version actuelle datée du 18 mai 2024 à 00:30

Exercice 1

Une matrice de Toeplitz (du nom du mathématicien allemand Otto Toeplitz 1881-1940) est une matrice dont les coefficients sur une diagonale descendant de gauche à droite sont les mêmes.

Par exemple, la matrice suivante est une matrice de Toeplitz :

---------------------
| 0 | 1 | 2 | 3 | 4 |
---------------------
| 5 | 0 | 1 | 2 | 3 |
---------------------
| 6 | 5 | 0 | 1 | 2 |
---------------------
| 7 | 6 | 5 | 0 | 1 |
---------------------

On souhaite écrire un programme qui permette de créer et d’afficher des matrices de Toeplitz. Ce programme devra effectuer les opérations suivantes :

  • Demander à l’utilisateur la saisie d’un nombre de lignes et d’un nombre de colonnes ;
  • Demander à l’utilisateur la saisie d’une séquence d’initialisation ;
  • Générer la matrice correspondante ;
  • Afficher cette matrice.

Faire une analyse du sujet en décrivant les fonctionnalités du programme en langage naturel ou sous forme d’algorigramme et écrivez le en PHP.

Exercice 1

<?php
$args_num = 4;
function main($argv) {
    global $args_num;
    if (sizeof ( $argv ) < $args_num) {
        echo "Pas assez d arguments !";
        return false;
    }
    $ligne = $argv [1];
    $colonne = $argv [2];
    $seq_size = $ligne + $colonne - 1;
    $sequence = explode ( ',', $argv [3] );
    if (sizeof ( $sequence ) < $seq_size) {
        echo "La taille de la sequence d initialisation ne correspond pas !";
        return false;
    }
    echo "Generation d une matrice de " . $ligne . " lignes et " . $colonne . " colonnes avec la sequence " . $argv [3];
    $matrice = array ();
    for($i = 0; $i < $ligne; $i ++) {
        for($j = 0; $j < $colonne; $j ++) {
            if ($i == 0) {
                $matrice [$i] [$j] = $sequence [$j];
            } else {
                if ($j == 0) {
                    $matrice [$i] [$j] = $sequence [$colonne - 1 + $i];
                } else {
                    $matrice [$i] [$j] = $matrice [$i - 1] [$j - 1];
                }
            }
        }
    }
    echo "Voici le resultat:\n";
    for($i = 0; $i < $ligne; $i ++) {
    echo "| ";
    for($j = 0; $j < $colonne; $j ++) {
        echo $matrice [$i] [$j];
        if($j < $colonne-1){
            echo ", ";
        }
    }
    echo " |\n";
    }
}

main($argv);
?>

Exécution

# php -f toeplitz.php 4 5 0,1,2,3,4,5,6,7
Generation d une matrice de 4 lignes et 5 colonnes
avec la sequence 0,1,2,3,4,5,6,7
Voici le resultat:
| 0, 1, 2, 3, 4 |
| 5, 0, 1, 2, 3 |
| 6, 5, 0, 1, 2 |
| 7, 6, 5, 0, 1 |

Exercice 2

Écrire un programme permettant de manipuler des polynômes. Un polynôme de degré d peut s’écrire sous la forme :

P(X) = aX^0 + bX^1 + cX^2 + ... + dX^d

On limitera le degré de nos polynômes à la valeur 10 et nous considérerons seulement les polynômes dans N.

Question 1

Écrire un programme permettant la saisie des coefficients d’un polynôme de degré d.

Question 2

Ajouter des instructions permettant l’affichage à l’écran un polynôme de degré d.

Question 3

Ajouter des instructions permettant d’effectuer la somme de deux polynômes de degrés au plus d.

Question 4

Ajouter des instructions permettant d’évaluer un polynôme pour une valeur x particulière.