Previous Next Up Index Contents

7.1.4. Affichage et affectation


La structure for se prête particulièrement bien au travail avec les tableaux. La plupart des applications se laissent implémenter par simple modification des exemples-types de l'affichage et de l'affectation.

- Affichage du contenu d'un tableau

Traduisons le programme AFFICHER du langage algorithmique en C:

programme AFFICHER
|   entier tableau A[5]
|   entier I  (* Compteur *)
|   pour I variant de 1 à 5 faire
|     écrire A[I]
|   fpour
fprogramme
main()
{
 int A[5];
 int I;  /* Compteur */
 for (I=0; I<5; I++)
     printf("%d ", A[I]);
 return 0;
 printf("\n");
}

Remarques

* Avant de pouvoir afficher les composantes d'un tableau, il faut évidemment leur affecter des valeurs.

* Rappelez-vous que la deuxième condition dans la structure for n'est pas une condition d'arrêt, mais une condition de répétition! Ainsi la commande d'affichage sera répétée aussi longtemps que I est inférieur à 5. La boucle sera donc bien exécutée pour les indices 0,1,2,3 et 4 !

* Par opposition à la commande simplifiée écrire A[I] du langage algorithmique, la commande printf doit être informée du type exact des données à afficher. (Ici: %d ou %i pour des valeurs du type int)

* Pour être sûr que les valeurs sont bien séparées lors de l'affichage, il faut inclure au moins un espace dans la chaîne de format. Autres possibilités:

   printf("%d\t", A[I]); /* tabulateur */
   printf("%7d", A[I]);  /* format d'affichage */

Affectation

- Affectation avec des valeurs provenant de l'extérieur

Traduisons le programme REMPLIR du langage algorithmique en C:

programme REMPLIR
|   entier tableau A[5]
|   entier I  (* Compteur *)
|   pour I variant de 1 à 5 faire
|     lire A[I]
|   fpour
fprogramme

main()
{
 int A[5];
 int I;  /* Compteur */
 for (I=0; I<5; I++)
     scanf("%d", &A[I]);
 return 0;
}

Remarques

* Comme scanf a besoin des adresses des différentes composantes du tableau, il faut faire précéder le terme A[I] par l'opérateur adresse '&'.

* La commande de lecture scanf doit être informée du type exact des données à lire. (Ici: %d ou %i pour lire des valeurs du type int)


Exercice 7.1

Ecrire un programme qui lit la dimension N d'un tableau T du type int (dimension maximale: 50 composantes), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.

Calculer et afficher ensuite la somme des éléments du tableau.


Exercice 7.2

Ecrire un programme qui lit la dimension N d'un tableau T du type int (dimension maximale: 50 composantes), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.

Effacer ensuite toutes les occurrences de la valeur 0 dans le tableau T et tasser les éléments restants. Afficher le tableau résultant.


Exercice 7.3

Ecrire un programme qui lit la dimension N d'un tableau T du type int (dimension maximale: 50 composantes), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.

Ranger ensuite les éléments du tableau T dans l'ordre inverse sans utiliser de tableau d'aide. Afficher le tableau résultant.

Idée: Echanger les éléments du tableau à l'aide de deux indices qui parcourent le tableau en commençant respectivement au début et à la fin du tableau et qui se rencontrent en son milieu.


Exercice 7.4

Ecrire un programme qui lit la dimension N d'un tableau T du type int (dimension maximale: 50 composantes), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.

Copiez ensuite toutes les composantes strictement positives dans un deuxième tableau TPOS et toutes les valeurs strictement négatives dans un troisième tableau TNEG. Afficher les tableaux TPOS et TNEG.


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber