Exercices sur les tableaux et les pointeurs
1 Triangle de Pascal
Créer un tableau triangulaire à deux dimensions dont l'élément
d'indice i,j est égal au coefficient binomial Cij où
0 <= i <= n, 0 <= j <= i et n est saisi au clavier ;
puis l'afficher à l'écran.
2 Concaténation de deux tableaux
-
Créer deux tableaux d'entiers de tailles respectives n1 et
n2 où n1 et n2 sont deux entiers entrés au clavier.
- Initialiser les éléments de ces tableaux avec des valeurs
aléatoires. Pour plus de lisibilité, on prendra le reste du
résultat de la fonction rand par une constante de taille
raisonnable
- Créer un troisième tableau de taille n1+n2, correspondant
à la concaténation des deux premiers.
3 Ajout d'un élément à un tableau
-
Créer un tableau d'entiers T de taille n où n est
entré au clavier. Initialiser chacun de ses éléments à une valeur
aléatoire.
- Créer un tableau de taille n+1 correspondant au tableau
précédent auquel on a ajouté un élément saisi au clavier.
- Remplacer le premier tableau T par le tableau à n+1
éléments créé à l'étape précédente.
4 Transposition d'une matrice
-
Créer une matrice de taille k × n où k et n
sont entrés au clavier. Initialiser cette matrice par
des valeurs aléatoires (comme à l'exercice 2).
- Créer une seconde matrice correspondant à la transposée de la
première.
5 Produit de deux matrices
-
Créer deux matrices d'entiers de tailles respectives n1
× n2 et n2 × n3 où ces trois paramètres sont
entrés au clavier. Initialiser ces deux matrices avec des valeurs
aléatoires comme à l'exercice 2.
- Créer une troisième matrice correspondant au produit des deux
premières.
6 Combinaisons linéaires des lignes d'une matrice binaire
-
Créer un tableau à deux dimensions contenant les
coefficients d'une matrice lue dans un fichier. La matrice sera
décrite dans un fichier ayant la forme
suivante : la première ligne contient le nombre de lignes de la
matrice, la deuxième ligne son nombre de colonnes ; les lignes
suivantes correspondent aux coefficients. On utilisera l'opérateur
de redirection d'UNIX ``<'' pour lire le fichier.
- Ecrire un programme qui affiche toutes les combinaisons
linéaires des lignes de cette matrice.
Pour énumérer les 2k combinaisons linéaires des lignes de la
matrice à k lignes, on se servira de la méthode suivante utilisant le
code de Gray. Cet algorithme permet d'énumérer tous les vecteurs
de F2k en ne modifiant qu'une seule coordonnée à chaque
étape.
Les vecteurs de F2k sont représentés par k bits,
(g0,...,gk-1). On ajoute à ce vecteur une composante
gk vérifiant à tout moment gk = g0 + g1 + ... + gk-1
mod2.
Initialisation :
g0 = g1 = ... = gk-1=gk =0 .
A chaque étape :
-
Si gk = 0, modifier g0.
- Sinon :
-
i = le premier indice tel que gi != 0.
- si i != k-1, modifier gi+1.
- si i = k-1, modifier gk-1.
Remettre à jour gk.
Ainsi, les vecteurs de F22 seront énumérés dans l'ordre
suivant :
(0,0) - (1,0) - (1,1) - (0,1)
On peut utiliser cette méthode pour énumérer toutes les combinaisons
linéaires de k lignes. L'indice de la coordonnée à modifier à
chaque étape de l'algorithme précédent correspond à l'indice de la
ligne à ajouter à la combinaison linéaire précédente. Par exemple,
pour k=2, on énumérera les combinaisons linéaires dans l'ordre
suivant :
vecteur nul, ligne 1, ligne 1 + ligne 2 , ligne 2.
This document was translated from LATEX by
HEVEA.