Mi ebben a pascal forráskódban a hiba?
var a:longint;
Begin
clrscr;
writeln('Volt egyszer egy kisfiú úgy hívták hogy Aranka');
writeln('Sokat játszott a szomszéd kislánnyal
Gyuluskával.');
writeln('Elmentek az erdőbe egy csákánnyal.');
writeln('Aranka nagyon fázott de Gyuluska melege életben tartotta.');
writeln('Gyuluskának pisilnie kellet ezért egy fa tövébe ürítette ki a húgyhójagját');
writeln('Ahogy tovább mentek beesteledett.A távolban láttak egy medvét');
writeln('A medve barátságos volt velük ezért együtt aludtak vele.');
writeln('Másnap reggel megjelent Zsuzsi. Aki Gyuluska apja volt');
writeln('Gyuluska mivel nem szerette belévágta a csákányt.');
writeln('Aranka sírva elfutott.');
writeln('1:Gyuluska Aranka utána megy.');
writeln('2:Gyuluska tovább veri Zsuzsiba a csákányt.')
readln(a);
if a=1 then writeln('Arankába Gyuluska láttán felébred a gyilkos szándék és lecsapja')
else writeln('Zsuzsi életre kel é1s lecsapja Gyuluskát ');
End.
Csak a GYK írta így amúgy sorban van
writeln('2:Gyuluska tovább veri Zsuzsiba a csákányt.')
Ennek az egy sornak a végéről hiányzik a pontosvessző.
Továbbá: A magyarban a tagmondatok elválasztására vesszőket szokás használni, a mondatok végére pontot tenni, és a "húgyhólyag" kifejezést elipszilonnal írni...
Egyéb szövegjavításokkal:
program gyuluska;
uses crt;
var a : byte;
Begin
clrscr;
writeln('Volt egyszer egy kisfiú, úgy hívták hogy Aranka.');
writeln('Sokat játszott a szomszéd kislánnyal, Gyuluskával.');
writeln('Elmentek az erdőbe egy csákánnyal.');
writeln('Aranka nagyon fázott, de Gyuluska melege életben tartotta.');
writeln('Gyuluskának pisilnie kellett, ezért egy fa tövébe ürítette ki a húgyhólyagját.');
writeln('Ahogy tovább mentek beesteledett. A távolban láttak egy medvét.');
writeln('A medve barátságos volt velük, ezért együtt aludtak vele.');
writeln('Másnap reggel megjelent Zsuzsi, aki Gyuluska apja volt');
writeln('Gyuluska, mivel nem szerette, belévágta a csákányt.');
writeln('Aranka sírva elfutott.');
writeln('1: Gyuluska Aranka után megy.');
writeln('2: Gyuluska tovább veri Zsuzsiba a csákányt.');
readln(a);
if a=1 then writeln('Arankába Gyuluska láttán felébred a gyilkos szándék és lecsapja.')
else writeln('Zsuzsi életre kel, és lecsapja Gyuluskát.');
End.
Megjegyzések:
A te kódod eleje nem látható, de a CRT unit kell, mert különben nem érti a CLRSCR utasítást.
Mi a bánatnak 1 és 2 értékekhez LONGINT? Több, mint elég a BYTE típus.
A végén nem egészen illendő, hogy nemcsak a menüben feltüntetett 2, hanem bármilyen 1-től eltérő számérték Zsuzsi életre keléséhez vezet. Korrektebb lenne a rossz értéket is kezelni, például úgy, hogy ilyenkor kiírja "Hülye vagy, ilyen opció nincs." Esetleg hozzáteheti: "Látom, nem érted a lényeget, elmondom még egyszer:" -- azzal ugrik a program elejére, mindaddig, amíg helyes választ nem kap.
Lehet, hogy az utóbbi megoldás még nem megy, de az elsőhöz elég, amit most tudsz.
Egyébként pedig sokkal szerencsésebb az adatokat stringként bekérni, és utólag átalakítani VAL() függvénnyel. Most ugyanis, ha nem számot kap, Runtime Errorral áll le, ami nem túl elegáns.
Pardon. Tehát az ő kódjának az eleje, stb.
Még egy módosítás, ez a sor elkerülte a figyelmemet -- ArankábaN, plusz újabb vesszőpótlás:
if a=1 then writeln('Arankában Gyuluska láttán felébred a gyilkos szándék, és lecsapja.')
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!