Exercices langage C fonctions passage des paramètres


Exercice 1


Exécuter le programme suivant et construire les grilles correspondantes. Implémenter le programme ensuite en C.

 programme PARAMETRES
| entier A,B
| en A ranger 0
| en B ranger 0
| P(A,B)
| écrire A,B
fprogramme (* fin PARAMETRES *)
 procédure P(X,Y)
| donnée: entier X
| résultat: entier Y
| en X ranger X+1
| en Y ranger Y+1
| écrire X,Y
fprocédure (* fin P *)

Exercice 2


Exécuter le programme suivant et construire les grilles correspondantes. Implémenter le programme ensuite en C.

 programme TRUC
| entier A
| en A ranger 2
| écrire A
| MACHIN(A)
| écrire A
fprogramme (* fin TRUC *)
 procédure MACHIN(X)
| donnée: entier X
| écrire X
| en X ranger 1000
| écrire X
fprocédure (* fin MACHIN *)

 


Exercice 3


Exécuter le programme suivant et construire les grilles correspondantes. Implémenter le programme ensuite en C.

 programme CALCUL
| entier A,B,C
| en A ranger 3
| en B ranger -8
| en C ranger 12
| écrire A,B,C
| MODIFIER(A,B,C)
| écrire A,B,C
fprogramme (* fin CALCUL *)

procédure MODIFIER(X,Y,Z)
| donnée: entier X
| résultat: entier Y,Z
| entier T
| en T ranger X
| en X ranger Y
| en Y ranger Z
| en Z ranger T
fprocédure (* fin MODIFIER *)

Exercice 4


Exécuter le programme suivant et construire les grilles correspondantes. Implémenter le programme ensuite en C.

 programme MANIPULATION
| entier A,B,C
| en A ranger 208
| en B ranger 5
| en C ranger -34
| écrire A,B,C
| MANIPULER(A,B,C)
| écrire A,B,C
fprogramme (* fin MANIPULATION *)

procédure MANIPULER(X,Y,Z)
| donnée: entier X,Y
| résultat: entier Z
| écrire X,Y,Z
| en X ranger X divent 2
| en Y ranger Y*2
| en Z ranger X+Y
| écrire X,Y,Z
fprocédure (* fin MANIPULER *)


solex03 

Affichage:

1 1
0 1

Implémentation:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>

main()
{
 void P(int X, int *Y); /* Prototype de la fonction appelée */ 
  int A,B;
 A=0;   
 B=0; 
 P(A, &B);
  printf("%d %d \n", A, B);
 return 0;
}

void P(int X, int *Y)
 {
 X = X+1;
 *Y = *Y+1;
 printf("%d %d \n", X, *Y);
}

 solex04



Affichage: 2

2

1000

2

Implémentation:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>

main()
{
 void MACHIN(int X); /* Prototype de la fonction appelée */
 int A;
 A=2;   
 printf("%d \n", A);
 MACHIN(A);
 printf("%d \n", A);
 return 0;
}

void MACHIN(int X)
{
 printf("%d \n", X);
 X = 1000;
 printf("%d \n", X);
}

solex05 

Affichage: 3 -8 12

3 12 3

Implémentation:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>

main()
{
 void MODIFIER(int X, int *Y, int *Z); /* Prototype */ 
  int A,B,C;
 A=3;   
 B=-8;
 C=12; 
 printf("%d %d %d \n", A, B, C);
 MODIFIER(A,&B,&C);
  printf("%d %d %d \n", A, B, C);
 return 0;
}
void MODIFIER(int X, int *Y, int *Z)
{
 int T;
 T  = X;
 X  = *Y;
 *Y = *Z;
 *Z = T;
}


solex06 



Affichage:

208 5 -34
208 5 -34
104 10 114
208 5 114

suite . . .

Implémentation:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>

main()
{
 void MANIPULER(int X, int Y, int *Z); /* Prototype */ 
  int A,B,C;
 A=208;   
 B=5;
 C=-34; 
 printf("%d %d %d \n", A, B, C);
 MANIPULER(A,B,&C);
  printf("%d %d %d \n", A, B, C);
 return 0;
}
void MANIPULER(int X, int Y, int *Z)
 {
 printf("%d %d %d \n", X, Y, *Z);
 X = X/2;
 Y = Y*2;
 *Z = X+Y;
 printf("%d %d %d \n", X, Y, *Z);
}