Différences entre versions de « C algo td4 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 106 : Ligne 106 :
 
<big>Afficher la solution:</big>
 
<big>Afficher la solution:</big>
 
<source class="mw-collapsible-content" lang="c">
 
<source class="mw-collapsible-content" lang="c">
 +
#include <stdio.h>
 +
#include <stdlib.h>
 +
 +
int main(void) {
 +
    int degre, i;
 +
    /* Récupération des valeurs */
 +
    printf("Veuillez spécifier le degré de votre polynome: ");
 +
    scanf("%d", &degre);
 +
    int coefficients[degre];
 +
    for (i = 0; i < degre; ++i) {
 +
        printf("Veuillez spécifier le coefficient du degré %d: ", degre-i);
 +
        scanf("%d", &coefficients[i]);
 +
    }
 +
    /* Affichage du polynome */
 +
    printf("P(X) = ");
 +
    for (i = 0; i < degre; ++i) {
 +
        j = degre - i;
 +
        printf("%d", coefficients[i]);
 +
        if (j > 2) {
 +
            printf("X^%d + ",j);
 +
        }else if (j > 1) {
 +
            printf("X + ");
 +
        }
 +
    }
 +
    return EXIT_SUCCESS;;
 +
}
 
</source>
 
</source>
 
</div>
 
</div>
 +
 
== Question 3 ==
 
== Question 3 ==
 
Ajouter des instructions permettant d’effectuer la somme de deux polynômes de degrés au plus d.
 
Ajouter des instructions permettant d’effectuer la somme de deux polynômes de degrés au plus d.

Version du 19 mars 2014 à 09:48

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;;
}

Exercice 2

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

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

Question 1

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

Afficher la solution:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int degre, i;
    /* Récupération des valeurs */
    printf("Veuillez spécifier le degré de votre polynome: ");
    scanf("%d", &degre);
    int coefficients[degre];
    for (i = 0; i < degre; ++i) {
        printf("Veuillez spécifier le coefficient du degré %d: ", degre-i);
        scanf("%d", &coefficients[i]);
    }
    return EXIT_SUCCESS;;
}

Question 2

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

Afficher la solution:

#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
    int degre, i;
    /* Récupération des valeurs */
    printf("Veuillez spécifier le degré de votre polynome: ");
    scanf("%d", &degre);
    int coefficients[degre];
    for (i = 0; i < degre; ++i) {
        printf("Veuillez spécifier le coefficient du degré %d: ", degre-i);
        scanf("%d", &coefficients[i]);
    }
    /* Affichage du polynome */
    printf("P(X) = ");
    for (i = 0; i < degre; ++i) {
        j = degre - i;
        printf("%d", coefficients[i]);
        if (j > 2) {
            printf("X^%d + ",j);
        }else if (j > 1) {
            printf("X + ");
        }
    }
    return EXIT_SUCCESS;;
}

Question 3

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

Afficher la solution:

Question 4

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

Afficher la solution: