Académique Documents
Professionnel Documents
Culture Documents
Objectifs :
Matriser les tableaux une dimension et deux dimensions.
Savoir passer des arguments en ligne de commande.
1. Rappel algorithmique
Un tableau est caractris par trois lments :
son nom ;
son nombre dlments ;
et le type des lments quil contient.
Exemple :
precipitations
66,0 72,6 82,8 81,9 107,2 94,1 63,4 74,9 91,4 94,1 80,3 70,7
Figure 1 : Tableaux des prcipitations moyennes Grenoble.
Le tableau precipitations contient 12 lments de type rel.
Exemple :
float precipitations[12] ;
dclare un tableau precipitations 12 lments de type rel.
Lindice doit tre une valeur entire comprise entre 0 et n-1 (n tant la taille du tableau).
Algorithme : En langage C :
Pour i allant de 0 11 par pas de 1 for(i = 0 ; i < 12 ; i = i + 1) {
faire printf(%6.2f\n, T[i]);
Afficher(precipitations[i]) }
FinPour
Les valeurs utilises pour linitialiser doivent toujours tre des constantes. De plus, il est
possible domettre la dimension du tableau pour ce type de dclaration. Lexpression
suivante est quivalente :
float precipitations[] = {66.0, 72.6, 82.8, 107.2, 94.1, 63.4, 74.9,
91.4, 94.1, 80.3, 70.7};
Le but de cet exercice est dimplanter un programme de gestion des notes des
tudiants de lESISAR. Ce programme doit faciliter limpression des statistiques concernant
les notes obtenues par les tudiants pour un examen. Pour cet exercice, nous supposons
que le nombre dtudiants est fixe et que les notes doivent appartenir lintervalle [0 ; 20].
Etant donn que le programme a pour objectif de fournir des statistiques, nous ne tiendrons
pas compte du nom des tudiants ; seules les notes nous intressent.
Les statistiques attendues sont :
La note la plus basse ainsi que la note la plus leve ;
La moyenne, la variance et lcart-type ;
Variance : Ecart-Type :
( )
( )
1. Jeu de tests
Le programme que vous allez raliser devra tre test. Voici un exemple de test :
0 1 2 3 4
12,0 13,5 8,5 14,7 6,0
Variance
Ecart-type
3. Partie optionnelle
Le but de cette partie est dafficher graphiquement la rpartition des notes. Cet affichage se fera
sous la forme dhistogrammes (horizontal et vertical). Le principe est dafficher autant de croix quil y
a de notes par intervalle de deux points.
1. Ecrire une fonction qui permet dafficher un histogramme horizontal. Le rsultat attendu est le
suivant pour les notes :
0 ; 13.5 ; 8.5 ; 13.7 ; 20 ; 12 ; 8.5 ; 17 ; 11 ; 10 ; 9.5 ; 4 ; 14 ; 13.5 ; 12 ; 1 ; 15 ; 10.5 ; 7.5 ; 9.5.
[ 0 ; 2 ] : * *
] 2 ; 4 ] : *
] 4 ; 6 ] :
] 6 ; 8 ] : *
] 8 ; 10 ] : * * * * *
] 10 ; 12 ] : * * * *
] 12 ; 14 ] : * * * *
] 14 ; 16 ] : *
] 16 ; 18 ] : *
] 18 ; 20 ] : *
2. Ecrire une fonction qui permet dafficher un histogramme vertical. Le rsultat attendu est le
suivant pour les notes : 0 ; 13.5 ; 8.5 ; 13.7 ; 20 ; 12 ; 8.5 ; 17 ; 11 ; 10 ; 9.5 ; 4 ; 14 ; 13.5 ; 12 ; 1 ;
15 ; 10.5 ; 7.5 ; 9.5.
*
* * *
* * *
* * * *
* * * * * * * * *
----------------------------------------------------------------------------------------------------
[ 0 ; 2] ] 2 ; 4] ] 4 ; 6] ] 6 ; 8] ] 8 ; 10] ]10 ; 12] ]12 ; 14] ]14 ; 16] ]16 ; 18] ]18 ; 20]
1
Pour utiliser la bibliothque math.h penser ajouter dans le Makefile l'option lm lors de l'dition des liens.
CS 313-CS 314 : Mise niveau en C 5
Passage de paramtres
argc 4
argv[0] ./monProgramme
argv[1] 12
argv[2] toto
argv[3] 20.5
Exercice
Tester le programme qui vous est donn dans lexemple prcdent. Quels sont les rsultats
obtenus ?
Comme pour les tableaux un indice, il est possible dinitialiser par dfaut un tableau deux
indices.
Exemple : Les deux dclarations suivantes sont quivalentes :
int T[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } } ;
int T[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } ;
o indice1 et indice 2 sont les indices, cest--dire des expressions valeurs entires
comprises respectivement entre 0 et n-1 pour le premier indice et entre 0 et m-1 pour le
deuxime.
4. Tableau n dimensions
Il est possible de composer volont les dclarateurs de telle sorte que lon peut obtenir des
tableaux de tableaux de tableaux
Exercice
Le but de cet exercice est de manipuler des tableaux deux dimensions. Les matrices
sont un exemple de tableaux deux dimensions. Vous devez raliser un programme qui
permette de crer et dinitialiser une matrice, dafficher une matrice, dadditionner deux
matrices, de calculer la transpose dune matrice et de calcul le produit matriciel de deux
matrices.
1. Ecrire un programme (main) qui cr une matrice de taille fixe, qui linitialise et qui
laffiche.
2. Quels sont les rsultats attendus ?
Addition de deux matrices :
( ) ( )=?
Quelles sont les contraintes pour raliser une addition de deux matrices ?
Quelle est la taille de la matrice rsultat ?
Matrice transpose :
( ) et tA =?
( )( )