Vous êtes sur la page 1sur 3

Corrigé TP Turbo Pascal

Exos pour le 7/10/09


Exercice 1
Ecrire un programme ordonne qui demande trois valeurs entières à l'utilisateur, affecte la plus
grande valeur à une variable grand, la valeur intermédiaire à une variable moyen et la plus petite
des trois à une variable petit, puis affiche les valeurs de grand, moyen et petit.
Voici une solution possible. Il y a en a d'autres, et bien plus élégantes, mais qu'on verra lorsqu'on
aura plus avancé...

PROGRAMME ordonne;
VAR i,j,k,grand, petit, moyen: INTEGER;
BEGIN
WRITE('Entrez trois entiers :');
READLN(i,j,k);
IF (i <= j) THEN
BEGIN
IF (j <= k) THEN
BEGIN
petit:=i; moyen:=j; grand: = k;
END
ELSE
BEGIN
IF (k <= i) THEN
BEGIN
petit:=k ; moyen:=i; grand: = j;
END
ELSE
BEGIN
petit:=i ; moyen:=k; grand: = j;
END;
END;
END
ELSE
BEGIN
IF (i<= k) THEN
BEGIN
petit:=j; moyen:=i; grand: = k;
END
ELSE
BEGIN
IF (k <= j) THEN
BEGIN
petit:=k ; moyen:=j; grand: = i;
END
ELSE
BEGIN
petit:=j ; moyen:=k; grand: = i;
END;
END;
END;
WRITELN('Les trois entiers sont, par ordre décroissant: ', grand, ' ,' ,moyen, ' et ', petit);
END.
Exercice 2
Ecrire un programme qui extrait la racine d'une équation du premier degré ax+b = 0.

PROGAMME racine_premier_degre;

VAR a,b: REAL;

BEGIN
WRITE('Entrez les coefficients a et b de l\'équation ax+b =0');
READLN(a,b);
IF (a = 0) THEN
BEGIN
IF (b=0) THEN
WRITELN('Une infinité de solutions')
ELSE
WRITELN('Pas de solution');
END;
END
ELSE
WRITELN('La solution est : ', -b/a);
END.
Exercice 3
Ecrire un programme qui extrait la racine d'une équation du deuxième degré ax²+b x+c= 0.

PROGAMME racine_deuxieme_degre;

VAR a,b,c,delta,r1,r2: REAL;

BEGIN
WRITE('Entrez les coefficients a et b et c de ax*x+b x+c =0');
READLN(a,b,c);
IF (a = 0) THEN
BEGIN
IF (b=0) THEN
BEGIN
IF (c=0) THEN
WRITELN('Une infinité de solutions')
ELSE
WRITELN('Pas de solution');
END
ELSE
WRITELN('La solution est : ', -c/b);
END
ELSE
BEGIN
delta = b*b – 4*a*c;
IF delta <0 THEN
WRITELN('Pas de solution)
ELSE
BEGIN
IF delta = 0 THEN
WRITELN('Solution : -b/(2*a)')
ELSE
BEGIN
r1:= (-b+SQRT(delta))/(2*a);
r2:= (-b-SQRT(delta))/(2*a);
WRITELN('Les deux solutions sont : ',r1, ' et ', r2);
END;
END;

END;
END.

Vous aimerez peut-être aussi