0% ont trouvé ce document utile (0 vote)
176 vues3 pages

Solutions TD Algorithmique 1ère année

Ce document contient la solution d'un TD d'algorithmique et programmation de la première année SICoM à l'Université Sidi Mohamed Ben Abdellah. Il y a sept exercices portant sur des sujets comme les pointeurs, les fonctions, la récursivité, les nombres premiers et les opérations sur les entiers.

Transféré par

Omar Zemrani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
176 vues3 pages

Solutions TD Algorithmique 1ère année

Ce document contient la solution d'un TD d'algorithmique et programmation de la première année SICoM à l'Université Sidi Mohamed Ben Abdellah. Il y a sept exercices portant sur des sujets comme les pointeurs, les fonctions, la récursivité, les nombres premiers et les opérations sur les entiers.

Transféré par

Omar Zemrani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Sidi Mohamed Ben Abdellah 2020/2021

Faculté des Sciences et Techniques de Fès


Département Informatique

Algorithmique et programmation
1ère année SICoM
Solution TD : Série N° 2

Exercice 1
Compléter le tableau suivant : 
  A  B  C  P1  P2 
Initialisation  1  2  3  /  / 
P1=&A  1  2  3  &A  / 
P2=&C  1  2  3  &A  &C 
*P1= (*P2)++  3  2  4  &A  &C 
P1=P2  3  2  4  &C  &C 
P2=&B  3  2  4  &C  &B 
*P1- =*P2           
++*P2           
*P1*=*P2           
A=++*P2**P1           
P1=&A           
 

Exercice 2
Donner le résultat d’exécution du programme suivant : 
#include <stdio.h>  int ​reculer3(int *x){  reculer2(y ); 
void ​avancer1(int x  *x-=3;  printf("\n ​y=%d",y​); 
){   return *​x ​;  y=avancer2(&x); 
x+=1;  }  printf("\n​ y=%d​",​y​); 
​}  main( )​{  printf("\n ​x=%d",x​); 
int ​avancer2(int *x){  int ​ x=6, y=1;  y=reculer3(&x); 
*x+=2;  avancer1(x);  printf("\n ​y=%d",y​); 
return *​x​ ;  printf("\n ​x=%d",x​);  printf("\n ​x=%d",x​); 
}  x=avancer2(&y);  x=reculer3(&y); 
void ​reculer2( int x){  printf("\n​ y=%d​",​y​);  printf("\n ​x=%d",x​); 
x-=2;  printf("\n ​x=%d",x​);  printf("\n ​y=%d",y​); 

1/3 
 
}  } 

Exercice 3
1. Ecrire une fonction qui échange le contenu de deux variables entières. Compléter les exemples
d'utilisation suivants:

1)​ void main()


{
int a = 10, b = 22;
Echanger( );
/* ici on doit avoir a == 22 et b == 10 */
}

2) ​void main()
{
int *a, *b;
/* saisir a et b*/

scanf( … ) ;
Echanger( … );
printf(’’%d%d ’’, *a,*b) ;
}

2. En utilisant la fonction ​Echanger​, écrire une fonction ​Permute3​ qui effectue une permutation
circulaire de trois variables, comme dans l'exemple ci-dessous :
void
{
int a = 10, b = 22, c = 33;
Permute3( &a, &b, &c );
/* ici a == 33, b == 10, c == 22 */
}

Exercice 4

Le programme incomplet suivant doit réaliser la division entière de n par d.


void ​divint​(.,.,.,.)

...
}
void main()
{
int n,d,q,r ;
printf(" donner n et d ") ;
scanf("%d%d ",&n,&d) ;
divint(.,.,.,.) ;
printf("%d%d",q,r) ;

Compléter ce programme en utilisant uniquement les opérateurs + et -.

Exercice 5
Le nombre de combinaisons de i dans n est défini par :
1. Ecrire une fonction qui calcule le nombre de combinaisons de i dans n.
2. Le triangle de Pascal est défini par :

2/3 
 
Ecrire une fonction qui édite le triangle de Pascal

Exercice 6
1. Ecrire les fonctions suivantes :

● Premier p​ rend en entrée un entier et retourne 1 si l’entier est premier et 0 sinon.


● Parfait p​ rend en entrée un entier et retourne 1 si l’entier est parfait et 0 sinon.
Parfait s’il est égal à la somme de ses diviseurs stricts.
● Triangulaire ​prend en entrée un entier et retourne 1 si l’entier est triangulaire et 0 sinon.

2. Les fonctions ci-dessus sont codées respectivement par les valeurs 1, 2 et 3. Ecrire le programme
C qui saisit un entier ​n ​et un code, exécute la fonction correspondante et affiche le résultat.

Exercice 7
Ecrire La fonction récursive Produit qui calcule le produit de deux entiers selon le principe récursif
suivant :
a * b = a* (b -1) + a si b est impair
a * b = 2 * a * b / 2 si b est pair et différent de 0
a*b =0 si b est nul​. 

3/3 
 

Vous aimerez peut-être aussi