Vous êtes sur la page 1sur 6

Matière : Algorithmes et Structures de Données I

Classes : L _BD_1, L_GLSI_1 ET L_IMM_1


Enseignant responsable : Mr ben Rkaya Moez

CAHIER D’EXERCICES 1
Les structures alternatives et
répétitives
Pour tester les programmes écris ci-dessous, utilisez un compilateur en
ligne :

https://www.programiz.com/c-programming/online-compiler/
Exercice 1 : étant donné 3 notes de coefficient respectivement 0.1, 0.2 et 0.8.
Calculer la moyenne, puis on déduire la mention sachant que :
Intervalle de moyenne Mention
moyenne<8 Refusé
8<=moyenne<10 Contrôle
Moyenne>10 Admis
#include <stdio.h>
#include <math.h>
int main() {
float n1, n2,n3,moyenne;
do{
printf("Note1 = ");
scanf("%f", &n1);
}
while(n1>20 || n1<0);
do{
printf("Note2 = ");
scanf("%f", &n2);
}
while(n2>20 || n2<0);
do{
printf("Note3 = ");

Page 1 sur 6
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

scanf("%f", &n3);
}
while(n3>20 || n3<0);
moyenne = n1*0.1 + n2*0.2 + n3*0.7;
if(moyenne<8)
printf("Moyenne %.2f : refusé", moyenne);
else if(moyenne<10 && moyenne>=8)
printf("Moyenne %.2f : controle", moyenne);
else
printf("Moyenne %.2f : admis", moyenne);
return 0;
}

Exercice 2 : Résoudre l’équation de second degré : ax2 + bx + c = 0

#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double delta, racine1, racine2;
double x;
printf("Entrez les coefficients de l'équation de second degré (a, b et c) : ");
scanf("%lf %lf %lf", &a, &b, &c);
if (a == 0) {
if (b == 0) {
if (c == 0) {
printf("L'équation a une infinité de solutions.\n");
}
else {

Page 2 sur 6
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

printf("L'équation n'a pas de solution.\n");


}
}
else {
x= -c / b;
printf("L'équation est une équation linéaire avec une solution : x = %lf\n", x);
}
}
else {
delta = b * b - 4 * a * c;
if (delta > 0) {
racine1 = (-b + sqrt(delta)) / (2 * a);
racine2 = (-b - sqrt(delta)) / (2 * a);
printf("L'équation a deux solutions réelles : x1 = %lf et x2 = %lf\n", racine1,
racine2);
}
else if (delta == 0) {
x = -b / (2 * a);
printf("L'équation a une solution réelle unique : x = %lf\n", x);
}
else {

printf("pas de solution en R");


}
}
return 0;
}

Page 3 sur 6
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Exercice 3 : un entier est considéré comme un "entier cubique" s'il peut être
exprimé comme la somme des cubes de ses chiffres unitaires.
Ecrire un programme pour tester un entier s’il est cubique ou non)
Le programme doit s’assurer que l’entier n est composé de 3 chiffres (n ∉
{100...999})
#include <stdio.h>
#include <math.h>
int main() {
int n,a,b,c;
do{
printf("N = ");
scanf("%d", &n);
}
while(n>999 || n<100);
a = n/100;
b=(a%100)/10;
c=n%10;
if(pow(a,3) + pow(b,3) + pow(c,3) ==n)
printf("%d est cubique", n);
else
printf("%d n'est pas cubique", n);
return 0;
}
Exercice 4 : Ecrire un programme en C qui permet à l'utilisateur d'entrer deux
opérandes, un type d'opération, et affiche le résultat. Le programme demande
également à l'utilisateur s'il souhaite répéter l'action ou non en utilisant la fonction
getche () de la bibliothèque <conio.h>
#include <stdio.h>

Page 4 sur 6
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

#include <conio.h>

int main() {
char reponse;

do {
double operande1, operande2, resultat;
char operateur;
printf("Entrez le premier operande : ");
scanf("%lf", &operande1);
printf("Entrez le type d'operation ");
scanf(" %c", &operateur);
printf("Entrez le deuxieme operande : ");
scanf("%lf", &operande2);
switch (operateur) {
case '+':
resultat = operande1 + operande2;
break;
case '-':
resultat = operande1 - operande2;
break;
case '*':
resultat = operande1 * operande2;
break;
case '/':
if (operande2 != 0) {
resultat = operande1 / operande2;
} else {

Page 5 sur 6
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

printf("Division par zero impossible.\n");


return 1;
}
break;
case '%':
if (operande2 != 0) {
resultat = (int)operande1 % (int)operande2;
} else {
printf("Le modulo par zéro n'est pas défini.\n");
return 1;
}
break;
default:
printf("Opérateur non valide.\n");
return 1;
}
printf("Le résultat est : %.2lf\n", resultat);
printf("Voulez-vous répéter l'action (o/n) ? ");
reponse = getche();
printf("\n");
} while (reponse == 'o' || reponse == 'O');

return 0;
}

Page 6 sur 6

Vous aimerez peut-être aussi