Nejste přihlášen/a.

Přihlásit se do poradny

 

Pascal a komplexní čísla

Od: bena* odpovědí: 7 změna:

Zdravím všechny, mám malý problém. V Turbo Pascalu jsem si nedávno naprogramoval aplikaci, která mi vypočítá kořeny kvadratických rovnic. Aplikace funguje dobře, ale počítá mi pouze v reálných číslech. Já bych chtěl, aby mě aplikace vypočítala i takovou kvadratickou rovnici, kde D<0.
Poznámka: S Pascalem spíše začínám, nejsem ještě tak zkušen...

Děkuji za všechny smysluplné odpovědi.

doplněno 04.06.11 20:18:

Zde je zdroják:

program Rovnice;
var a,b,c,D:real;
begin
write(adej kvadratický člen a: );
readln(a);

write(adej lineární člen b: );
readln(b);

write(adej absolutní člen c: );
readln(c);

writeln;

D:=sqr(b)-4*a*c;

if D<0 then writeln(x={})
else if D=0 then writeln(x=, -b/(2*a):0:2)
else
begin
write(x1= ,(-b-sqrt(D))/(2*a):0:2);
writeln( x2= ,(-b+sqrt(D))/(2*a):0:2);
end;
readln;
end.

 

 

7 odpovědí na otázku
Řazeno dle hodnocení

 

 

charlies*
hodnocení

2x

V Pacsalu nedělám, ale v tomto případě by ti stačilo, kdyby jsi měl podmínku, která ti zjistí, že se bude jednat o komplexní čísla, tj. jak víš, když D

Pascal a komplexní čísla

 

hm*
hodnocení

2x
Jak naznačil _charlies_, mělo by stačit tvůj řádek
if D<0 then writeln(x={})
nahradit řádky:
if D<0 then begin
D:= -D;
write (x1=, -b/(2*a), +, sqrt(D)/(2*a), i);
writeln ( x2=, -b/(2*a), -, sqrt(D)/(2*a), i)
end
Snad jsem to po letech úplně nezkonil. To tvoje :0:2 ve writech je asi nějaké formátování výstupu, že? Tak si ho můžeš přidat.
doplněno 04.06.11 23:56:

Propána, proč je to tlustými písmeny?!

doplněno 04.06.11 23:59:

Jo, texty (x1=), (+), (i), (x2=), (-) a (i) jsou v apostrofech, to je snad jasne; tady se ty znaky nějak nezobrazují.

 

bena*
hodnocení

[/b]

Děkuji vám za odpovědi. Tak jsem to ve zdrojáku nahradil, ale vyhazuje mi to 113ku /viz. obrázek ↓/

Pascal a komplexní čísla #2
hm*

Na kterém řádku?

Nebudou to ty přebytečné závorky v přidaných write a writeln (u textů "+", "-" a obou "i")?

bena*
hodnocení

Ne, zkoušel jsem dát ty závorky pryč a stejně nic.

Chyba by měla být na řádku, kde je dole kurzor /řádek else if D=0 them writeln.../ - ale ten by měl být v pořádku, s ním jsem nemanipuloval.

hm*

Ty jsi před ten označený řádek prdnul end se středníkem. Nemá to být bez středníku?

bena*
hodnocení

No jo, ježiši kriste, já hlupák tam dal středník. Děkuju. Program funguje výborně.

Ještě jednou díky, Béňa.

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]