Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravím, začínám s programováním(teď dělám cykly)v pascalu a mám jeden menší problém. Sice jsem to nakonec vyřešil tím, že jsem to napsal trochu jinak, ale nemůžu přijít na to, co mám tady špatně :)
program kvadratickarovnice;
var a,b,c,D:real;
begin
write('Zadejte koeficient a: ');
readln(a);
write('Zadejte koeficient b: ');
readln(b);
write('Zadejte koeficient c: ');
readln(c);
D:=sqr(b)-4*a*c;
x1:=(-b-sqrt(D)/(2*a);
x2:=(-b+sqrt(D)/(2*a);
if d>0 then write('Rovnice ma 2 koreny: ',x1:0:2,'a',x2:0:2)
else if d=0 then write('Rovnice ma 1 koren: ', -b/(2*a):0:2)
else write ('Rovnice nema realne reseni');
end.
P.S.: U jednoho i dvou kořenů to funguje, ale pokud d<0 tak mi to píše “error 207: invalid floating point operation“
Předem děkuju za odpověď.
Offline

Nebude to tím, že odmocňuješ záporné číslo? Mněl by jsi nejdřív testovat zda je diskriminant kladný a teprve potom počítat kořeny.
Offline
↑ scipio:
Podmienku by som presunul na začiatok ako hovorí ↑ gladiator01:. A tu ti chýba zátvorka x1:=(-b-sqrt(D))/(2*a);
btw: skús použiť debugger, veľa krát pomôže ;)
Offline