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


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:
 
nadjet

nadjet

عضو نشيط
رقم العضوية :
728
البلد/ المدينة :
زريبة الوادى
العَمَــــــــــلْ :
طالبة علم
المُسَــاهَمَـاتْ :
988
نقاط التميز :
855
التَـــسْجِيلْ :
11/07/2010
السلام عليكم ورحمة الله وبركاته
تمارين محلولة في الباسكال 125175
بـــارك الله فيك أخي الفاضل محمد
مع أن الموضوع يحتاج القليل من الترتيب
كموضع القوس والفاصلة المنقوطة تكون في آخر كل سطر
مجهود قيـــم ما شاء الله

لك مني فائق الاحترام والتقدير
 

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

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