Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

TD 4 Corrige

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

ECOLE PRÉPARATOIRE DES SCIENCES ET TECHNIQUES – ANNABA

Année Universitaire 2012-2013

Informatique 2eme année

Solutions Travaux Dirigés No 4


1. Répondre aux questions suivantes concernant un tableau appelé table
a. Déclarer le tableau comme étant un tableau de nombre entier ayant 3 lignes et 3 colonnes.
Supposer que la variable constante arraySize a été définie égale à 3.
b. Combien d'éléments le tableau contient-il ?
c. Utiliser une boucle for pour initialiser chaque élément du tableau à la somme de ses indices.
d. Écrire un segment de programme pour imprimer les valeurs de chaque élément de table dans un
tableau de 3 lignes et 3 colonnes.

Solution :
a. int table[ arraySize ][ arraySize ];
b. 9 éléments.
c. for ( i = 0; i < arraySize; i++ )
for ( j = 0; j < arraySize; j++ )
table[ i ][ j ] = i + j;

d. for (int i = 0; i < arraySize; i++ ) {


for ( int j = 0; j < arraySize; j++ )
cout << table[i][j] << "\t";
cout << endl;
}

2. Trouver l'erreur dans chacun des segments de programme suivants et corriger l'erreur:
a. #include <iostream>;
b. arraySize = 10; // arraySize est declaree const
c. Supposer que int b[ 10 ] = {0,0,0,0,0,0,0,0,0,0};
for (int i = 0; i <= 10; i++ )
b[i] = 1;
d. Supposer que int a[2][2] = { { 1, 2 }, { 3, 4 } };
a[1,1] = 5;

Solution
a. Erreur : Point-virgule à la fin de la directive #include.
Correction : Éliminer le point-virgule.
b. Erreur : Attribution d'une valeur à une variable constante en utilisant une instruction
d'affectation.
Correction : Initialiser la variable constante dans la déclaration const int arraySize.
c. Erreur : Mise en référence d’un élément du tableau en dehors des limites de ce tableau (b
[10]).
Correction : Changer la valeur finale de la variable de contrôle en 9.
d. Erreur : Syntaxe d'accès à un élément erronée.
Correction : Changer l’instruction par a [1] [1] = 5 ;
1
3. Écrire une expression qui accède à l'élément 4 de la ligne 2 d’un un tableau à deux dimensions appelé
twoD.

twoD[2][4]

4. Pour un tableau à deux dimensions de type float, appelé flarr, écrire une instruction qui déclare le
tableau et initialise la première ligne à 52, 27, 83 ; la seconde à 94, 73, 49 ; et la troisième à 3, 6, 1.

float flarr[3][3] = { {52,27,83}, {94,73,49}, {3,6,1} };

5 Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau. Le
programme doit afficher le nombre d'entiers supérieurs ou égaux à 10.
#include<iostream.h>

int main()
{
int t[10],i,nb=0;
for(i=0;i<N;i++){
cout<<"Tapez un entier ";
cin>>t[i];
}
for(i=0;i<N;i++)
if(t[i]>=10)
nb++;
cout<<"Le nombre d'entiers supérieurs ou égaux à 10 est : "<<nb<<endl;
return 0;
}

6 Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau ainsi qu'un
entier V. Le programme doit rechercher si V se trouve dans le tableau et doit supprimer la première
occurrence de V en décalant d'une case vers la gauche les éléments suivants et en rajoutant un 0 à la fin
du tableau. Le programme doit ensuite afficher le tableau final.
#include<iostream.h>
int main()
{
int t[10],i,j,V;
for(i=0;i<10;i++){
cout<<"Tapez un entier ";
cin>>t[i];
}
cout<<"Tapez la valeur de V : ";
cin>>V;
i=0;
while(i<10 && t[i]!=V)
i++;
if (i<10) {
for (j=i;j<N-1;j++)
t[j] = t[j+1];
t[N-1]=0;
}
for(i=0;i<N;i++)
cout<<t[i]<<”\t”;
return 0;
}
}

2
7. Écrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront stockés dans un tableau.
Le programme doit trier le tableau par ordre croissant et doit afficher le tableau.

Algorithme suggéré :
On cherche l'indice du plus petit élément parmi les indices de 0 à 9 et on échange cet élément avec t[0].
On cherche l'indice du plus petit élément parmi les indices de 1 à 9 et on échange cet élément avec t[1].
On cherche l'indice du plus petit élément parmi les indices de 2 à 9 et on échange cet élément avec t[2].
... On cherche l'indice du plus petit élément parmi les indices de 8 à 9 et on échange cet élément avec t[8].
#include<iostream.h>
const int N=10;
int main() {
int a[N],i,j,min,imin,tmp;
for(i=0;i<N;i++) {
cin>>a[i];
}

for(i=0;i<N-1;i++) {
imin=i;
min=a[i];
for(j=i+1;j<N;j++)
if(a[j]<min){
min=a[j];
imin=j;
}
tmp=a[imin];
a[imin]=a[i];
a[i]=tmp;
}
cout<<"Tableau trié :"<<endl;
for(i=0;i<N;i++)
cout<<a[i]<<”\t”;
return 0;
}

8. Écrire un programme qui saisit une chaîne de 50 caractères pouvant contenir des espaces et qui affiche
chaque mot de la chaîne, le séparateur étant l'espace. Exemple, on tape : je pense donc je suis
Le programme affiche :
je
pense
donc
je
suis
#include<iostream.h>
int main() {
char t[50];
cin.getline(t,50);
for (int i=0;i<50;i++)
if (t[i]=='\0') {
cout << endl;
break;
} else if (t[i]==' ')
cout << endl;
else
cout << t[i];
}
3

Vous aimerez peut-être aussi