Département génie électrique
Intitulé du module : Informatique
Intitulé du l’élément du module : Programmation C
Filière : GECSI
COMPTE RENDU DU TP
TRAVAUX PRATIQUES DE PROGRAMMATION C
réalise par : Encadré par :
- AAFFAN ABDELAZIZ - Pr. EL-MYASSE ILYASS
- EL-HASSAN LBSSIR
Année universitaire: 2023/2024
Table des matières
1 La structure conditionnelle if . . . else 3
1.1 la valeur absolue d’un réel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 maximum et minimum de deux réels . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Caractère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Équation de deuxième ordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 La structure switch . . .case 6
2.1 algorithme des jours de semaines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Programme de menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 La structure répétitive for 8
3.1 la somme et la moyenne des n premiers entiers . . . . . . . . . . . . . . . . . . . . . 8
3.2 le factoriel (n !) d’un entier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 La structure répétitive while 10
4.1 le factoriel N ! d’un entier naturel N . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 la somme du 10 entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 La structure répétitive do . . . while 12
5.1 le plus grand élément et la somme d’une liste d’entiers . . . . . . . . . . . . . . . . . 12
5.2 Entiers entre 0 et 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3 Signe d’un entier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6 Programme pour calculer le prix 14
1
Introduction
La programmation en langage C est un élément fondamental de l’informatique et de la science
informatique. Développé au début des années 1970 par Dennis Ritchie à Bell Labs, le langage
C est largement utilisé dans le développement logiciel, du système d’exploitation au développement
d’applications
Sur ce TP, nous allons résoudre des problèmes et écrire des programmes en utilisant le langage
C. Cela nous permettra de développer nos connaissances dans ce langage et de les appliquer dans
des situations futures pour résoudre des problèmes techniques ou pour programmer des composants
électriques.
En résumé, la programmation en langage C offre aux développeurs un contrôle étroit sur les
ressources système, une efficacité élevée et une portabilité, ce qui en fait un langage de choix pour
un large éventail d’applications informatiques.
2
Chapitre 1
La structure conditionnelle if . . .
else
1.1 la valeur absolue d’un réel
Ce programme est afficher la valeur absolue d’un nombre < 0.
la valeur absolue d’un réel
1 # include < stdio .h >
2
3 int main () {
4 float nombre , valeurAbsolue ;
5
6 printf ( " Entrez un nombre reel : " ) ;
7 scanf ( " % f " , & nombre ) ;
8
9 if ( nombre < 0) {
10 valeurAbsolue = - nombre ;
11 } else {
12 valeurAbsolue = nombre ;
13 }
14
15 printf ( " La valeur absolue est : %.2 f \ n " , valeurAbsolue ) ;
16
17 return 0;
18 }
19
1.2 maximum et minimum de deux réels
Ce programme est afficher le maximum et le minimum de deux réels.
maximum et minimum de deux réels
1 # include < stdio .h >
2
3 int main () {
4 float a , b , max , min ;
5
6 printf ( " Entrez le premier nombre reel : " ) ;
7 scanf ( " % f " , & a ) ;
8
3
TP python GECSI
la suite de programme de maximum et minimum de deux réels
1 printf ( " Entrez le deuxieme nombre reel : " ) ;
2 scanf ( " % f " , & b ) ;
3 if ( a > b ) {
4 max = a ;
5 min = b ;
6 } else {
7 max = b ;
8 min = a ;
9 }
10
11 printf ( " Le maximum est : %.2 f \ n " , max ) ;
12 printf ( " Le minimum est : %.2 f \ n " , min ) ;
13
14 return 0;
15 }
16
1.3 Caractère
Dans ce programme, l’utilisateur est invité à entrer un caractère. Le programme utilise ensuite
une structure conditionnelle if...else pour vérifier si le caractère est une lettre majuscule en compa-
rant son code ASCII. Si c’est le cas, le programme convertit la lettre en minuscule en ajoutant 32
à son code ASCII. Sinon, il affiche un message d’erreur. Enfin, le résultat est affiché à l’utilisateur.
Caractère
1 # include < stdio .h >
2
3 int main () {
4 char caractere ;
5
6 printf ( " Entrez un caractere : " ) ;
7 scanf ( " % c " , & caractere ) ;
8
9 if ( caractere >= ’A ’ && caractere <= ’Z ’) {
10 caractere = caractere + 32;
11 printf ( " En minuscule : % c \ n " , caractere ) ;
12 } else {
13 printf ( " Erreur : Ce n ’ est pas une lettre majuscule .\ n " ) ;
14 }
15
16 return 0;
17 }
1.4 Équation de deuxième ordre
Ce programme C demande à l’utilisateur d’entrer les coefficients a, bet c, puis utilise la structure
conditionnelle if...else pour évaluer les différents cas en fonction du discriminant. Il calcule ensuite
et affiche les racines de l’équation quadratique.
ENSET Mohammedia 4 2023/2024
TP python GECSI
Caractère
1 # include < stdio .h >
2 # include < math .h >
3
4 int main () {
5
6 float a , b , c , delta , racine1 , racine2 ;
7
8 printf ( " Entrez le coefficient a : " ) ;
9 scanf ( " % f " , & a ) ;
10 printf ( " Entrez le coefficient b : " ) ;
11 scanf ( " % f " , & b ) ;
12 printf ( " Entrez le coefficient c : " ) ;
13 scanf ( " % f " , & c ) ;
14
15 delta = b * b - 4 * a * c ;
16
17 if ( delta > 0) {
18 racine1 = ( - b + sqrt ( delta ) ) / (2 * a ) ;
19 racine2 = ( - b - sqrt ( delta ) ) / (2 * a ) ;
20 printf ( " Deux racines reelles distinctes : %.2 f et %.2 f \ n " , racine1 ,
racine2 ) ;
21 } else if ( delta == 0) {
22 racine1 = -b / (2 * a ) ;
23 printf ( " Une racine reelle : %.2 f \ n " , racine1 ) ;
24 } else {
25 printf ( " Pas de racines reelles ( racines imaginaires ) .\ n " ) ;
26 }
27
28 return 0;
29 }
30
ENSET Mohammedia 5 2023/2024
Chapitre 2
La structure switch . . .case
2.1 algorithme des jours de semaines
Ce algorithme est représenté l’algorithme des jours de semaines.
Caractère
1 Algorithme A f f i c h e r J o u r S e m a i n e
2 Variables
3 jour : entier
4
5 Debut
6
7 Ecrire ( " Entrez un chiffre de 1 a 7 : " )
8 Lire ( jour )
9
10 Selon jour
11 Cas 1: Ecrire ( " Lundi " )
12 Cas 2: Ecrire ( " Mardi " )
13 Cas 3: Ecrire ( " Mercredi " )
14 Cas 4: Ecrire ( " Jeudi " )
15 Cas 5: Ecrire ( " Vendredi " )
16 Cas 6: Ecrire ( " Samedi " )
17 Cas 7: Ecrire ( " Dimanche " )
18 Sinon : Afficher " Chiffre invalide . Entrez un chiffre de 1 a 7. "
19 Fin Selon
20
21 Fin
22
2.2 Programme de menu
Ce programme Cest afficher le menu suivante :
Menu
1 # include < stdio .h >
2
3 int main () {
4 char choix ;
5
6 printf ( " %%%%%%%%%% MENU %%%%%%%%%%\ n " ) ;
7 printf ( " i ) Ajouter ---- taper ---- > a \ n " ) ;
8 printf ( " ii ) Modifier ---- taper ---- > m \ n " ) ;
9
6
TP python GECSI
Suite d programme
1 printf ( " iii ) Supprimer ---- taper ---- > s \ n " ) ;
2 printf ( " iv ) Quitter ---- taper ---- > q \ n " ) ;
3 printf ( " Entrez votre choix : " ) ;
4 scanf ( " % c " , & choix ) ;
5
6 switch ( choix ) {
7 case ’a ’:
8 printf ( " Vous avez choisi d ’ ajouter .\ n " ) ;
9 break ;
10 case ’m ’:
11 printf ( " Vous avez choisi de modifier .\ n " ) ;
12 break ;
13 case ’s ’:
14 printf ( " Vous avez choisi de supprimer .\ n " ) ;
15 break ;
16 case ’q ’:
17 printf ( " Vous avez choisi de quitter .\ n " ) ;
18 break ;
19 default :
20 printf ( " Choix invalide . Veuillez choisir parmi les options fournies .\ n
");
21 }
22
23 return 0;
24 }
25
ENSET Mohammedia 7 2023/2024
Chapitre 3
La structure répétitive for
3.1 la somme et la moyenne des n premiers entiers
Ce programme C est afficher la somme et la moyenne des n premiers entiers
la somme et la moyenne des n premiers entiers
1 # include < stdio .h >
2 int main () {
3 int n , somme = 0;
4 float moyenne ;
5 printf ( " Entrez la valeur de n : " ) ;
6 scanf ( " % d " , & n ) ;
7 for ( int i = 1; i <= n ; ++ i )
8 {
9 somme += i ;
10 }
11 moyenne = ( float ) somme / n ;
12 printf ( " La somme des % d premiers entiers est : % d \ n " , n , somme ) ;
13 printf ( " La moyenne des % d premiers entiers est : % f \ n " , n , moyenne ) ;
14 }
15
3.2 le factoriel (n !) d’un entier
Le programme C suivante afficher le factoriel (n !) d’un entier.
la somme et la moyenne des n premiers entiers
1 # include < stdio .h >
2 int main ()
3 {
4 int n , factoriel =1;
5
6 printf ( " Entrez un entier positif : " ) ;
7 scanf ( " % d " , & n ) ;
8 if ( n < 0)
9 {
10 printf ( " Veuillez saisir un entier positif .\ n " ) ;
11 }
12
8
TP python GECSI
la suite de programme
1 for ( int i = 1; i <= n ; ++ i )
2 {
3 factoriel *= i ;
4 }
5 printf ( " Le factoriel de % d est : % d \ n " , n , factoriel ) ;
6
7 return 0;
8 }
9
10
ENSET Mohammedia 9 2023/2024
Chapitre 4
La structure répétitive while
4.1 le factoriel N ! d’un entier naturel N
Le programme C suivante afficher le factoriel N ! d’un entier naturel N avec la boucle while.
le factoriel N ! d’un entier naturel N
1 # include < stdio .h >
2 int main ()
3 {
4 int N , i = 1;
5 unsigned long long factoriel = 1;
6 printf ( " Entrez un entier naturel : " ) ;
7 scanf ( " % d " , & N ) ;
8 if ( N < 0)
9 {
10 printf ( " Veuillez saisir un entier naturel .\ n " ) ;
11 return 1;
12 }
13 while ( i <= N )
14 {
15 factoriel *= i ;
16 i ++;
17 }
18 printf ( " Le factoriel de % d est : % llu \ n " , N , factoriel ) ;
19 }
20
4.2 la somme du 10 entiers
Ce programme C est calculer la somme du 10 entiers saiser par l’utilisateur.
le factoriel N ! d’un entier naturel N
1 # include < stdio .h >
2 int main () {
3 int nombre , somme = 0;
4 int i = 1;
5 printf ( " Entrez 10 entiers :\ n " ) ;
6 while ( i <= 10)
7 {
8 printf ( " Entrez le nombre % d : " , i ) ;
9 scanf ( " % d " , & nombre ) ;
10
10
TP python GECSI
la suite de programme
1 somme += nombre ;
2 i ++;
3 }
4 printf ( " La somme des 10 entiers est : % d \ n " , somme ) ;
5 }
6
ENSET Mohammedia 11 2023/2024
Chapitre 5
La structure répétitive do . . . while
5.1 le plus grand élément et la somme d’une liste d’entiers
A partir d’une suite d’entiers lus au clavier se terminant par 0,ce programme C est calculez le
plus grand élément et la somme des éléments lus.
le plus grand élément et la somme d’une liste d’entiers
1 # include < stdio .h >
2 int main ()
3 {
4 int nbr , s = 0 , max = 0;
5 printf ( " Entrez un entier (0 pour terminer ) : " ) ;
6 scanf ( " % d " , & nbr ) ;
7 do {
8 s += nbr ;
9 if ( nbr > max )
10 {
11 max = nbr ;
12 }
13 printf ( " Entrez un entier (0 pour terminer ) : " ) ;
14 scanf ( " % d " , & nbr ) ;
15 } while ( nbr != 0) ;
16 printf ( " La somme des entiers est : % d \ n " , s ) ;
17 printf ( " Le plus grand element est : % d \ n " , max ) ;
18 }
19
5.2 Entiers entre 0 et 10
Ce programme C est demande a utilisateur Saisi au clavier des entiers entre 0 et 10
Entiers entre 0 et 10
1 # include < stdio .h >
2 int main () {
3 int nombre ;
4 printf ( " Saisissez des entiers entre 0 et 10 ( entrez un nombre en
dehors de cette plage pour terminer ) :\ n " ) ;
5
6 do {
7 printf ( " Entrez un entier : " ) ;
8 scanf ( " % d " , & nombre ) ;
9
12
TP python GECSI
la suite de programme
1 if ( nombre >= 0 && nombre <= 10)
2 {
3 printf ( " Vous avez saisi : % d \ n " , nombre ) ;
4 }
5 else
6 {
7 printf ( " Fin de la saisie .\ n " ) ;
8 break ;
9 }
10 } while (1) ;
11 return 0;
12 }
13
5.3 Signe d’un entier
Ce programme permettant de saisir et de valider si un entier lu est positif ou non.
Signe d’un entier
1 # include < stdio .h >
2
3 int main () {
4 int entier , copie , chiffre ;
5 do {
6 printf ( " Entrez un entier positif : " ) ;
7 scanf ( " % d " , & entier ) ;
8 if ( entier <= 0)
9 {
10 printf ( " Veuillez entrer un entier positif .\ n " ) ;
11 }
12 } while ( entier <= 0) ;
13 printf ( " Vous avez saisi : % d \ n " , entier ) ;
14 printf ( " L ’ entier a l ’ envers est : " ) ;
15 copie = entier ;
16 do {
17 chiffre = copie % 10;
18 printf ( " % d " , chiffre ) ;
19 copie /= 10;
20 } while ( copie != 0) ;
21 printf ( " \ n " ) ;
22 }
23
24
ENSET Mohammedia 13 2023/2024
Chapitre 6
Programme pour calculer le prix
Ce programme C est calcule le prix à payer pour le transport d’une colis.
Programme C pour calculer le prix
1 # include < stdio .h >
2 int main ()
3 {
4 double poids , largeur , longueur , hauteur , distance , prixBase ,
surtaxePoids , surtaxeDimensions , surtaxeDistance , total ;
5 printf ( " Entrez le poids du colis ( en kg ) : " ) ;
6 scanf ( " % lf " , & poids ) ;
7
8 printf ( " Entrez la largeur du colis ( en m ) : " ) ;
9 scanf ( " % lf " , & largeur ) ;
10
11 printf ( " Entrez la longueur du colis ( en m ) : " ) ;
12 scanf ( " % lf " , & longueur ) ;
13
14 printf ( " Entrez la hauteur du colis ( en m ) : " ) ;
15 scanf ( " % lf " , & hauteur ) ;
16
17 printf ( " Entrez la distance a parcourir ( en km ) : " ) ;
18 scanf ( " % lf " , & distance ) ;
19
20 prixBase = 50.0;
21
22 if ( poids > 60.0)
23 {
24 surtaxePoids = 10.0 * ( poids - 60.0) ;
25 }
26 else
27 {
28 surtaxePoids = 0.0;
29 }
30 if ( largeur > 1.0 || longueur > 1.0 || hauteur > 1.0)
31 {
32 s u r t a x e D i m e n s i o n s = 20.0;
33 }
34 else
35 {
36 s u r t a x e D i m e n s i o n s = 0.0;
37 }
38 if ( distance > 100.0)
39 {
40
14
TP python GECSI
la suite de programme
1 s ur ta xe D is ta nc e = 0.1 * ( prixBase + surtaxePoids + s u r t a x e D i m e n s i o n s ) ;
2 }
3 else
4 {
5 s ur ta xe D is ta nc e = 0.0;
6 }
7 total = prixBase + surtaxePoids + s u r t a x e D i m e n s i o n s + s ur ta xe D is ta n ce ;
8
9 printf ( " Le prix a payer pour le transport du colis est : %.2 lf Dh \ n " ,
total ) ;
10 }
11
12
ENSET Mohammedia 15 2023/2024
Conclusion
En résumé, ce projet a mis en lumière la richesse et la diversité des possibilités de programmation
en langage C. En résolvant différents algorithmes, nous avons exploré des méthodes simples, mettant
en avant l’importance d’une pensée logique et d’une compréhension approfondie des concepts.
La diversité des problèmes abordés témoigne de la flexibilité du langage C et de sa capacité
à s’adapter à une multitude de situations. Les détails fournis tout au long du projet ont illustré
comment des approches directes peuvent souvent être suffisantes, soulignant ainsi l’importance de
la clarté et de la simplicité dans la programmation en C.
16