Tizedesvessző kitétele után, mért záródik be a pascalban írt program?
Üdv. Még elég kezdő vagyok, írtam egy egyszerű összeadásos programot, és ha pl beírtam első számnak 2,6-ot, bezárult a program. Ha egész számot írok pl 5 és 3 akkor működik minden. Valami megoldás? Forrás:
program Untitled;
Var a,b:integer;
begin
write('Irjj be egy szamot: '); readln(a);
write('Irrj be meg egy szamot: '); readln(b);
write('Osszeg: '); writeln(a+b);
readln;
end.
1. Mert a pascalban (mint a számítástechnikában általában) tizedespont használatos.
2. Mert egész változóba amúgy sem olvashatsz törtszámot.
#5-nek (SimkoL):
Egész pofásra megalkodtad a honlapodat, esetleg gondolhatnál azokra is, akiknek szélesebb monitora van. (azaz alkalmazkodhatna, pl középre igazodna, stb.)
"A program nem regény... ...Az indentátás módszere..."-résznél esetleg példával is előhozakodhattál volna, ha már a kezdőket célzod meg... ...lehet, hogy az "indentálás"-szóval is csak itt találkoztak először...
Az is szép, hogy felsorolod a foglalt szavakat, függvényeket és eljárásokat... ...de hogy hasznos is legyen, érdemes lenne egy-egy "link"-el is megáldani őket, ahol bemutatod melyiket hogyan használják és mire. ...és így már tényleg észosztás lenne! :-)
Ez nem kötöszködés, csak építő szándékú észrevétel. Tudni-illik ugyanis, hogy semmi sem tökéletes, de lehet rá törekedni! :-)
@kérdező:
Jópofa ez a „helyes szakszavak”; annyira óvatosan próbáltál fogalmazni, hogy a végén attól lett mulatságos... Nem tudom, azóta hol tartasz, de az összehasonlítás végett itt van a programod működő változata (a tizedesvessző helyére természetesen pontot kell írnod):
program osszeadas;
var a, b : real;
begin
Write('Írj be egy számot: ');
ReadLn(a);
Write('Írj be még egy számot: ');
ReadLn(b);
WriteLn('Összeg: ', a + b:10:3);
ReadLn;
end.
Azért az egész históriának van egy nagy tanulsága: Mindig föl kell készülnöd arra, hogy a felhasználó valami marhaságot csinál: Pont helyett vesszőt, szám helyett betűt ír be, túl nagy vagy túl kicsi számot ad meg, egyszerre akar több adatot bevinni, stb., és akkor bizony hibára fut a program, ami nem túl elegáns végszó. Nem mondom éppen, hogy ezeket a problémákat a te tudásoddal már meg lehet oldani (a fenti programban én sem foglalkoztam velük), de mindenesetre mindig lebegjen a szemed előtt, hogy az adatbevitel az egyik legkényesebb rész, és próbáld annyira leszűkíteni a lehetőségeit, hogy csak a program számára feldolgozható adatok jussanak át rajta.
SimkoL javaslatait pedig érdemes némi vakbuzgósággal követned, ez jól kamatozik majd, ha később valamelyik szigorúbb nyelvet is kipróbálod, amelyik elvárja a pontos kisbetű-nagybetű használatot.
Az a lap egy erős felindulásból készült :) A teszteken elég jól mutatott az oldal megjelenése, nem is foglalkoztam vele tovább. Igazad van pár dolgot el kellene magyarázni érthetőbben, majd a téli esték alatt folytatom. Azt, hogy mi mire való, hatalmas munka lenne, de lehet... - a TP 6.0 magyar helpje szerintem elég is lenne hozzá -
@tabaki: WriteLn('Összeg: ', a + b:10:3); Itt magyarázd már meg neki mi a b:10:3 mert kezdőként nem fogja érteni.
@SimkoL: Az jó lesz fejtörőnek...
@Kérdező: Próbáld ki, hogy csak a+b legyen kiíratva, a kettőspontos számok nélkül.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!