Académique Documents
Professionnel Documents
Culture Documents
2. Structures de Contrôle
Les structures de contrôle, comme les boucles (for, while,do..while), les boucles imbrique et les
instructions conditionnelles (if, else), offrent des mécanismes puissants pour contrôler le flux
d'exécution des programmes.
3. Fonctions
Les fonctions en C permettent d'organiser le code de manière modulaire. Elles sont définies avec un
en-tête (bibliothèques) , un corps (programme) et si nécessaire ,une valeur de retour.
Exercice 2 :
Ecrire un programme qui demande à l'utilisateur de saisir deux réels X et Y et
qui affiche la puissance x.
Solution :
#include<stdio.h>
#include<math.h>
int main()
{
float x,y,puissance;
Exercice 3:
Ecrire un programme qui demande à l'utilisateur de taper le rayon d'une
sphère, puis calcule et affiche son volume.
Solution :
#include<stdio.h>
#include<math.h>
int main(){
float R,V;
char Pi=3.14;
// Demander à l'utilisateur de saisir le rayon de la sphère
printf("veuillez entre le rayon d'une sphere");
scanf("%f",&R);
// Calculer le volume de la sphère
V=(4/3)*Pi*pow(R, 3)
// Afficher le résultat
printf("le volume d'une sphere est %f",V);
}
Exercice 4:
Bourasse Adam
Exercice 5:
Bourasse Adam
Exercice 6 :
Un magasin de reprographie facture 0,10dh les dix premières photocopies,
0,09dh les vingt suivantes et 0,08dh au-delà. Ecrire un programme qui
demande à l'utilisateur le nombre de photocopies effectuées et qui affiche le
coût total des photocopies.
Solution :
#include <stdio.h>
int main() {
int nombrePhotocopies;
float coutTotal;
Exercice 7 :
Ecrire un programme permettant de saisir trois notes (sur 20) d'un étudiant,
calculant sa moyenne et affichant cette moyenne avec la mention ("Très bien"
à partir de 16, "Bien" entre 14 et 16, "Assez bien" entre 12 et 14, "Passable"
entre 10 et 12. "Insuffisant" en dessous de 10).
Solution :
#include <stdio.h>
int main() {
float note1, note2, note3, moyenne;
scanf("%f", ¬e1);
printf("Entrez la deuxieme note (sur 20) : ");
scanf("%f", ¬e2);
printf("Entrez la troisieme note (sur 20) : ");
scanf("%f", ¬e3);
// Calculer la moyenne
moyenne = (note1 + note2 + note3) / 3;
// Afficher la moyenne
printf("La moyenne est : %.2f\n", moyenne);
// Afficher la mention en fonction de la moyenne
if (moyenne >= 16) {
printf("Mention : Tres bien\n");
} else if (moyenne >= 14) {
printf("Mention : Bien\n");
} else if (moyenne >= 12) {
printf("Mention : Assez bien\n");
} else if (moyenne >= 10) {
printf("Mention : Passable\n");
} else {
printf("Mention : Insuffisant\n");
}
}
Bourasse Adam
Exercice 8:
En utilisant l'instruction switch, donner un programme qui demande deux
nombres entiers et l'une des opérateurs suivant : +,-,*,/puis effectue
l'opération correspond et affiche le résultat de cette opération.
Solution :
#include <stdio.h>
int main() {
int nombre1, nombre2;
char operateur;
double resultat;
Exercice 9:
Ecrire un programme qui demande un nombre de départ, et qui ensuite
affiche les dix nombres suivants en utilisant la boucle Pour. Par exemple, si
l'utilisateur entre le nombre 33, le programme affichera les nombres de 34 à
43.
Solution :
#include <stdio.h>
int main() {
int nombreDepart;
if(b==0){
if(c==0)
Printf ("tout reel est solution \n");
else
Printf ("pas de solution \n");
}
else{
Printf ("equation premier ordre :");
Printf ("\t x=%.3f", -c/b);
}
}
else{
// Calcul du discriminant
D=pow(b,2) -4*a*c ;
if(D>0){
// Deux solutions réelles distinctes
x1=(-b+sqrt(D))/2*a;
x2=(-b-sqrt(D))/2*a;
printf ( "l'equation admet deux solutions reels x1=
%.3f \n ,x1,x2");
}
else if (D==0){
x0=-b/2*a;
printf ( "l'equation admet une seule solution :
x0=%.3f" ,x0);
}
Bourasse Adam
else{
Re=-b/2*a;
Img=sqrt(-D)/2*a;
Printf ("l'equation admet deux solutions : \n x1=
%.3f+i%.3f \t x2=%.3f-i%.3f" ,Re,Img);
}}
}
Solution :
#include <stdio.h>
int main(){
int N, i;
// Demande à l'utilisateur de saisir un nombre de départ
printf ( "veuiller saisir un nombre:" );
scanf( "%d",&N);
for ( i=N+1; i<=N+10; i++ );
Printf ( "%d\n" , i );
// i=N+1;
// while(i<=N+10){
// printf("%d\n",i);
// }
// do{
// printf("%d\n",i);
// i++; // }
While(i<=N+10) ; }
Bourasse Adam
Solution :
#include <stdio.h>
int main(){
float U[3], V[3], P;
int i;
scanf("%f",&V[i]);
}
for(i=0; i<3; i++)
P= P + U[i]*V[i];
printf("le produit scalaires des deus vecteurs est:%.2f",P);
return 0 ;}
Exercice 6 :
Ecrire un programme qui demande à l’utilisateur de saisir 10 entiers qu’on
stocke dans un tableau T. Ensuite, le programme détermine et affiche le
minimum des éléments du tableau T.
Solution :
#include <stdio.h>
int main(){
int T[10];
// Déclaration d'un tableau de 10 entiers
int i, min;
// Déclaration de variables
Bourasse Adam
Exercice 7 :
Ecrire un programme qui demande à l’utilisateur de saisir de 10 entiers qu’on
stocke dans un tableau T. Ensuite on redemande à l’utilisateur de saisir un
entier n. l’objectif étant de chercher l’existence du nombre n dans T, le
résultat va s’afficher comme suit :
- Si n se trouve dans T : « n se trouve dans le tableau ».
Solution :
Exercice 1 :
Bourasse Adam
Exercice 2 :
Bourasse Adam
Exercice 3 :
Exercice 4 :
Bourasse Adam
Bourasse Adam
Bourasse Adam
Exercice 5 :
Bourasse Adam
V. Avantages et Limitations
Avantages
Efficacité : Le langage C offre un contrôle direct sur la mémoire, permettant des
performances optimales.
Portabilité : Les programmes C peuvent être facilement adaptés à différentes plates-formes.
Limitations
Complexité : Manipuler directement la mémoire peut rendre le code complexe et sujet à des
erreurs.
Absence d'Outils de Sécurité Intégrés : Contrairement à des langages plus récents, le C
n'inclut pas d'outils de sécurité intégrés, laissant la responsabilité de la sécurité aux
programmeurs.
VI. Conclusion
Le langage C demeure un choix populaire pour les projets nécessitant une optimisation des
ressources et une maîtrise totale du système. Cependant, les programmeurs doivent être conscients
des défis potentiels liés à la gestion de la mémoire