pdf - e-book - archive - github.com

2.4  Tableaux

2.4.1  Exercices de compréhension

Qu’affichent les programmes suivants ?

Exercice 1 Programme mystère

char C[4];
int k;
C[0] = 'a';
C[3] = 'J';
C[2] = 'k';
C[1] = 'R';
for(k = 0 ; k < 4 ; k++)
        printf("%c\n", C[k]);
for(k = 0 ; k < 4 ; k++)
        C[k]++;
for(k = 0 ; k < 4 ; k++)
        printf("%c\n", C[k]);

Exercice 2 Programme mystère

int K[10], i, j;
K[0] = 1;
for(i = 1 ; i < 10 ; i++)
        K[i] = 0;
for(j = 1 ; j <= 3 ; j++)
        for(i = 1 ; i < 10 ; i++)
                K[i] += K[i - 1];       
for(i = 0 ; i < 10 ; i++)
        printf("%d\n", K[i]);

Exercice 3 Programme mystère

int K[10], i, j;
K[0] = 1;
K[1] = 1;
for(i = 2 ; i < 10 ; i++)
        K[i] = 0;
for(j = 1 ; j <= 3 ; j++)
        for(i = 1 ; i < 10 ; i++)
                K[i] += K[i - 1];       
for(i = 0 ; i < 10 ; i++)
        printf("%d\n", K[i]);

2.4.2  Prise en main

Exercice 4 Initialisation et affichage

Ecrire un programme plaçant dans un tableau int T[10]; les valeurs 1, 2, …, 10, puis affichant ce tableau. Vous initialiserez le tableau à la déclaration.

Exercice 5 Initialisation avec une boucle

Même exercice en initialisant le tableau avec une boucle.

Exercice 6 somme

Affichez la somme des n éléments du tableau T.

Exercice 7 recherche

Demandez à l’utilisateur de saisir un int et dites-lui si ce nombre se trouve dans T.

2.4.3  Indices

Exercice 8 permutation circulaire

Effectuez une permutation circulaire vers la droite des éléments de T en utilisant un deuxième tableau.

Exercice 9 permutation circulaire sans deuxième tableau

Même exercice mais sans utiliser de deuxième tableau.

Exercice 10 miroir

Inversez l’ordre des éléments de T sans utiliser de deuxième tableau.

2.4.4  Recherche séquentielle

Exercice 11 modification du tableau

Etendez le tableau T à 20 éléments. Placez dans T[i] le reste modulo 17 de i2.

Exercice 12 min/max

Affichez les valeurs du plus petit et du plus grand élément de T.

Exercice 13 recherche séquentielle

Demandez à l’utilisateur de saisir une valeur x et donnez-lui la liste des indices i tels que T[i] a la valeur x.

Exercice 14 recherche séquentielle avec stockage des indices

Même exercice que précédemment, mais vous en affichant La valeur ... se trouve aux indices suivants : ... si x se trouve dans T, et La valeur ... n'a pas été trouvée si x ne se trouve pas dans T.

2.4.5  Morceaux choisis

Exercice 15 pièces de monnaie

Reprennez l’exercice sur les pièces de monnaie en utilisant deux tableaux, un pour stocker les valeurs des pièces dans l’ordre décroissant, l’autre pour stocker le nombre de chaque pièce.

Exercice 16 recherche de la tranche minimale en O(n3)

Une tranche est délimitée par deux indices i et j tels que ij, la valeur d’une tranche est ti + … + tj. Ecrire un programme de recherche de la plus petite tranche d’un tableau, vous utiliserez trois boucles imbriquées. Vous testerez votre algorithme sur un tableau T à 20 éléments aléatoires (utilisez la fonction random de stdlib.h) de signes quelconques.

Exercice 17 recherche de la tranche minimale en O(n2)

Même exercice mais en utilisant deux boucles imbriquées.

Exercice 18 recherche de la tranche minimale en O(n) (difficile)

Même exercice mais en utilisant une seule boucle.