Différences entre versions de « Php algo td4 »
(Page créée avec « = 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 ga... ») |
|||
(6 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>< | + | <center><pre> |
− | 0 | + | --------------------- |
− | 5 | + | | 0 | 1 | 2 | 3 | 4 | |
− | 6 | + | --------------------- |
− | 7 | + | | 5 | 0 | 1 | 2 | 3 | |
− | + | --------------------- | |
+ | | 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 16 : | Ligne 22 : | ||
*Afficher cette matrice. | *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 '' | + | 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"> | ||
+ | <big>Exercice 1</big> | ||
+ | <syntaxhighlight lang="php" class="mw-collapsible-content"> | ||
+ | <?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); | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | |||
+ | = Exécution = | ||
+ | <pre> | ||
+ | # 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 | | ||
+ | </pre> | ||
= Exercice 2 = | = Exercice 2 = | ||
Ligne 23 : | Ligne 93 : | ||
<center> | <center> | ||
− | + | 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 | + | 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.