UMMTO, FGEI, DPT ELN, Master1 ESE TP programmation C++Embarquée
Elaboré par Mme N. SADOUN-HEMDANI
TP 4 : Programmation de base en C++ (3)
Objectif : Ce TP a pour objectif d’élaborer des programmes C++ en utilisant des fonctions, des
tableaux tout en les faisant passer comme arguments de fonctions.
Home-Work : Tapez, exécutez et interprétez les programmes ci-dessous, ils seront vérifiés pendant
la séance de TP !!
Code1 : Le programme ci-dessous permet d’échanger les valeurs de deux vecteurs.
#include <iostream>
using namespace std;
const int N=5 ;
int main()
{ int t1[N], t2[N], c;
cout << "Tapez "<<N<<" valeurs d'un vecteur t1 :"<<endl;
for(int i=0; i<N; i++){
cout<<"t1["<<i<<"]= ";
cin>>t1[i];
}
cout << "Tapez "<<N<<" valeurs d'un vecteur t2 :"<<endl;
for(int i=0; i<N; i++){
cout<<"t2["<<i<<"]= ";
cin>>t2[i];
}
for(int i=0; i<N; i++){
c = t1[i];
t1[i] = t2[i];
t2[i] = c;
}
cout<<"Les valeurs du vecteur t1 après echange :"<<endl;
for(int i=0; i<N; i++){
cout<<"t1["<<i<<"]= "<<t1[i]<<"\t";
}
cout<<"Les valeurs du vecteur t2 après echange :"<<endl;
for(int i=0; i<N; i++){
cout<<"t2["<<i<<"]= "<<t2[i]<<"\t";
}
return 0;
}
Code2 : Le programme permet de décomposer un vecteur donné en deux sous vecteurs où l’un comporte
les éléments à indices pairs et l’autre les éléments à indices impairs.
#include <iostream>
const int N=10 ;
using namespace std ;
int main(){
float V[N], V1[N/2], V2[N/2];
cout << "Saisir les "<<N<<" valeurs entieres de V1:" << endl;
int j=0, k=0;
for(int i=0; i<N; i++){
cout << "V["<<i<<"]= ";
cin>>V[i];
if(i % 2 == 0) V1[j++] = V[i];
else V2[k++] = V[i];
}
cout<<"Les elements de V1 sont:"<<endl;
1
UMMTO, FGEI, DPT ELN, Master1 ESE TP programmation C++Embarquée
Elaboré par Mme N. SADOUN-HEMDANI
for(int i=0; i<N/2; i++)
cout << " \n V1["<<i<<"] = "<<V1[i];
cout<<" \n Les elements de V2 sont:"<<endl;
for(int i=0; i<N/2; i++)
cout << "\n V2["<<i<<"] = "<<V2[i];
return 0;
}
Code3 : Le programme permet de modifier les valeurs des éléments du tableau tab comme suit :
˗ la valeur de l’élément central, sera la somme de tous les éléments du tableau tab,
˗ les valeurs des éléments contours seront mises à zéro, et ceux restant garderont leurs valeurs initiales, puis
d’afficher le tableau après modification, en format matriciel.
#include <iotream>
using namespace std ;
#define N 5
int main(){
int tab[N][N], som=0 ;
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
cout<<"tab["<<i<<"]["<<j<<"]= " ;
cin>>tab[i][j];
som += tab[i][j];
}
}
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
if(i==(N-1)/2 && j==(N-1)/2) tab[i][j]= som ;
else if(i==0||i==N-1||j==0||j==N-1) tab[i][j]= 0 ;
else tab[i][j]= tab[i][j] ;
}
}
cout<<"\n tableau modifie: "<<endl ;
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
cout<<tab[i][j]<<"\t" ;
} cout<<endl ;
}
return 0;
}
Code4: Le programme contenant :
- la fonction void transpositTab2D (int tab[N][N], int ttab[N][N]); qui permet de convertir une matrice tab
en sa transposée ttab.
- la fonction main permettant d’appeler la fonction précédente pour une matrice T de taille 7x7 éléments à
saisir au clavier, en la convertissant en matrice transposée tT, d’afficher les deux matrices et puis de calculer
et d’afficher le produit de ces deux matrices T * tT.
#include <iostream>
using namespace std;
const int N =7;
int i, j ;
void transpositTab2D( int tab[N][N], int ttab[N][N]);
int main(){
int T[N][N], tT[N][N], prod[N][N], k;
cout<<"Saisir 7x7 elements entiers du T: "<<endl;
for(i=0; i<N; i++){
for(j=0; j<N; j++){
2
UMMTO, FGEI, DPT ELN, Master1 ESE TP programmation C++Embarquée
Elaboré par Mme N. SADOUN-HEMDANI
cout<<"T["<<i<<"]["<<j<<"]= ";
cin>>T[i][j];
}
}
cout<<"\n La matrice T est : "<<endl;
for(i=0; i<N; i++){
for(j=0; j<N; j++){
cout<<T[i][j]<<"\t";
}cout<<endl;
}
transpositTab2D(T, tT);
cout<<"\n La matrice transposee de T est :" <<endl;
for(i=0;i<N; i++){
for(j=0;j<N; j++){
cout<< tT[i][j] <<"\t";
}cout<<endl;
}
cout<<"\n La matrice produit T*tT est : "<<endl;
for(i=0; i<N; i++){
for(j=0; j<N; j++){
prod[i][j] = 0;
for(k=0; k<N; k++){
prod[i][j] += T[i][k]*tT[k][j];
}
cout<<prod[i][j]<<"\t";
} cout<<endl;
}
return 0 ;
}
void transpositTab2D(int tab[N][N], int ttab[N][N]){
for(i=0; i<N; i++){
for(j=0; j<N; j++)
ttab[i][j] = tab[j][i];
}
}