Kezdőoldal » Számítástechnika » Programozás » Free Pascalban egy háromszög...

Free Pascalban egy háromszög típusának megállapítása?

Figyelt kérdés

Sziasztok!

Egy viszonylag egyszerű programról lenne szó,

megállapítani, hogy megszerkeszthető e a háromszög, ha igen akkor milyen, deréksz.,szabályos...


Szóval ott lenne a gond, hogy addig elindul a program és jól is megy, amég megvizsgálom, hogy megszerkeszthető -e , ha igen akkor pitagorasz-t segítségével megállapítom, hogy derékszögű -e ÉS azután szeretném vizsgálni a többi lehetőséget, hogy szabályos -e vagy egyszerű és itt lép fel a hiba. Lehet nem vagyok tisztában az ELSE használatával, mivel eddig csak egy feltételben 1x használtam mindig, szerintem ez a hiba, de valahogy nemtudok rájönni. Kezdő programozó vagyok. A segítségért előre is köszönet!



2018. jan. 20. 20:00
1 2
 1/12 anonim ***** válasza:
Mire?
2018. jan. 20. 20:09
Hasznos számodra ez a válasz?
 2/12 A kérdező kommentje:
Mit mire?
2018. jan. 20. 20:15
 3/12 anonim ***** válasza:

Mire nem tudsz rájönni?


Nem derül ki, hogy mi a gondod, vagy milyen választ szeretnél kapni milyen kérdésre.

Az else egy eke egyszerű fogalom, nem nagyon van rajta mit nem érteni.

2018. jan. 20. 20:19
Hasznos számodra ez a válasz?
 4/12 A kérdező kommentje:

így elindul a program:


program haromszog;

uses crt;

var a,b,c:integer;


begin

clrscr;

writeln('Add meg a haromszog legrovidebb oldalat');

readln(a);

writeln('Add meg a haromszog leghoszabb oldalat');

readln(c);

writeln('Add emg a maradek oldal hosszat');

readln(b);


if a+b<c then writeln('A haromszog nem megszerkesztheto')


else


begin if a*a+b*b=c*c then ('Writeln('A haromszog derekszogu');

end;

repeat until keypressed;

end.


EDDIG ELINDUL ÉS MŰKÖDIK, majd szeretném folytatni a köv. módon:


program haromszog;

uses crt;

var a,b,c:integer;


begin

clrscr;

writeln('Add meg a haromszog legrovidebb oldalat');

readln(a);

writeln('Add meg a haromszog leghoszabb oldalat');

readln(c);

writeln('Add emg a maradek oldal hosszat');

readln(b);


if a+b<c then writeln('A haromszog nem megszerkesztheto')


else


begin if a*a+b*b=c*c then ('Writeln('A haromszog derekszogu')


else


if a=b=c then writeln('A háromszög szabályos')


else writeln('A haromszog egyszeru');

end;

repeat until keypressed;

end.


És itt már nem indul el, hibaüzeneteket dob ki, biztos, hogy nagy hülyeséget írhattam össze, de nem tudok rájönni a helyes megoldásra.

2018. jan. 20. 20:41
 5/12 tabaki ***** válasza:

Csitt, egy szót se az egyetlen lényeges dologról! A hibaüzenetek a te géped magánügyei, nem tartoznak másra. Történetesen ma nincs pascal fordító a közelemben, hogy kipróbáljam a programodat, de átfutva, ez biztosan nem jó:

if a=b=c then writeln('A háromszög szabályos')

Ha van értelme az a=b=c kifejezésnek, akkor egy integert (a) akarsz egy igaz vagy hamis boolean értékkel (b=c) összehasonlítani, ezt a fordító biztosan nem engedi meg.

2018. jan. 20. 22:12
Hasznos számodra ez a válasz?
 6/12 A kérdező kommentje:

nekem a boolean folagalma is még gondot jelent sajnos :/

egyébb egyszerű megoldást tudnál ajánlani? vagy más ötlet?

2018. jan. 20. 22:18
 7/12 tabaki ***** válasza:
44%

A kérdéses sor helyett például:


if (a = b) and (b = c) then writeln('A háromszög szabályos')


A booleanról esetleg később, indulok fürödni.

2018. jan. 20. 22:28
Hasznos számodra ez a válasz?
 8/12 anonim ***** válasza:

Minden háromszög szabályos.


Pontosabb, hogy egyenlő oldalú v. egyenlő szárú.

2018. jan. 20. 22:45
Hasznos számodra ez a válasz?
 9/12 tabaki ***** válasza:
100%

A programodnak a fent említetten kívül az egyetlen baja, hogy az egyik WriteLn előtt van egy fölösleges bal zárójel meg egy aposztróf. Ez egyszerű szövegszerkesztési hiba, a kijavítása után a programod mindjárt működni kezd, mégpedig a gyanúba fogott ELSE ágak bárminemű megváltoztatása nélkül:

[link]

Két dolgot jegyeznék meg tanulságként. Az egyik, hogy a hibaüzenetek hajigálása nem merő unaloműzés a fordító részéről, hanem -- igaz, hogy angolul -- de téged próbál meg útba igazítani a probléma oka felől. Tehát kisiklott fordítás esetén nem az az infó, hogy üzenget (az a dolga), hanem, hogy miféléket. A másik tanulság: Érdemes a kódot zsúfolás helyett szellősen írni, átlátható, következetes szerkezetbe tördelni, akkor a hibák könnyebben észrevehetők.


Szegény booleant meg halasztom tovább, inkább alhatnékom van.

2018. jan. 21. 01:49
Hasznos számodra ez a válasz?
 10/12 A kérdező kommentje:

fuuu köszi szépen a segítséget, így már működik! Az a zárójel az véletlenül van ott, manuálisan írtam át, mert nem tudtam bemásolni, viszont utánakerestem a hibaüzenetnek: “;” expected but Else found

csak annyit találtam neten, hogy else elé nem kell ;

2018. jan. 21. 10:42
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!