Mi a hiba a programban?
Kezdőként próbáltam írni egy kódot a másodfokú egyenletre(tudom,ez még csak a fele a megoldásoknak) Pascalban,de nem akarja a végén osztani 2 a-val.A válaszokért előre is köszi.A programkód:
Program megoldokeplet;
var a,b,c:integer;
Begin
writeln('masodfoku megoldokeplet') ;
readln (a);
readln (b);
readln (c);
writeln((-b+sqrt(b*b-4*a*c))/(2*a));
readln;
end.
program megoldokeplet;
var a,b,c: Integer;
var D: Double;
begin
Writeln('Masodfoku megoldokeplet');
Writeln('a*x*x + b*x + c = 0');
Write('a = '); Readln(a);
Write('b = '); Readln(b);
Write('c = '); Readln(c);
Writeln(a,'*x*x + (',b,')*x + (',c,') = 0');
if (a <> 0) then {Osztásnál az osztó nem lehet nulla.}
begin
D := b*b - 4*a*c; {diszkrimináns}
if (D >= 0) then {Gyökvonálsnál az operandus nem lehet negatív.}
begin
Writeln('x = ',((-b + Sqrt(D))/(2*a)):0:6);
Writeln('x = ',((-b - Sqrt(D))/(2*a)):0:6);
end
else
Writeln('Nincs megoldasa.');
end
else
begin
if (b <> 0) then {Osztásnál az osztó nem lehet nulla.}
Writeln('x = ',(-c/b):0:6)
else
begin
if (c = 0) then
Writeln('x = 0')
else
Writeln(c,' nem egyenlo 0-val.');
end ;
end ;
Readln;
end.
Mit használsz? Lazarus? FreePascal?
Próbáld ki különféle paraméterekkel, hátha rájössz, hogy mi az adott fordítóprogram speciális problémája!
#3:
Nem kételkedem a becsszavadban, de én nem tudom reprodukálni a problémát, így a megoldására sem tudok tippeket keresni. Maga a jelenség bizonyára megszüntethető azzal, ha X-et nem közvetlenül a művelet eredményeként íratod ki, hanem mondjuk beolvasod -b + sqrt(b*b - 4*a*c) értékét egy alkalmas (pl. double) változóba, és utólag osztod, valahogy így:
var x : double;
...
x := -b + sqrt(b*b - 4*a*c);
x := x / 2;
WriteLn(x);
...aminek legalább annyi haszna lenne, hogy az osztást elkülönítve vizsgálhatod. Ettől függetlenül nem látom, hogy az eredeti próbálkozásodba hogyan csúszhat be ez a hiba.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!