Exercices corrigés en langage C++ : Les tableaux
Exercice 1 :
Ecrire un programme qui saisit 2 tableaux de 10 entiers a et b. c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. On copiera dans les 10 premières cases de c le tableau a, dans les dix dernières le tableau b. Le programme affiche ensuite le tableau c.
Correction exercice 1 :
Exercice 6 :
Ecrire un programme qui demande à l'utilisateur de taper 10 entiers compris entre 0 et 20 qui seront stockés dans un tableau et qui affiche le nombre de fois qu'on a tapé un 0, le nombre de 1, le nombre de 2, ..., le nombre de 20.
Correction exercice 6 :
Exercice 1 :
Ecrire un programme qui saisit 2 tableaux de 10 entiers a et b. c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. On copiera dans les 10 premières cases de c le tableau a, dans les dix dernières le tableau b. Le programme affiche ensuite le tableau c.
Correction exercice 1 :
#include<iostream> using namespace std; const int N=10; int main() { int a[N],b[N],c[2*N],i; cout<<"SAISIE DU TABLEAU a"<<endl; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>a[i];} cout<<"SAISIE DU TABLEAU b"<<endl; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>b[i];} for(i=0;i<2*N;i++)if(i<N)c[i]=a[i];else c[i]=b[i-N]; cout<<"VOICI LE TABLEAU c"<<endl; for(i=0;i<2*N;i++)cout<<c[i]<<" "; cout<<endl; return 0; }
Exercice 2 :
Ecrire un programme qui saisit 2 tableaux de 10 entiers a et b qui doivent être triés dans l'ordre croissant. Le programme devra tout d'abord vérifier que les deux tableaux sont triés. Le tableau c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. Le tableau c devra contenir les éléments de a et ceux de b et devra être trié. Le programme affiche ensuite le tableau c.
Correction exercice 2 :
Exercice 3 :
Ecrire un programme qui gère une liste d'entiers grâce au menu suivant :
1. Ajouter un entier
2. Afficher la liste des entiers
3. Supprimer dernier entier de la liste.
4. Afficher la dernière note tapée
5. Quitter
Il y aura au maximum 10 entiers. Lorsqu'on rajoute un entier, il sera rajouté à la fin de la liste.
Correction exercice 3 :
Exercice 4 :
Ecrire un programme qui gère une liste d'entiers grâce au menu suivant :
1. Ajouter un entier
2. Afficher la liste des entiers
3. Supprimer le premier entier ayant une valeur donnée.
4. Supprimer tous les entiers ayant une valeur donnée
5. Quitter
Il y aura au maximum 10 entiers. La liste devra être en permanence triée : lorqu'on rajoute un entier, il sera inséré au bon endroit dans la liste pour que celle-ci reste triée.
Correction exercice 4 :
Exercice 5 :
Ecrire un programme qui demande à l'utilisateur de taper un entier N<=20 et qui affiche la N-ième ligne du triangle de pascal.
ligne 1 : 1 1
ligne 2 : 1 2 1
ligne 3 : 1 3 3 1
ligne 4 : 1 4 6 4 1
et ainsi de suite ...
Correction exercice 5 :
Ecrire un programme qui saisit 2 tableaux de 10 entiers a et b qui doivent être triés dans l'ordre croissant. Le programme devra tout d'abord vérifier que les deux tableaux sont triés. Le tableau c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. Le tableau c devra contenir les éléments de a et ceux de b et devra être trié. Le programme affiche ensuite le tableau c.
Correction exercice 2 :
#include<iostream> using namespace std; const int N=10; int main() { int a[N],b[N],c[2*N],i,trie,indicea,indiceb; cout<<"SAISIE DU TABLEAU a"<<endl; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>a[i];} cout<<"SAISIE DU TABLEAU b"<<endl; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>b[i];} trie=true; i=0; while(trie && i<N-1)if(a[i]>a[i+1])trie=false; else i++; if(!trie)cout<<"Le tableau a n'est pas trié"<<endl; else { trie=true; i=0; while(trie && i<N-1)if(b[i]>b[i+1])trie=false; else i++; if(!trie)cout<<"Le tableau b n'est pas trié"<<endl; else { indicea=0;indiceb=0; for(i=0;i<2*N;i++) { if(indicea==N){c[i]=b[indiceb];indiceb++;} else if(indiceb==N){c[i]=a[indicea];indicea++;} else if(a[indicea]<b[indiceb]){c[i]=a[indicea];indicea++;} else {c[i]=b[indiceb];indiceb++;} } } } cout<<"VOICI LE TABLEAU c"<<endl; for(i=0;i<2*N;i++)cout<<c[i]<<" "; cout<<endl; return 0; }
Exercice 3 :
Ecrire un programme qui gère une liste d'entiers grâce au menu suivant :
1. Ajouter un entier
2. Afficher la liste des entiers
3. Supprimer dernier entier de la liste.
4. Afficher la dernière note tapée
5. Quitter
Il y aura au maximum 10 entiers. Lorsqu'on rajoute un entier, il sera rajouté à la fin de la liste.
Correction exercice 3 :
#include<iostream> using namespace std; const int N=10; int main() { int t[N],nb=0,choix,e,i; bool fini=false; while(fini==false) { cout<<"1. Ajouter un entier"<<endl; cout<<"2. Afficher la liste des entier"<<endl; cout<<"3. Supprimer le dernièr entier de la liste"<<endl; cout<<"4. Afficher le dernier entier de la liste"<<endl; cout<<"5. Quitter"<<endl; cout<<"Votre choix : ";cin>>choix; switch(choix) { case 1 : cout<<"Tapez un entier : ";cin>>e; if(nb<N){t[nb]=e; nb++; cout<<"ENTIER AJOUTE"<<endl;} else cout<<"IMPOSSIBLE LE TABLEAU EST PLEIN"<<endl; break; case 2 : if(nb==0)cout<<"LA LISTE EST VIDE"<<endl; else { cout<<"VOICI LA LISTE"<<endl; for(i=0;i<nb;i++)cout<<t[i]<<" "; cout<<endl; } break; case 3 : if(nb>0){nb--; cout<<"ENTIER SUPPRIME"<<endl;} else cout<<"LA LISTE EST VIDE"<<endl; break; case 4 : if(nb>0)cout<<"lLE DERNIER ENTIER EST "<<t[nb-1]<<endl; else cout<<"LA LISTE EST VIDE"<<endl; break; case 5 : fini=true; break; } } return 0; }
Exercice 4 :
Ecrire un programme qui gère une liste d'entiers grâce au menu suivant :
1. Ajouter un entier
2. Afficher la liste des entiers
3. Supprimer le premier entier ayant une valeur donnée.
4. Supprimer tous les entiers ayant une valeur donnée
5. Quitter
Il y aura au maximum 10 entiers. La liste devra être en permanence triée : lorqu'on rajoute un entier, il sera inséré au bon endroit dans la liste pour que celle-ci reste triée.
Correction exercice 4 :
#include<iostream> using namespace std; const int N=10; int main() { int t[N],nb=0,choix,e,V,i,j,trouve; bool fini=false; while(fini==false) { cout<<"1. Ajouter un entier"<<endl; cout<<"2. Afficher la liste des entier"<<endl; cout<<"3. Supprimer le premier entier ayant une valeur donnée"<<endl; cout<<"4. Supprimer tous les entiers ayant une valeur donnée"<<endl; cout<<"5. Quitter"<<endl; cout<<"Votre choix : ";cin>>choix; switch(choix) { case 1 : if(nb<N) { cout<<"Tapez un entier : ";cin>>e; i=0; while(i!=nb && t[i]<e)i++; for(j=nb;j>i;j--)t[j]=t[j-1]; t[i]=e; nb++; } else cout<<"IMPOSSIBLE LE TABLEAU EST PLEIN"<<endl; break; case 2 : if(nb==0)cout<<"LA LISTE EST VIDE"<<endl; else { cout<<"VOICI LA LISTE"<<endl; for(i=0;i<nb;i++)cout<<t[i]<<" "; cout<<endl; } break; case 3 : cout<<"Tapez la valeur à supprimer :";cin>>V; trouve=false; i=0; while(!trouve && i<nb)if(t[i]==V)trouve=true; else i++; if(trouve) { for(j=i;j<nb-1;j++)t[j]=t[j+1]; nb--; } break; case 4 : cout<<"Tapez la valeur à supprimer :";cin>>V; j=0; for(i=0;i<nb;i++) if(t[i]!=V){t[j]=t[i];j++;} nb=j; break; case 5 : fini=true; break; } } return 0; }
Exercice 5 :
Ecrire un programme qui demande à l'utilisateur de taper un entier N<=20 et qui affiche la N-ième ligne du triangle de pascal.
ligne 1 : 1 1
ligne 2 : 1 2 1
ligne 3 : 1 3 3 1
ligne 4 : 1 4 6 4 1
et ainsi de suite ...
Correction exercice 5 :
#include<iostream> using namespace std; int main() { int a[21],i,j,N; cout<<"Veuillez taper N : ";cin>>N; for(i=1;i<=N;i++) { if(i==1)a[0]=1; a[i]=1; for(j=i-1;j>=1;j--)a[j]=a[j]+a[j-1]; } for(i=0;i<=N;i++)cout<<a[i]<<" "; cout<<endl; return 0; }
Exercice 6 :
Ecrire un programme qui demande à l'utilisateur de taper 10 entiers compris entre 0 et 20 qui seront stockés dans un tableau et qui affiche le nombre de fois qu'on a tapé un 0, le nombre de 1, le nombre de 2, ..., le nombre de 20.
Correction exercice 6 :
#include<iostream> using namespace std; int main() { int a[10],nb[21],i; for(i=0;i<10;i++) { do {cout<<"Veuillez taper l'entier numero "<<i<<" : ";cin>>a[i];} while (a[i]>20 || a[i]<0); } for(i=0;i<21;i++)nb[i]=0; for(i=0;i<10;i++)nb[a[i]]++; for(i=0;i<21;i++){cout<<"Il y a "<<nb[i]<<" fois l'entier "<<i<<endl;} return 0; }
Exercice 7 :
Ecrire un programme qui demande à l'utilisateur de taper le contenu d'un tableau de réels de 3 lignes et 3 colonnes et qui affiche ce tableau mais en affichant la moyenne des éléments de chaque ligne, de chaque colonne et la moyenne globale.
Correction exercice 7 :
Ecrire un programme qui demande à l'utilisateur de taper le contenu d'un tableau de réels de 3 lignes et 3 colonnes et qui affiche ce tableau mais en affichant la moyenne des éléments de chaque ligne, de chaque colonne et la moyenne globale.
Correction exercice 7 :
#include<iostream> using namespace std; const int N=3; const int M=3; int main() { double t[N][M],moyL[N],moyC[M],moy; int i,j; for(i=0;i<N;i++) for(j=0;j<M;j++) { cout<<"Tapez la valeur de la ligne "<<i<<" colonne "<<j<<" : "; cin>>t[i][j]; } for(i=0;i<N;i++)moyL[i]=0; for(j=0;j<M;j++)moyC[j]=0; moy=0; for(i=0;i<N;i++) for(j=0;j<M;j++) { moyL[i]=moyL[i]+t[i][j]; moyC[j]=moyC[j]+t[i][j]; moy=moy+t[i][j]; } for(i=0;i<N;i++)moyL[i]=moyL[i]/N; for(j=0;j<M;j++)moyC[j]=moyC[j]/M; moy=moy/(N*M); for(i=0;i<N;i++) { for(j=0;j<M;j++) cout<<t[i][j]<<" "; cout<<moyL[i]<<endl; } for(j=0;j<M;j++) cout<<moyC[j]<<" "; cout<<endl; return 0; }
Aucun commentaire:
Enregistrer un commentaire