Sie sind auf Seite 1von 3

Série d’exercices N°1 : Rappel des procédures et des fonctions

Exercice N°1:
1. Ecrire une procédure qui permet de lire un tableau d’entiers à deux dimensions.
2. Ecrire une fonction qui permet de calculer la somme de tous les éléments non nuls de la
matrice.
3. Ecrire une fonction, faisant appel à la fonction de la question précédente, qui permet de
calculer la moyenne de tous les éléments de la matrice.
4. Ecrie une fonction qui permet de calculer le produit des éléments non nuls de la matrice.
5. Ecrire une procédure qui permet d’afficher un entier x. Le message doit être sous la forme
suivante : « la valeur calculée est x) »
6. Ecrire le programme principal qui permet d’afficher la moyenne et le produit des éléments
du tableau tout en utilisant les fonctions et procédures déjà définis.

Exercice N°2:
1. Ecrire une procédure qui permet de lire un tableau à deux dimensions.
2. Ecrire une procédure qui permet de parcourir en accordéon un tableau à deux
dimensions. Plus
précisément, on parcourt la première ligne de gauche àdroite puis la seconde de droite à ga
uche et ainsi de suite en alternant le sens de de parcours des lignes.
Exemple : Pour le tableau suivant, 0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
On doit obtenir l'affichage suivant :
0,1, 2, 3, 7, 6, 5, 4, 8, 9, 10, 11, 15, 14, 13, 12, 16, 17, 18, 19
3. Ecrire le programme principal relatif à ce problème.

Exercice N°3:
1. Écrire une procédure qui reçoit deux tableaux d'entiers (TIN et S2) et un entier (E). Cette
procédure rend un tableau d'entiers (TOUT). TOUT contiendra toutes les valeurs de TIN
sauf que les cases contenant la valeur E seront remplacées par la suite de cases de S2.

Tableau en entrée TIN :


15 3 4 5 9 8 3 4 3 4 5 9 10 15

E (donnée): 3 S2 (donnée): 5 9
Tableau résultat TOUT :
15 5 9 4 5 9 8 5 9 4 5 9 4 5 9 10 15

2. Ecrire le programme principal qui permet d’exécuter la procédure de la question


précédente.

1
Exercice N°4:
1. Ecrire une fonction Equivalents qui compare deux tableaux d'entiers pour dire s'ils sont
équivalents ou non. Deux tableaux sont équivalents s'ils ont le même nombre d'éléments et
qu'ils contiennent les mêmes valeurs, l'ordre des valeurs n'ayant pas d'importance.
2. Ecrire le programme principal qui permet de saisir deux tableaux et de vérifier s’ils sont
équivalents.

Exercice N°5:
On dispose d'un échiquier, dans lequel les cases peuvent prendre les valeurs 0 ou 1.
À chaque étape, on calcule la nouvelle valeur de chacune des cases en fonction des valeurs
des cases voisines. Les cases voisines d'une case étant celles se trouvant de part et d'autre de
cette case sur la même ligne ou sur la même colonne (pas en diagonale).

La valeur d'une case passe à 0 si elle possède 0 ou 4 voisins à 1 (elle meurt isolée ou
étouffée).
La valeur d'une case passe à 1 si elle possède 2 ou 3 voisins à 1.
Elle ne change pas dans les autres cas.

Pour éviter les cas particuliers des cases se trouvant en périphérie de l'échiquier, on
considérera que ce dernier est stocké dans un tableau comprenant une bordure remplie de
zéros (0) :

0 0 0 0 0 0
0 1 0 1 0 0
0 1 1 0 1 0
0 1 1 0 0 0
0 1 0 0 1 0
0 0 0 0 0 0

Dans l'échiquier représenté ici (avec sa bordure), la case à l'intersection de la 2ème ligne et de
la 3ème colonne a 3 voisins à 1. Le programme principal vous est donné et est le suivant :
void main()
{
int n;
int M[25][25]; /* on déclare un tableau carré */
int i,NbEtapes;
configInit(M);
printf("Entrer le nombre d'etapes : ");
scanf("%d",&NbEtapes);
for (i=1;i<=NbEtapes;i++)

2
{
changeEtat(M);
imprime(M);
}
}

1. On souhaite pouvoir visualiser l'évolution du jeu. Ecrire la procédure imprime qui prend
en paramètre un tableau stockant un échiquier et affiche ce dernier à l'écran.
2. Ecrire une fonction qui permet de calculer pour une case de l'échiquier le nombre de
voisins à 1 afin de tester les différents cas.
3. On souhaite initialiser l'échiquier avec une valeur au hasard pour chacune des cases.
Écrire la procédure configInit qui permet d'initialiser le tableau, c'est à dire non seulement
initialiser l'échiquier mais aussi la bordure.
4. En utilisant les fonctions et procédures précédentes, écrire la fonction estVivante qui
retourne la valeur que devra prendre une case à l'étape suivante.
5. Ecrire la procédure changeEtat qui permet de faire évoluer l'ensemble de l'échiquier d'une
étape vers une autre.

Das könnte Ihnen auch gefallen