Second degré avec pascal 1.5

Fermé
CHAMSFC Messages postés 7 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 19 mars 2009 - 19 févr. 2009 à 20:34
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 24 févr. 2009 à 16:21
Bonjour,
program fhhghghghgk;
uses
wincrt;
var
a:real;
b:real;
c:real ;
x1:real;
x2:real;
deltat:real;
begin
deltat:= sqr(b)-(4*a*c);
if deltat>0 then
begin
x1:= -b-sqrt(deltat)/(2*a);
x2:= -b+sqrt(deltat)/(2*a);
write(' la solution admet deux racines distincts',x1,x2);
end
else if deltat=0 then
begin
x1:=-b/(2*a);
write('la solution est double',x1);
end
else
write('pas de solutions' );
end.





JEU VEUX SAVOIRE OUé LE PROBLEME AVEC MON PROG CAR QUAND JE FAIRE EXUCUTER IL S'AFFICHE UNE FENETRE AVEC SE MESSAGE (Runtime error 200 at 0001:01d9.)



merci d'avance jé un devoire ce samedi svp aaide moi mici
A voir également:

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
24 févr. 2009 à 16:21
Le problème est que tu n'initialise pas tes variables !
En effet tu effectues ton calcul de delta alors que a, b et c n'ont pas de valeurs !
program second_degre;

var a,b,c,delta,x0,x1,x2:real;
begin
writeln('a.x^2+b.x+c=0');
write('  a = '); readln(a);
write('  b = '); readln(b);
write('  c = '); readln(c);
delta:= sqr(b)-(4*a*c);

if delta>0 then
   begin
   x1:= (-b-sqrt(delta))/(2*a);
   x2:= (-b+sqrt(delta))/(2*a);
   writeln('L''equation admet deux solutions reelles distinctes : ');
   writeln('x1 = ',x1); writeln('x2 = ',x2);
   end;
if delta=0 then
   begin
   x0:=-b/(2*a);
   writeln('L''equation admet une solution double : ');
   writeln('x0 = ',x0);
   end;
if delta<0 then
   writeln('L''equation n''admet pas de solution reelle');

writeln; writeln('Fin du programme. Appuyer sur Entree pour terminer'); readln;
end. 
0