Vous êtes sur la page 1sur 3

Univertsité

 Abou-­Bakr  Belkaïd  –  Tlemcen                        M1/RT744  


Faculté  de  Technologie  
Département  de  Télécommunications  
 
TP2  
Fonctions  -­  Tableaux  –  Pointeurs  
 
Exercice  1  
Écrire  un  programme  allouant  dynamiquement  un  emplacement  pour  un  tableau  
d’entiers,   dont   la   taille   est   fournie   en   donnée.   Utiliser   ce   tableau   pour   y   placer  
des  nombres  entiers  lus  également  en  donnée.  
Créer  ensuite  dynamiquement  un  nouveau  tableau  destiné  à  recevoir  les  carrés  
des   nombres   contenus   dans   le   premier.   Supprimer   le   premier   tableau,   afficher  
les   valeurs   du   second   et   supprimer   le   tout.   On   ne   cherchera   pas   à   traiter   un  
éventuel  problème  de  manque  de  mémoire.  
 
Exercice  2  
Ecrire  un  programme  C++  qui  déclare  un  tableau  alpha  de  50  éléments  de  type  
double.   Initialiser   le   tableau   de   sorte   que   les   25   premiers   éléments   soient   égaux  
au   carré   de   la   variable   d'indice,   et   que   les   25   derniers   éléments   soient   égaux   à  
trois   fois   la   variable   d'indice.   Afficher   le   tableau   de   sorte   que   10   éléments   par  
ligne  soient  imprimés.  
 
Exercice  3  
Ecrire  une  fonction  C  ++,  smallestIndex,  qui  prend  comme  paramètre  un  tableau  
int   et   sa   taille   et   retourne   l'indice   du   plus   petit   élément   du   tableau.   En   outre,  
écrire  un  programme  pour  tester  cette  fonction.  
 
Exercice  4  
Écrire  une  fonction,  sans  argument  ni  valeur  de  retour,  qui  se  contente  d’afficher,  
à  chaque  appel,  le  nombre  total  de  fois  où  elle  a  été  appelée  sous  la  forme  :  
appel  numéro  3  
 
Exercice  5  
Écrire   2   fonctions   à   un   argument   entier   et   une   valeur   de   retour   entière  
permettant   de   préciser   si   l’argument   reçu   est   multiple   de   2   (pour   la   première  
fonction)  ou  multiple  de  3  (pour  la  seconde  fonction).  
Utiliser  ces  deux  fonctions  dans  un  petit  programme  qui  lit  un  nombre  entier  et  
qui   précise   s’il   est   pair,   multiple   de   3   et/ou   multiple   de   6,   comme   dans   cet  
exemple  (il  y  a  deux  exécutions)  :  
donnez  un  entier  :  9  
il  est  multiple  de  3  
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  
donnez  un  entier  :  12  
il  est  pair  
il  est  multiple  de  3  
il  est  divisible  par  6  
 
 

  1  
Exercice  6  
 
Écrivez   et   testez   la   fonction   min   suivante   qui   renvoie   le   plus   petit   des   quatre  
nombres  entiers  donnés  :  int  min(int,int,int,int);  
 
Exercice  7  
 
Voici   une   fonction   avec   deux   paramètres.   Elle   renvoie   la   plus   grande   des   deux  
valeurs  qui  lui  ont  été  transmises.  
 
int  max(int  x,int  y)  {  //  renvoie  le  plus  grand  des  deux  entiers  donnés    
if  (x  <  y)  return  y;  
else  return  x;  
}  
int  main(  )  {  //  teste  la  fonction  max()    
int  m,n;  
do  {    
cin  >>  m  >>  n;  
cout  <<  "\tmax("  <<  m  <<  ","  <<  n  <<  ")  =  "  <<  max(m,n)  <<  endl;  
}  while  (m  !=  0);  
}  
Ecrire  et  tester  la  function  int  max(int,  int,  int,  int)  pour  trouver  le  maximum  de  
quatre  entiers  en  utilisant  la  fonction  max(int,  int)  ci-­‐dessus.  
 
Exercice  8  
 
Écrivez  et  testez  la  fonction  suivante  :  void  append(int  a[],  int  m,  int  b[],  int  n)  ;  
La   fonction   ajoute   les   n   premiers   éléments   du   tableau   b   à   l'extrémité   des   m  
premiers  éléments  du  tableau  a.  Elle  suppose  que   le  tableau   a  a  de  la  place  pour  
au  moins  m  +  n  éléments.  Par  exemple,  si  a  est  {22,33,44,55,66,77,88,99}  et  que  
b  est  {20,30,40,50,60,70,80,90},  alors  l'appel  append(a,5,b,3)  transformera  a  en  
{22,33,44,55,66,20,30,40}.  Notez  que  b  reste  inchangé  et  que  seuls  n  éléments  de  
a  sont  modifiés.  
 
Exercice  9  
Écrire   une   fonction   qui   ne   renvoie   aucune   valeur   et   qui   détermine   la   valeur  
maximale   et   la   valeur   minimale   d’un   tableau   d’entiers   (à   un   indice)   de   taille  
quelconque.  On  prévoira  4  arguments  :  le  tableau,  sa  dimension,  le  maximum  et  
le   minimum.   Pour   chacun   d’entre   eux,   on   choisira   le   mode   de   transmission   le  
plus  approprié  (par  valeur  ou  par  référence).  Dans  le  cas  où  la  transmission  par  
référence   est   nécessaire,   proposer   deux   solutions   :   l’une   utilisant   effectivement  
cette  notion  de  référence,  l’autre  la  «  simulant  »  à  l’aide  de  pointeurs.  
Écrire  un  petit  programme  d’essai.  
 
Exercice  10  
 
Écrire  une  fonction  qui  fournit  en  retour  la  somme  des  valeurs  d’un  tableau  de  
flottants  à  deux  indices  dont  les  dimensions  sont  fournies  en  argument.  
 

  2  
Exercice  11  
 
Considérez  la  fonction  main  suivante  :  
int  main()  {  
int  inStock[10][4];  
int  alpha[20];  
int  beta[20];  
int  gamma[4]  =  {11,  13,  15,  17};  
int  delta[10]  =  {3,  5,  2,  6,  10,  9,  7,  11,  1,  8};  
.  
.  
.  
}  
a.   Écrire   la   définition   de   la   fonction   setZero   qui   initialise   tout   tableau  
unidimensionnel  de  type  int  à  0.  
b.   Ecrire   la   définition   de   la   fonction   inputArray   qui   invite   l'utilisateur   à   entrer  
20  nombres  entiers  et  stocke  les  nombres  en  alpha.  
c.   Ecrire   la   définition   de   la   fonction   doubleArray   qui   initialise   les   éléments   de  
beta  à  deux  fois  les  éléments  correspondants  en  alpha.  Assurez-­‐vous  que  vous  
empêchez  la  fonction  de  modifier  les  éléments  d'alpha.  
d.   Écrire   la   définition   de   la   fonction   copyGamma   qui   définit   les   éléments   de   la  
première  ligne  de  inStock  avec  les  éléments  de  gamma  et  les  lignes  restantes  de  
inStock   à   trois   fois   la   rangée   précédente   de   inStock.   Assurez-­‐vous   que   vous  
empêchez  la  fonction  de  modifier  les  éléments  de  gamma.  
e.   Ecrire   la   définition   de   la   fonction   copyAlphaBeta   qui   stocke   alpha   dans   les  
cinq   premières   lignes   de   inStock   et   beta   dans   les   cinq   dernières   lignes   de  
inStock.  
Assurez-­‐vous   que   vous   empêchez   la   fonction   de   modifier   les   éléments   alpha   et  
beta.  
f.   Ecrire   la   définition   de   la   fonction   printArray   qui   imprime   tout   tableau  
unidimensionnel  de  type  int.  Imprimer  15  éléments  par  ligne.  
g.   Ecrire   la   définition   de   la   fonction   setInStock   qui   invite   l'utilisateur   à   entrer   les  
éléments   pour   la   première   colonne   de   inStock.   La   fonction   devrait   ensuite  
définir   les   éléments   dans   les   colonnes   restantes   à   deux   fois   l'élément  
correspondant  dans  la  colonne  précédente,  moins  l'élément  correspondant  dans  
delta.  
h.   Écrire   des   instructions   C++   qui   appellent   chacune   des   fonctions   dans   les  
parties   a   à   g.   Ecrire   un   programme   C++   qui   teste   la   fonction   principale   et   les  
fonctions   discutées   dans   les   parties   a   à   g.   (Ajoutez   des   fonctions  
supplémentaires,   telles   que   l'impression   d'un   tableau   à   deux   dimensions,   si  
nécessaire).  

  3  

Vous aimerez peut-être aussi