Vous êtes sur la page 1sur 28

2

Sommaire
Semestre 1
ALGORITHMIQUE
PROGRAMMATION
Semestre 2

EXAMENS

CORRECTIONS DES EXERCICES

3
Affectation et affichage
Exercice 1
Soit l’équation ax+b=0.
Ecrire un algorithme permettant de :
 déclarer et saisir les coefficients a et b (réels)
 afficher l’équation à saisir
 afficher la solution

Exercice 2
Écrire un Algorithme qui calcule et affiche la surface de 2 cercles, l’un de rayon R1 et l’autre de
rayon R2, ainsi que la différence entre les deux surfaces. (S= πR2)

Traitement Conditionnel

Exercice 2
Réalisez un algorithme qui demande à l’utilisateur de saisir deux entiers x et y et indique si l’un est
multiple de l’autre.
Exercice 3
Écrivez un algorithme qui saisit 3 variables de types réels et les affiches dans l’ordre croissant.
Exercice 4
Écrivez un algorithme qui réalise la saisie d’une variable entière positive. En utilisant les
instructions suivant faire, affichez en lettres la valeur correspondant à ma variable (« un » pour 1,
« deux » pour 2, etc). Si la variable est supérieure à 10, affichez « autre valeur ».

Traitement répétitif
Exercice 6
La suite de Fibonacci est une suite d’entiers ou chaque terme est défini comme la somme des deux
termes précédents. Les deux premiers éléments sont 0 et 1.
Ecrivez un algorithme permettant de calculer et d’afficher les N premiers termes de la suite de
Fibonacci, N étant fixé par l’utilisateur.
Exercice 7

4
Écrivez un algorithme qui dessine un carré, sur l’écran, comportant T lignes et T colonnes, T étant
donné par l’utilisateur.
Le carré peut être dessiné avec des étoiles par exemple.

Exercice 8
Faites la même chose (exercice 7) pour un rectangle de L lignes et C colonnes, L et C étant donnés
par l’utilisateur.

Traitements Conditionnel et répétitif

Tableaux
Exercice 9
Ecrire un algorithme qui calcule le produit scalaire de deux vecteurs (représentés comme des
tableaux).
Exercice 10
Soient deux tableaux d’entiers. Écrire l’algorithme d’une fonction qui permet de tester l’égalité
entre les tableaux : il rend VRAI si les composants des deux tableaux correspondent position par
position, et FAUX sinon.
Exercice 11
Ecrire un algorithme qui recherche et affiche le nombre d’occurrences d’un entier (saisie par
l’utilisateur) dans un tableau d’entiers (également saisi par l’utilisateur).
Exercice 12
Ecrire un algorithme qui inverse l’ordre d’apparition des nombres présents dans un tableau d’entiers.
Exercice 13
Ecrire un algorithme qui calcule la somme des valeurs de la diagonale principale d’une matrice de
réels carrée de taille n x n.

Exercice 14
Ecrire un algorithme qui calcule la somme des valeurs de la diagonale secondaire d’une matrice de
réels carrée de taille n x n.

Exercice 15
Ecrire un algorithme qui recherche la valeur maximale d’une matrice de réels de taille n x m.

Fonctions

5
Exercice 16
Ecrivez une procédure count prenant en entrée un entier N, qui affiche les entiers de 1 jusqu’à N.

Exercice 18
Faire de même avec une procédure countDown, affichant toutes les valeurs de N à 1.

Exercice 5
Ecrivez un algorithme qui indique si un nombre N entré par l’utilisateur est premier ou non. Pour
cela, on essayera de diviser cet entier par tous les entiers inférieurs à N (en fait, on peut se limiter à
tester tous les entiers inférieurs à racine de N, sqrt).

PROGRAMMATION

6
TP 1 : Affectation et affichage : (Scanf ( ) et Printf ( ))
Exercice 1 :
Ecrire un programme C qui permet de convertir les degrés en radians.
NB : On prendra : 1°=0,0174rad
Exercice 2 :
Ecrire un programme C qui calcul la surface et la circonférence d’un cercle de rayon R.
Exercice 3 :
Ecrire un programme C qui exprime un nombre n de secondes sous forme d’heures, minutes,
secondes.

TP 2 : Traitement Conditionnel ; (If …..else….)


Exercice 1 :
Ecrire un programme C qui lit un nombre et vérifie s'il est négatif, nul ou positif.
Exercice 2 :
Soient 3 nombres entiers donnés A, B, C. Ecrire le programme C qui affiche le nombre qui est égale
au résultat de la somme des deux autres.
Exercice 3 :
Ecrire un programme C qui permet de résoudre une équation du second degré. A x2 + B x + C = 0
Exercice 4 :
Ecrire un programme C qui trie par ordre croissant trois entiers.

TP 3 : Traitement de sélection :(Switch … case …)


Exercice 1 :
Soient A et B deux nombres réels. En utilisant l’instruction de sélection écrire un programme C qui
permet de calculer :
A+ B si on tape ‘+’
A- B si on tape ‘-’
A* B si on tape ‘*’
A/ B si on tape ‘/’
Sinon il affiche le message ‘opérateur incorrecte’.
+ , - * et / sont déclarés comme caractère (ou chaines de caractère ‘ string’)
Exercice 2 :
Ecrire un programme C en utilisant l’instruction ”Sélection” pour résoudre le problème suivant :
Etant donné l’âge d’un enfant, on veut l’informer de sa catégorie :
« Poussin » de 6 à 7 ans

7
« Pupille » de 8 à 9 ans
« Minime » de 10 à 11 ans
« Cadet » de 12 à 15 ans.
Sinon il affiche le message ‘catégorie incorrecte’.

TP 4 : Traitement répétitif -1- ; (For (...) {Action})


Exercice 1 :
Ecrire un programme C qui calcule puis affiche la somme des N premiers entiers. Utiliser
l’instruction for:

Exercice 2 :
Etant donnés deux nombres n entier et x réel. Ecrire le programme C qui calcul xn par
multiplications successives. Utiliser l'instruction for.

TP5 : Traitement répétitif -2- : (While (condition) {Action})

Exercice 1 :
Ecrire un programme C qui calcule puis affiche la somme de tous les multiples de 5 inférieurs à 100.
Utiliser l'instruction While.
Exercice 2 :
Un nombre entier est dit parfait s’il est égal à la somme de tous ses diviseurs, excepté lui-même
(exemple 6 = 1 + 2 + 3). Ecrire un programme qui détermine si un nombre entier n est parfait ou
non. Utiliser l'instruction While.
Exercice 3 :
Un nombre entier x est un carré parfait s’il existe un entier y tel que y*y = x. Ecrire un programme
C qui détermine si un nombre entier est un carré parfait ou non. Utiliser l'instruction While.

TP 06 : Traitement répétitif -3- : (do {Action} While(cond) )

Exercice 1 :
Ecrire un programme C qui étant un nombre entier, vérifié s'il est premier ou non. [Un nombre
entier est dit premier s'il n'est divisible que par lui-même et par 1.]
Utiliser l'instruction do…while.
Exercice 2 :
8
Ecrire un programme C qui lit N nombres entiers, tel que le dernier est égal à 0. Ce programme doit
calculer puis affiché :
Le nombre total des entiers qui ont été lus.
La somme de ces nombres entiers.
La plus grande valeur lue.
Le nombre de valeur multiple de 3.
Utiliser l'instruction do…While.

Exercice 3 :
Ecrire un programme qui permet de calculer sin(x) à l’aide de la série entière suivante :

Exercice 4 :
Ecrire un programme C qui permet d’évaluer la série Sn suivante pour n donné :

Série de TD N°2.1 : Tableaux une dimension (Vecteurs)


Exercice 1 :
Réaliser un algorithme en suivant les étapes suivantes :
1. Ecrire un algorithme qui lit un tableau de 9 notes puis calcule et affiche leur moyenne.

9
2. Modifier l’algorithme afin de saisir un tableau tabCoef contenant les coefficients respectifs des 9
modules. Ensuite donner la nouvelle moyenne en tenant compte de ces coefficients.

Exercice 2 :
Soit une liste de N nombres entiers contenus dans un tableau. Ecrire l'algorithme qui détermine le
plus petit parmi ces nombres et la moyenne.

Exercice 3 :
Ecrire un algorithme qui permet d’inverser les éléments d’un tableau.

Exercice 4 :
On se propose de vérifier si une valeur VAL donnée est un élément d'un tableau T de nombres
entiers.
Écrire un algorithme de recherche séquentielle de VAL dans T (Afficher l’index de VAL dans T).
Supposons que le tableau initial T soit trié par ordre croissant. Utiliserez une approche
dichotomique pour la recherche de VAL dans T (Comparez les deux algorithmes !!!!)

Exercice 5 :
Soit VECT un tableau d'entiers.
1. Ecrire un algorithme qui insère, dans ce tableau une valeur VAL à la kième position V2, triés dans
l'ordre croissant :
2. Ecrire un algorithme qui fusionne ces deux vecteurs en un vecteur V3 trié dans le même ordre.
3. Modifier l’algorithme afin de supprimer les doublons éventuels.

Série de TD N°2.2 : Tableau deux dimensions (Matrices)


Exercice 1
Ecrire un Algorithme et programme C qui génère la Matrice Identité I (N x N)

Exercice 2
Donnez l’algorithme qui calcul le produit de deux Matrices C = A x B

Exercice 3
Ecrire un algorithme qui calcul et affiche la somme de deux matrices A et B.

10
Exercice 4
Ecrire un algorithme qui calcul la somme des éléments de la première et la deuxième diagonale
d’une matrice carrée A.
Exercices Supplémentaires (A traiter en séances de TD)

Exercice 1 : (Examen 2013 - 2014 spécial)


On considère un tableau d'entiers Vect de taille n.
Une tranche d'un tableau est une séquence d’éléments consécutifs de celui-ci. Une tranche d'ordre k
est une séquence contenant entre 1 et k éléments. La valeur d'une tranche est la somme de ses
éléments.
Écrire un algorithme qui détermine la tranche d'ordre trois de ce tableau ayant la plus petite valeur.
NB : Une tranche d'ordre 3 est une séquence d’éléments consécutifs ayant au plus 3 éléments.
Exemple :
Soit Vect = (-20,8,-11,10,-9,-15,8,13,-7,4) un tableau de 10 entiers.
La tranche (-9,-15) est celle ayant la plus petite valeur ((-9)+(-15)=-24) parmi les tranches d'ordre 3.
La tranche (-20,8,-11) est une tranche d'ordre 3. Sa valeur est (-20+8-11=-23) > -24

Exercice 2: (Examen 2018 - 2019)


Ecrire un algorithme qui, étant donne une matrice A (50 lignes et 50 colonnes au maximum et est
non nécessairement carrée) d'entiers quelconques et une position (k,l) de cette matrice , supprime
tous les éléments de la diagonale passant par (k,l). Les éléments de mat supprimes laisseront leurs
places à leurs suivants (parcours ligne par ligne) et les places vides en fin de mat générées par le
décalage des éléments sont remplacés par des zéros. Enfin, l'algorithme (ou programme) demande
doit conserver l'ordre des éléments restants et ne doit pas utiliser une matrice supplémentaire.
Exemple : Pour la matrice A qui suit et la position (k,l)=(2,3)

Remarque : Un bonus sera donné a toute réponse qui n'utilise ni tableau ni matrice supplémentaires.
Indications : dans l'exemple précèdent :
• les éléments (3, 10, 12) ne forment pas une diagonale mais une anti-diagonale.
• Le résultat doit être le même si (k,l) =(1,2) ou (k,l) =(3,4).

11
• les éléments (8, 1, 9) forment une diagonale (c'est la principale) mais qui ne passe pas par
(k,l)=(2,3).
• L'élément 3 (coin supérieur droit) est a lui seul une diagonale (qui évidemment ne passe pas par
(2,3))

CORRECTION

12
Affectation et affichage
Exercice 1
Algorithme Equation
a : réel
b : réel
Début
Lire (clavier, a, b)
Ecrire (écran, a, ‘x+’, b,’=0’)
Si a‡0 Alors
Ecrire (écran, ‘x=’, -b/a)
Sinon
Ecrire (écran, ‘Pas de solution’)
FinSi
FinAlgorithme

Exercice 2
Algorithme_SurfaceDuCercle
13
R1 : réel
R2 : réel
S1 : réel
S2 : réel
Début
Ecrire (écran, ‘Entrez le rayon R1 du cercle 1’)
Lire (clavier, R1)
S1 ← 3,14*R1*R1
Ecrire (écran, ‘La surface du cercle 1 est’, S1)
Ecrire (écran, ‘Entrez le rayon R2 du cercle 2’)
Lire (clavier, R2)
Ecrire (écran, ‘La surface du cercle 2 est’, S2)
S1 ← 3,14*R2*R2
Ecrire (écran, ‘La différence entre les deux surfaces est’, S1 – S2)

Traitement Conditionnel
Exercice 2
Algorithme_Multiple
x, y : entiers
Début
Ecrire (écran, ‘Entrez les valeurs de x et y’)
Lire (clavier, x, y)
Si x MOD y =0 Alors
Ecrire (écran, ‘y est multiple de x’)
Sinon
Si y MOD x = 0 Alors
Ecrire (écran, ‘x est multiple de y’)
Sinon
Ecrire (écran, ‘Aucun des deux entiers n’est multiple de l’autre’)
FinSi
FinSi
FinAlgorithme

Exercice 3
Algorithme_OrdreCroissant
x, y, z : réels
Début
Ecrire (écran, ‘Entrez les valeurs de x, y et z’)

14
Lire (clavier, x, y, z)
Si x≤y ET y≤z Alors
Ecrire (écran, ‘x, y, z’)
FinSi
Si x≤z ET z≤y Alors
Ecrire (écran, ‘x, z, y’)
FinSi
Si y≤x ET x≤z Alors
Ecrire (écran, ‘y, x, z’)
FinSi
Si y≤z ET z≤x Alors
Ecrire (écran, ‘y, z, x’)
FinSi
Si z≤x ET x≤y Alors
Ecrire (écran, ‘z, x, y’)
FinSi
Si z≤y ET y≤x Alors
Ecrire (écran, ‘z, y, x’)
FinSi
FinAlgorithme

Exercice 4
Algorithme_chiffre_en_lettre
Val : entier
Début
𝑉𝑎𝑙 ← −1
TantQue (𝑉𝑎𝑙 ≤ 0)
Ecrire (écran, ‘Entrez une valeur entière positive’)
Lire (clavier, Val)
FinTantQue
Suivant Val Faire
1 : Ecrire (écran, ‘un’)
2 : Ecrire (écran, ‘deux’)
3 : Ecrire (écran, ‘trois’)
4 : Ecrire (écran, ‘quatre’)

15
5 : Ecrire (écran, ‘cinq’)
6 : Ecrire (écran, ‘six’)
7 : Ecrire (écran, ‘sept)
8 : Ecrire (écran, ‘huit)
9 : Ecrire (écran, ‘neuf)
10 : Ecrire (écran, ‘dix)
Autrement : Ecrire (écran, ‘Autre valeur’)
FinAlgorithme

Traitement répétitif
Exercice 6
Algorithme_SuiteDeFibonacci
U0, U1, i, N, Somme: entiers
Début
Ecrire (écran, ‘Entrez la valeur de N’)
Lire (clavier, N)
𝑈0 ← 0
𝑈1 ← 1
Si ( 𝑁 > 0) Alors
Ecrire (écran, ‘Les’, N, ‘premiers termes de la suite de Fibonacci sont :’)
Si ( 𝑁 = 1) Alors
Ecrire (écran, ‘\n’, U0)
FinSi
Si ( 𝑁 = 2) Alors
Ecrire (écran, ‘\n’, U0, ‘\n’, U1)
FinSi
Si (𝑁 > 2) Alors
Pour i de 1 à N-2 par pas de 1 Faire
𝑆𝑜𝑚𝑚𝑒 ← 𝑈0 + 𝑈1
Ecrire (écran, ‘\n’, Somme)
𝑈0 ← 𝑈1
𝑈1 ← 𝑆𝑜𝑚𝑚𝑒
FinPour

16
FinSi
FinPour
FinAlgorithme

Exercice 7
Algorithme_CarreEtoiles
T, i, j : entiers
Début
Ecrire (écran, ‘Entrez le nombre de lignes’)
Lire (clavier, T)
Pour i de 1 à T par pas de 1 Faire
Pour j de 1 à T par pas de 1 Faire
Ecrire (écran, ‘*’)
FinPour
Ecrire (écran, ‘\n’)
FinPour
FinAlgorithme

Exercice 8
Algorithme_RectangleEtoiles
L, C, i, j : entiers
Début
Ecrire (écran, ‘Entrez le nombre de lignes et de colonnes’)
Lire (clavier, L, C)
Pour i de 1 à L par pas de 1 Faire
Pour j de 1 à C par pas de 1 Faire
Ecrire (écran, ‘*’)
FinPour
Ecrire (écran, ‘\n’)
FinPour
FinAlgorithme

Tableaux
Exercice 9

17
Algorithme_produitScalaire
U : Tableau (1…2) de type entier
V : Tableau (1…2) de type entier
Ps, i : Entier
Début
Pour i de 1 à 2 par pas de 1 Faire
Ecrire (écran, ‘Entrez les coordonnées du vecteur U’)
Lire (clavier, U(i))
FinPour
Pour i de 1 à 2 par pas de 1 Faire
Ecrire (écran, ‘Entrez les coordonnées du vecteur V’)
Lire (clavier, V(i))
FinPour
𝑃𝑠 ← 𝑈(1) ∗ 𝑉 (1) + 𝑈 (2) ∗ 𝑉(2)
Ecrire (écran, ‘Le produit scalaire est %d’, Ps)
FinAlgorithme

Exercice 10
Algorithme_tableauxEgaux
Tab1 : Tableau (1…100) de type entier
Tab2 : Tableau (1…100) de type entier
Ps, i : Entier
Bool : Booléen
Début
Ecrire (écran, ‘Remplissage du premier tableau\n’)
Pour i de 1 à 100 par pas de 1 Faire
Ecrire (écran, ‘Entrez un entier’)
Lire (clavier, Tab1(i))
Ecrire (écran, ‘\n)
FinPour
Ecrire (écran, ‘Remplissage du deuxième tableau\n’)
Pour i de 1 à 100 par pas de 1 Faire
Ecrire (écran, ‘Entrez un entier’)
Lire (clavier, Tab2(i))
Ecrire (écran, ‘\n)
FinPour
Bool ← VRAI
Pour i de 1 à 100 par pas de 1 Faire
Si (Tab1(i) ≠ Tab2(i))
Bool ← FAUX
FinSi
FinPour
Si (Bool = VRAI)
Ecrire (écran, ‘VRAI’)
Sinon

18
Ecrire (écran, ‘FAUX’)
FinSi
FinAlgorithme

Exercice 11
Algorithme_occurrence_dans_un_tableau
Tab : Tableau (1…20) de type entier
Val, i, temp : Entier
Début
Pour i de 1 à 20 par pas de 1 Faire
Ecrire (écran, ‘Entrez un entier’)
Lire (clavier, Tab(i))
FinPour
Ecrire (écran, ‘Entrez l’entier dont on doit cherchez le nombre d’occurrences’)
Lire (clavier, Val)
𝑡𝑒𝑚𝑝 ← 0
Pour i de 1 à 20 par pas de 1 Faire
Si (Tab(i)=Val)
𝑡𝑒𝑚𝑝 = 𝑡𝑒𝑚𝑝 + 1
FinSi
FinPour
Ecrire (écran, ‘Le nombre d’occurrences de %d est %d’, Val, temp)
FinAlgorithme

PROGRAMMATION

TP1 : Affectation et affichage (scanf () et printf ())


Exercice 1
#include <stdio.h>
int main(){
float Val, Conversion;
printf ("Conversion d’Angle (degrés en radians)\n");
printf("Entrez La Valeur (en degrés) à convertir:\n");
scanf("%f", &Val);
Conversion=Val*0,0174 ;

19
printf("\n \n%f ° est égal à %f rad") ;
return 0 ;
}

Exercice 2
#include <stdio.h>
int main(){
float R, S, C;
printf ("Calcul de Surface et de circonférence\n");
printf("Entrez Le Rayon du Cercle:\n");
scanf("%f", &R);
C=2*3,14*R;
S=3,14*R*R;
printf("\n \nLa Surface d’un cercle de rayon R=%f est égal à %f. Sa circonférence vaut :%f",
R, S, C);
return 0;
}

Exercice 3
#include <stdio.h>
int main(){
int s, mn, h;
printf ("Conversion du temps en h, mn et s\n");
printf("Entrez Le nombre de secondes: ");
scanf("%d", &s);
printf("%d secondes vaut:");
h=s/3600;
mn=(s%3600)/60;
s=(s%3600)%60;
printf("%d heure(s) %d minute(s) et %d seconde(s)", h, mn, s);
return 0;
}

20
TP2 : Traitement Conditionnel : (if…else)
Exercice 1
#include <stdio.h>
int main(){
int Val;
printf ("Négatif ou Positif\n\n");
printf("Entrez Le nombre relatif: ");
scanf ("%d", &Val);
if (Val>=0)
{
printf ("%d est positif\n\n", Val);
}
else
{
printf ("%d est négatif\n\n", Val);
}
printf ("Merci d’avoir utiliser notre programme !");
return 0;
}

Exercice 2
#include <stdio.h>
int main(){
int A, B, C;
printf ("Qui est la Somme des deux autres");
printf("Entrez A, B et C.\n");
printf("A=");
scanf ("%d", &A);
printf("B=");
scanf ("%d", &B);
printf("C=");
scanf ("%d", &C);
if (A==B+C)
{
printf ("%d est la somme de %d et %d\n\n", A, B, C);

21
}
if (B==A+C)
{
printf ("%d est la somme de %d et %d\n\n", B, A, C);
}
if (C==A+B)
{
printf ("%d est la somme de %d et %d\n\n", C, A, B);
}
else
{
printf ("Aucun des nombres entrés n’est la somme des deux autres\n\n");
}
printf ("Merci d’avoir utiliser notre programme !");
return 0;
}

Exercice 3
#include <stdio.h>
#include <math.h>
int main(){
int A, B, C, delta;
printf ("Résolution d’équation du second degré du type Ax2 + Bx + C = 0\n\n");
printf("Entrez A, B et C :");
scanf ("%d %d %d", &A, &B, &C);
printf("L’équation à résoudre est: %dx2 + %dx + %d = 0", A, B, C);
delta = B*B– 4*A*C;
if (delta==0)
{
printf ("La solution est x = %d ", (-B/2A));
}
if (delta>0)
{
printf ("La solution est x = %d ", (-B-sqrt(delta))/2*A);
}

22
else
{
printf ("%d est négatif\n\n", Val);
}
printf ("Merci d’avoir utiliser notre programme !");
return 0;
}

Exercice 4
#include <stdio.h>
int main(){
int A, B, C;
printf ("Trie par ordre croissant \n\n");
printf("Entrez A, B et C.\n");
printf("A=");
scanf ("%d", &A);
printf("B=");
scanf ("%d", &B);
printf("C=");
scanf ("%d", &C);
if (A<=B && B<=C)
{
printf ("%d ≤ %d ≤ %d\n\n", A, B, C);
}
if (A<=C && C<=B)
{
printf ("%d ≤ %d ≤ %d\n\n", A, C, B);
}
if (B<=A && A<=C)
{
printf ("%d ≤ %d ≤ %d\n\n", B, A, C);
}
if (B<=C && C<=A)
{
printf ("%d ≤ %d ≤ %d\n\n", B, C, A);

23
}
if (C<=A && A<=B)
{
printf ("%d ≤ %d ≤ %d\n\n", C, A, B);
}
if (C<=B && B<=A)
{
printf ("%d ≤ %d ≤ %d\n\n", C, B, A);
}
printf ("Merci d’avoir utiliser notre programme !");
return 0;
}

TP3 : Traitement de sélection : (Switch … Case …)


Exercice 1
#include <stdio.h>
int main(){
int A, B;
char operation;
printf ("Chaîne de caractères et Calcul\n\n");
printf ("Entrez A et B : \n");
printf ("A= ");
scanf ("%d", &A);
printf ("B= ");
scanf ("%d", &B);
printf ("Entrez L’Opération à effectuer : ");
scanf ("%s", &operation );
switch (operation)
{
case '+' : printf ("(%d) + (%d) = %d \n", A, B, A+B);
break;
case '-' : printf ("(%d) - (%d) =%d \n ", A, B, A-B);
break;
case '*' : printf ("(%d) * (%d) = %d \n", A, B, A*B);
break;
24
case '/' : printf ("(%d) / (%d) = %d \n", A, B, A/B);
break;
default: printf ("Opérateur incorrecte \n\n");
}
printf ("Merci d’avoir utiliser notre programme !");
return 0;
}

Exercice 2
#include <stdio.h>
int main()
{
int age;
printf ("Catégorie selon l’âge\n\n");
printf ("Donnez l’âge: \n");
scanf ("%d", &age);
switch (age)
{
case 6 ... 7: printf ("Poussin\n");
break;
case 8 ... 9: printf ("Pupille \n ");
break;
case 10 ... 11: printf ("Minime\n");
break;
case 12 ... 15: printf ("Cadet \n");
break;
default : printf ("Catégorie incorrecte \n\n");
}
printf ("Merci d’avoir utiliser notre programme !");
return 0;
}

TP 4 : Traitement répétitif -1- ; (For (...) {Action})


Exercice 1
25
#include <stdio.h>
int main()
{
int i, N, S=0 ;
printf ("Somme des N premiers entiers\n\n") ;
printf ("Donner La Valeur de N : ") ;
scanf ("%d", &N) ;
for (i=0; i<N; i++)
{
S+=i;
}
printf ("La somme des %d premiers termes est %d.\n\n", N, S);
return 0;
}

Examens

EXAMEN : INITIATION A L’ALGORITHMIQUE


Durée : 1H50 2014-2015
EXERCICE 01 : (4 PTS)
Ecrire un Algorithme qui permet de lire la valeur de la température de l’eau en Fahrenheit,
Convertir cette température vers son équivalent en Celsius (Utiliser la formule TF=32+1.8*TC),
puis afficher la température de l’eau en Celsius, et son état:
Glace : si la température est inférieure à 0 ;
Liquide : si la température est strictement supérieure à 0 et inférieure à 100 ;
Vapeur : si la température est supérieure à 100 ;

EXERCICE 02 : (5 PTS)
Un entier naturel de trois chiffres est dit cubique s'il est égal à la somme des cubes de ses chiffres,
Exemple : 153 est cubique car 153 = 13+ 53+ 33.
Ecrire un Programme C qui permet de vérifier si un nombre x entré au clavier est cubique

EXERCICE 03 : (5 PTS)
26
Ecrire un Algorithme qui affiche les termes ≤1000 de la suite numérique définie comme suit :

EXERCICE 04 : (3 PTS)
Ecrire un Programme C qui permet de lire un nombre impair n, et qui calcule et affiche les
sommes S et M suivantes :

EXERCICE 05: (3 PTS)


Ecrire un Algorithme qui permet de saisir un entier positif et une base inférieure ou égale à 10 et de
vérifier si ce nombre appartient à la base ou non.

CORRECTION EXAMEN 2014-2015


Exercice 01
Algorithme_TroisEtats
TC, TF : entiers
Début
Ecrire (écran, ‘Entrez la température de l’eau en Fahrenheit’)
Lire (clavier, TF)
Si (𝑇𝐶 ≤ 0)
Ecrire (écran, ‘Glace’)
FinSi
Si (𝑇𝐶 > 0 𝐸𝑇 𝑇𝐶 ≤ 100)
Ecrire (écran, ‘Liquide’)
FinSi
Si (𝑇𝐶 > 100)
Ecrire (écran, ‘Vapeur’)
FinSi
FinAlgorithme

Exercice 03

27
Algorithme_SuiteNum
U0, U1 : entiers
Bool : Booléen
Début
𝑈0 ← 2
𝐵𝑜𝑜𝑙 ← 𝑉𝑅𝐴𝐼
Ecrire (écran, ‘Les termes ≤ 1000 sont’, U0)
𝑈1 ← 2𝑈0
TantQue (𝑈1 ≤ 1000) Faire
Si (𝐵𝑜𝑜𝑙 = 𝑉𝑅𝐴𝐼)
𝑈1 ← 2𝑈0
𝑈0 ← 𝑈1
Ecrire (écran, ‘’, U1)
𝐵𝑜𝑜𝑙 ← 𝐹𝐴𝑈𝑋
Sinon
𝑈1 ← 3𝑈0
𝑈0 ← 𝑈1
Ecrire (écran, ‘’, U1)
𝐵𝑜𝑜𝑙 ← 𝑉𝑅𝐴𝐼
FinSi
FinTantQue
FinAlgorithme

28

Vous aimerez peut-être aussi