PDA

Visualizza la versione completa : cercasi betatester. per..... PROGRAMMA IN PASCAL


ascatem
12-02-2004, 21:42
non uno scherzo..... devo consegniarlo dopo domani al prof di info.... un programma che risolve equazioni di secondo grado...

ditemi se per qualche valore non va o se si pu migliorare




Program equaazioni;
uses crt;
var a,b,c,x1,x2:real;
r:char;
begin
clrscr;
Repeat
writeln(' inserire se si vuole risolvere una equazione di secondo grado ');
writeln(' Pura (ax^2 + c ), Spuria (ax^2 + bx), Monomia (ax^2) o a ');
writeln(' Coefficienti maggiori di zero (ax^2 bx c). Il programma risolvere l''equazione ');
writeln(' inserire "P" per pura, "S" per spuria, "M" per monomia e "C" ');
writeln(' per equazioni con tutti e tre i coefficienti maggiori di zero ');
writeln(' scrivere minuscolo ');
readln(r);
until (r='p') or (r='s') or (r='m') or (r='c');
repeat
writeln(' inserire il valore di a ');
readln(a);
until a<>0;
if r='p'
then
begin
writeln(' inserire il valore di c ');
readln(c);
if -(c/a)<0
then writeln(' equazione pura impossibile ')
else
begin
x1:= sqrt(-(c/a));
x2:= -(sqrt(-(c/a)));
writeln(' x1=',x1:0:2,' e x2=',x2:0:2,' ');
end;
end
else
if r='s'
then
begin
writeln(' inserire il valore di b');
readln(b);
x2:=-(b/a);
writeln(' x1=0 e x2=',x2:0:2,' ');
end
else
if r='m'
then
writeln(' x1=0 e x2=0 ')
else
if r='c'
then
begin
writeln(' inserire il valore di b e c ');
readln(b,c);
if sqr(b)-(4*a*c)<0
then writeln(' equazione impossibile ')
else
if sqr(b)-(4*a*c)=0
then
begin
x1:=-b/(2*a);
writeln(' x1=',x1:0:2,' ');
end
else
begin
x1:=(-b - sqrt( sqr(b) + 4*a*c))/(2*a);
x2:=(-b + sqrt( sqr(b) + 4*a*c))/(2*a);
writeln(' x1=',x1:0:2,' e x2=',x2:0:2,' ');
end;
end;
readln;
end.

LeleFT
12-02-2004, 21:54
Non l'ho guardato e provato tutto ma ho gi trovato un errore di segno! :D

Fai attenzione... la formula di risoluzione di un equazione di 2 grado completa la seguente:


x1:=(-b - sqrt( sqr(b) - 4*a*c))/(2*a);
x2:=(-b + sqrt( sqr(b) - 4*a*c))/(2*a);


Tu hai erroneamente messo un + al posto del - nel calcolo del discriminante!!


Ciao. :ciauz:

ascatem
13-02-2004, 16:53
Originariamente inviato da LeleFT
Non l'ho guardato e provato tutto ma ho gi trovato un errore di segno! :D

Fai attenzione... la formula di risoluzione di un equazione di 2 grado completa la seguente:


x1:=(-b - sqrt( sqr(b) - 4*a*c))/(2*a);
x2:=(-b + sqrt( sqr(b) - 4*a*c))/(2*a);


Tu hai erroneamente messo un + al posto del - nel calcolo del discriminante!!


Ciao. :ciauz:

??

non ti seguo.....

cio, la formula : (-b +o- delta)/2a
pio, il fatto del pi o meno viene diviso nelle due soluzioni: x1 quella col pi e x2 quella col meno(o viceversa).

.... :bh:

iguana13
13-02-2004, 17:19
Mi intrometto :D

Prima soluzione:


x1 = (-b + sqr(b^2 - 4*a*c)) / 2a

Seconda soluzione:


x2 = (-b - sqr(b^2 - 4*a*c)) / 2a


:ciauz:

Loading