منتدى وادي العرب الجزائري
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


zozo mohamed

zozo mohamed

عضو مساهم
البلد/ المدينة :
annaba
العَمَــــــــــلْ :
طالب جامعي
المُسَــاهَمَـاتْ :
77
نقاط التميز :
183
التَـــسْجِيلْ :
10/03/2011
Travaux pratiques 2 : L'instruction IF
Exercice 1 : Executer le programme suivant :
PROGRAM calcul ;
uses wincrt;
VAR a,b : real ;
BEGIN
write('Donne a et b:'); readln(a,b);
writeln('a-b=',a-b);
writeln('a*b=',a*b);
IF (b<>0) THEN writeln('a/b=',a/b)
ELSE writeln('On ne peut pas diviser par 0');
END.
Exercice 2 :Ecrire un programme, qui demande 3 reèls a; b et c a l'utilisateur, puis qui ache le nombre de solutions
de l'equation ax2 + bx + c = 0, si a 6= 0 et qui ache un message d'erreur sinon.
Exercice 3 : Deviner l'achage du programme suivant avant de l'executer :
PROGRAM variables;
uses wincrt ;
VAR a:real;
BEGIN
write('entrer une valeur de a'); readln(a);
IF a>3 THEN BEGIN
a:=2*(a+3);
a:=SQRT(a)-1;
END;
writeln(a);
END. Comment aurait-on pu gagner une ligne de code ?
Exercice 4
Ecrire le programme qui resout une equation du premier degre : ax+b = 0, ou a; b sont des reels donnes par l'utilisateur.
Exercice 5
Ecrire le programme correspondant a la resolution d'une equation du second degre : ax2 +bx+c = 0 ou a; b; c sont des
reels donnes par l'utilisateur.
Bien comprendre comment utiliser plusieurs IF embo^tes ; un IF ne sera alors execute que si le precedent le permet.
Correction : Penser a aerer et indenter votre programme, a n qu'il soit plus lisible !
PROGRAM Equation2 ;
VAR a,b,c,delta : REAL ;
BEGIN
writeln('On veut resoudre a*sqr(x)+b*x+c=0');
write('Donner a,b et c :');
readln(a,b,c);
IF (a=0) THEN
IF (b=0) THEN
IF (c=0) THEN writeln('Tout nombre est solution')
ELSE writeln('Aucune solution')
ELSE writeln('La solution est ', -c/b)
ELSE BEGIN delta:=SQR(b)-4*a*c;
IF (delta=0) THEN writeln('La solution double est : ',-b/(2*a))
ELSE IF (delta>0) THEN f > 0g
writeln('Les deux solutions reelles sont :');
(-b-SQRT(delta))/(2*a), ' et ',(-b+SQRT(delta))/(2*a))
ELSE writeln('La resolution est hors-programme');
END;
END.
Complement sur l'afichage des reels avec l'instruction WRITE :
soit x une variable de type reel et n,m deux entiers naturels ; WRITE(x :n :m) permet d'ecrire x justi e a droite dans
un champ d'au moins n caracteres avec m decimales (i.e. de chi res apres la virgule).
ex : x :=1.23456789 ; write(x :8 :2) donne ......1.23 ; write(x :2 :4) donne 1.2345.
CORRECTION TP 2
Exercice 2 :
PROGRAM racines;
VAR a,b,c,delta:REAL;
BEGIN write('Entrer les coefficients de l equation a b et c'); readln(a,b,c);
if a=0 then write('erreur')
else begin
delta:= b*b-4a*c;
IF delta >0 THEN write('il y a deux solutions');
IF delta = 0 THEN write('il y a une unique solution');
If delta<0 THEN write('il n y a aucune solution reelle');
end;
END.
Une meilleure solution (car moins de tests inutiles) consiste a embo^ter les IF :
IF delta>0 THEN write('il y a deux solutions')
ELSE IF delta=0 THEN write('il y a une unique solution')
ELSE write('il n y a aucune solution reelle');
Exercice 3 :
a:=SQRT(2*(a+3))-1:
 
تقييم المساهمة: 50% (2)
إقتباسرد
اللورد ايمن

اللورد ايمن

طاقم الكتاب الحصريين
رقم العضوية :
16200
البلد/ المدينة :
منتدى وادي العرب
العَمَــــــــــلْ :
2 AS
المُسَــاهَمَـاتْ :
1517
نقاط التميز :
2170
التَـــسْجِيلْ :
02/05/2011
شكرا جزيلا
جعله الله في ميزان حسناتك
 

privacy_tip صلاحيات هذا المنتدى:

لاتستطيع الرد على المواضيع في هذا المنتدى