Php algo td4
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.