Différences entre versions de « C algo td4 »
Aller à la navigation
Aller à la recherche
| Ligne 1 : | Ligne 1 : | ||
| − | < | + | = 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 : | ||
| + | <center><math>A=\begin{pmatrix} | ||
| + | 0 &1 & 2 & 3 & 4\\ | ||
| + | 5 & 0 & 1 & 2 & 3\\ | ||
| + | 6 & 5 & 0 & 1 & 2\\ | ||
| + | 7 & 6 & 5 & 0 & 1\\ | ||
| + | \end{pmatrix}</math></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 : | ||
| + | *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 ''C''. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | <source lang="c"> | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:700px"> |
| + | <big>Afficher la solution:</big> | ||
| + | <source class="mw-collapsible-content" lang="c"> | ||
#include <stdio.h> | #include <stdio.h> | ||
| − | #include < | + | #include <stdlib.h> |
| − | int main( | + | int main(void) { |
| − | { | + | int ligne, colonne, i, j; |
| − | + | /* Récupération des paramètres de la matrice */ | |
| − | + | printf("Combien de lignes : "); | |
| − | + | scanf("%d", &ligne); | |
| − | + | printf("Combien de colonnes : "); | |
| − | + | scanf("%d", &colonne); | |
| − | + | /* Déduction des paramètres de la séquence d'initialisation */ | |
| − | + | int seq_size = ligne + colonne - 1, sequence[seq_size]; | |
| − | + | int mat[ligne][colonne]; | |
| − | + | printf("\n"); | |
| − | + | for (i = 0; i < seq_size; i++) { | |
| − | + | printf("Rentrez la valeur de l'index %d : ", i + 1); | |
| − | + | scanf("%d", &sequence[i]); | |
| − | + | } | |
| − | + | /* Construction de la matrice */ | |
| − | + | for (i = 0; i < ligne; i++) { | |
| − | + | for (j = 0; j < colonne; j++) { | |
| − | + | if (i == 0) { | |
| − | + | mat[i][j] = sequence[j]; | |
| − | + | } else { | |
| − | + | if (j == 0) { | |
| − | + | mat[i][j] = sequence[colonne + i - 1]; | |
| − | + | } else { | |
| − | + | mat[i][j] = mat[i - 1][j - 1]; | |
| − | + | } | |
| − | + | } | |
| − | + | } | |
| + | } | ||
| + | /* Affichage de la matrice */ | ||
| + | for (i = 0; i < ligne; i++) { | ||
| + | printf("|"); | ||
| + | for (j = 0; j < colonne; j++) { | ||
| + | printf("%d", mat[i][j]); | ||
| + | if (j < colonne - 1) { | ||
| + | printf(","); | ||
| + | } | ||
| + | } | ||
| + | printf("|\n"); | ||
| + | } | ||
| + | return EXIT_SUCCESS;; | ||
} | } | ||
</source> | </source> | ||
| + | </div> | ||
| + | = Exercice 2 = | ||
Version du 12 mars 2014 à 13:24
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 :
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 C.
Afficher la solution:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int ligne, colonne, i, j;
/* Récupération des paramètres de la matrice */
printf("Combien de lignes : ");
scanf("%d", &ligne);
printf("Combien de colonnes : ");
scanf("%d", &colonne);
/* Déduction des paramètres de la séquence d'initialisation */
int seq_size = ligne + colonne - 1, sequence[seq_size];
int mat[ligne][colonne];
printf("\n");
for (i = 0; i < seq_size; i++) {
printf("Rentrez la valeur de l'index %d : ", i + 1);
scanf("%d", &sequence[i]);
}
/* Construction de la matrice */
for (i = 0; i < ligne; i++) {
for (j = 0; j < colonne; j++) {
if (i == 0) {
mat[i][j] = sequence[j];
} else {
if (j == 0) {
mat[i][j] = sequence[colonne + i - 1];
} else {
mat[i][j] = mat[i - 1][j - 1];
}
}
}
}
/* Affichage de la matrice */
for (i = 0; i < ligne; i++) {
printf("|");
for (j = 0; j < colonne; j++) {
printf("%d", mat[i][j]);
if (j < colonne - 1) {
printf(",");
}
}
printf("|\n");
}
return EXIT_SUCCESS;;
}