Hirdetés
- Fotók, videók mobillal
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Honor Magic 8 Pro Air a neve, január 19-én mutatják be
- Xiaomi 17 Ultra - jó az optikája
- Óra vagy karperec? Egészségügyi mindenes!
- Google Pixel 9 Pro XL - hét szűk esztendő
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Samsung Galaxy S23 Ultra - non plus ultra
- Telekom mobilszolgáltatások
Aktív témák
-
DKristof
csendes tag
válasz
huntermati
#74
üzenetére
Érdemes szerintem a diszkriminánst külön változóba kitenni, többek közt akkor a zárójelet is nehezebb elrontani.
Sőt, én a két eredményt is először kiraknám egy változóba, így jóval hosszabb ugyan a kód, de átláthatóbb és könnyebben bővíthető.Egy klasszikus "pascal-os" kód szerintem valahogy így nézne ki:
program MasodFok;
var
A , B , C , { egyutthatok }
D , { diszkriminans }
X1 , X2 : Real; { megoldasok }
Mo : Integer; { megoldasok szama }
begin
{ beolvasas }
ReadLn(A , B , C);
{ ellenorzes: masodfoku? }
if A <> 0
then
begin
{ diszkriminans }
D := sqr(b) - (4*a*c);
if D > 0
then
begin
{ ket valos gyok van }
Mo := 2;
X1 := (-b + sqrt(d)) / (2*a);
X2 := (-b - sqrt(d)) / (2*a);
end
else if D = 0
then
begin
{ egy valos gyok van }
Mo := 1;
X1 := -b / (2*a);
end
else
{ nincs valos gyok }
Mo := 0;
{ eredmeny kiirasa }
case Mo of
0 : WriteLn('Az egyenletnek nincsen valos gyoke');
1 : WriteLn('Az egyenletnek egy valos gyoke van: ' , X1:12:4);
2 : WriteLn('Az egyenletnek ket valos gyoke van: ' , X1:12:4 , X2:12:4);
end;
end
else
WriteLn('A megadott egyenlet nem masodfoku');
ReadLn;
end. -
Karma
félisten
válasz
huntermati
#74
üzenetére
Rosszul zárójeleztél. A helyes képlet (-b ± sqrt(b^2 - 4ac)) / 2a.
De ha már itt tartunk, nem ártana ellenőrizni a determinánst, mielőtt nullával osztasz.A "szam1-2-3" változók helyett lehet, hogy az a, b, c beszédesebb és átláthatóbb lenne.
Aktív témák
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

