Help kv .rovnice – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Help kv .rovnice – Pascal – Fórum – Programujte.comHelp kv .rovnice – Pascal – Fórum – Programujte.com

 

Darkkiller
~ Anonymní uživatel
1 příspěvek
14. 5. 2007   #1
-
0
-

Pls help s tymto programikom :



//69. Kv_rovnica
//Vytvorte program na riešenie kvadratickej rovnice ax2+bx+c=0 v obore reálnych èísel.
program Kv_rovnica;
uses crt;
var a,b,c,D,vys1,vys2,vys:real;

begin

write('Zadaj a: ');
readln(a);
write('Zadaj b: ');
readln(b);
write('Zadaj c: ');
readln(c);
D := (sqr(b) ) - (4*a*c);
vys1:=((-b) + (sqrt(D)))/2*a;
vys2:=((-b) - (sqrt(D)))/2*a;
if vys2 < vys1 then
begin
vys1:=vys2;
vys2:=vys1;
end;
if vys2 > vys1 then ;
if D>0 then
writeln('Vysledkom rovnice ',a,'x2+',b,'x+',c,'=0 je P{',vys1,',',vys,'}');
else if D=0 then
begin
vys:= -b/2*a;
writeln('Vysledkom rovnice ',a,'x2+',b,'x+',c,'=0 je cislo ',vys);
end;
else if D<0 then
writeln('Rovnica nema riesenie');
readln();
end.

Nahlásit jako SPAM
IP: ...–
Dominik0
Super člen
14. 5. 2007   #2
-
0
-

Musíš tesovat hodnotu diskriminantu pred tim nez ho odmocnis !!!! co kdyby byl zápornej , to by ti shodilo program

Nahlásit jako SPAM
IP: ...–
svick0
Newbie
15. 5. 2007   #3
-
0
-

To Darkkiller: Souhlasím s don_Dominique a navíc pár chyb:
1.

if vys2 > vys1 then ;

Tenhle řádek nic nedělá, můžeš ho vymazat.
2. Protože odmocnina z D je vždycky kladná, tak vys2 je vždycky menší než vys1, takže přehazovaní je zbytečné.
3.
vys1:=vys2;

vys2:=vys1;

Tohle způsobí, že v obou proměnných bude hodnota, která byla ve vys2 na začátku, pokud bys chtěl hodnoty přehodit, musš použít pomocnou proměnnou, ale jak jsem psal výše, tady je to zbytečné.
4. Když je D>0, tak vypisuješ mj. vys, tam má být vys2.
5. Když je D=0, tak je zbytčné znovu počítat výsledek, protože už je v proměnných vysl1 a vysl2 (použij jednu z nich).
6. V programu nepoužíváš crt, tak je zbytečné psát
uses crt;

Nahlásit jako SPAM
IP: ...–
Korespondenční seminář z programování pro středoškoláky - http://ksp.mff.cuni.cz
Dominik0
Super člen
15. 5. 2007   #4
-
0
-

tekhle by to mohlo vypadat ale neni to odladeny tak sou tam mozna chyby :



program rce;
var a,b,c,d:integer;
begin
write('zadej a: ');
readln(a);
write('zadej b : ');
readln(b);
write('zadej c: ');
readln(c);
if a >=1 then begin
d:=(b*b)-4*(a*c);
if d=0 then writeln('vysledek = ',-b/(2*a))
else begin
if d<0 then writeln('rce nema reseni v oboru real cisel')
else begin

writeln('x1 = ',(-b-sqrt(d))/(2*a));
writeln('x2 = ',(-b+sqrt(d)/(2*a)));

end;
end;
end else writeln('rce je linearni = ',-c/b);
readln;
end.

Psal sem to narychlo takže si tim nejsem uplne jistej !!!

Nahlásit jako SPAM
IP: ...–
svick0
Newbie
15. 5. 2007   #5
-
0
-

To don_Dominique:
Rovnice je není lineární, pokud a<>0 a ne a>=1, jak píšeš ty.
a, b a c nemusí být integery, asi by bylo lepší dát real.
U x2 máš špatné uzávorkování, u x1 to máš dobře.

Nahlásit jako SPAM
IP: ...–
Korespondenční seminář z programování pro středoškoláky - http://ksp.mff.cuni.cz
Matrix17
~ Anonymní uživatel
300 příspěvků
15. 5. 2007   #6
-
0
-

Už v pascalu moc nepíšu (prakticky vůbec), ale ta podmínka by měla bejt asi takhle:



if a <> 0 then begin
D := b * b - 4 * a * c;
if D > 0 then begin
x1 := (- b + sqrt(D)) / (2 * a);
x2 := (- b - sqrt(D)) / (2 * a);
writeln('Koren x1: ', x1:5:2);
writeln('Koren x2: ', x2:5:2);
end
else if D = 0 then begin
x1 := (- b) / (2 * a);
writeln('Rovnice ma jeden dvojnasobny koren: ', x1:5:2);
end
else
writeln('Rovnice ma komplexni koreny.');
end
else begin
x1 := (- c) / b;
writeln('Rovnice je lineatni, koren je: ', x1:5:2);
end;


Snad je to funkční. Jak říkám v pascalu už sem dlouho nic nedělal ale takhle by to mělo fungovat. Maximálně bych sem mohl dát funkční kód v C++ jestli by to pomohlo.

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Rovnice — založil Kája

Rovnice kružnice — založil Divisor

Exponencialni rovnice — založil Filip

Kvadratická rovnice — založil rdckONE

Uprava rovnice — založil Mrdkus

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý