Nejste přihlášen/a.
Dobrý den, potřebuju naprogramovat v pascalu rešení kvadratických rovnic i pro diskriminat menší než 0 (řešením jsou komplexní čísla). Podařilo se mi naprogramovat, když je diskriminant větší než 0, ale pro meněší než nula se mi to stále nedaří.
zde je moje řešení pro kladný D
-
Program Kvadr_Rovnice;
uses crt;
var fl,B,C,D,xl,x2:real;
begin
write(’Zadej koef A:’readln(A);
write(’Zadej koef B:’readln(B);
write(’Zadej koef C:’readln(C);
writeln;
D:=B*B-4*A*C;
if D>=0then begin
D:=sqrt(D);
x1:=(-B+D)/2/A;
x2:=(—B—D)/2/A ;
writeln(’x1=’,x1:6:2);
writeln(’x2=’,x2:6:2) end
else writeln(’komplexni koreny’ readln end.
-
poté jsem se pokoušel vytvořit něco takovýho, to ale nefunguje
-
Program Kvadr_Rovnice;
uses crt;
var fl,B,C,D,xl,x2,i:real;
begin
write(’Zadej koef A:’readln(A);
write(’Zadej koef B:’readln(B);
write(’Zadej koef C:’readln(C);
writeln;
D:=B*B-4*A*C;
if D>=0then begin
D:=sqrt(D);
x1:=(-B+D)/2/A;
x2:=(—B—D)/2/A ;
writeln(’x1=’,x1:6:2);
writeln(’x2=’,x2:6:2) end
else begin
i:=-1;
D:=sqrt(D*i);
xl:=(—B—D)/2/A;
x2:=(-B-D)/2/A;
writeln(’xl=’,xl:6:2);
writeln(’x2=’,xl:6:2)
end;
readln
end.
-
Žádám Vás o pomoc, či o radu, jak to tedy naprogramovat tak, aby mi vyšlo správné řešení i pro D<0.
Děkuji Jaroslav Charvát
doplněno 29.10.12 17:21:
Omlouvám se, ale na některých místech se objevili smajlíci a ten text okolo nich nedává smysl, doufám, ale že kdo umí v pascalu pracovat se v tom vyzná, ještě jednou děkuji
Vy deklarujete x1, x2 jako reálná čísla. Bude-li diskriminant menší než nula (D<0), tak pak kořeny nejsou reálná čísla, ale dva imaginární komplexně sdružené kořeny
x1 = -b/2a + i (√ |D|)/2a
x2 = -b/2a _ i (√ |D|)/2a
Je tedy nutno výsledek vypsat nějak takto:
writeln('x1 = ',b/(2*a),'+ i',D/(2*a))
writeln('x2 = ',b/(2*a),'_ i',D/(2*a))
kde D je to vaše D≔sqrt(D*i), čili D≔sqrt(D*(-1)).
doplněno 01.11.12 12:17:Ve výpisu výsledku mi uniklo znaménko _
writeln('x1 = ',_b/(2*a),'+ i',D/(2*a))
writeln('x2 = ',_b/(2*a),'_ i',D/(2*a))
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.