Tartalomjegyzék
Pascal nyelvhez kapcsolódó programozási feladatok
- Szerző: Sallai András
- Copyright © Sallai András, 2011, 2015
- Licenc: GNU Free Documentation License 1.3
- Web: https://szit.hu
Szintaktikai hibák
Feladat 0001
Adott az alábbi pascal program. Keresse meg a szintaktikai hibákat.
program osszead, var a, b; osszeg; begin Write("Kérek egy számot"); ReadLn(a); Write("Kérek egy másik számot"); ReadLn(b); osszeg = a + b; WriteLn('Eredmény: '; osszeg); end.
A hibákat mentse egy osszeaad_h.txt nevű fájlba.
Feladat 0002
Adott az alábbi pascal program. Keresse meg a szintaktikai hibákat.
program haromszog; var alap, magassag, terulet : valos; begin Write('Alap: '); ReadLn(,alap); Write('Magasság: '); ReadLn(,magassag); terulet := {alap * magassag} / 2; WriteLn(Terület, terulet); end.
A hibákat mentse egy haromszog_h.txt nevű fájlba.
Feladat 0101
Három szintaktikai hiba található az alábbi programban:
uses crt; var i, n : byte; nevek : array [1..5] of string {'János', 'Dénes', 'Mihály', 'Lajos', 'Géza'}; BEGIN ClrScr(); n := 5; for i := 1 to n do begin WriteLn(nevek(i)); end; END.
Feladat 0102
Három szintaktikai hiba található az alábbi programban:
uses crt; var i, n : string; adatok ; array [1..5] of integer = (45, 23, 88, 12, 28); BEGIN ClrScr(); n := 6; for i := 1 to n do begin WriteLn(adatok[i]); end; END.
Szemantikai hibák
Feladat 0501
Az alábbi programnak a következőt kellene csinálni. Bekér egy sztringet és fordítva kiírja. A program azonban nem ezt csinálja. Keresse meg a programban a hibát. A javítást sztringfor.pas néven mentse, hogy mit javított írja a sztringfor.txt állományba.
program sztringfor; var szoveg : string; i : integer; begin Write('Szöveg: '); ReadLn(szoveg); for i := Length(szoveg) to 1 do Write(szoveg[1]); ReadLn; end.
Feladat 0502
A következő program kiírja a tömb elemeit. Vagyis ezt kellene tennie, de nem egészen ez történik. Mi a probléma?
uses crt; var i, n : byte; fizetesek : array [1..5] of integer = (450000, 730000, 880000, 420000, 340000); BEGIN ClrScr(); n := 5; for i := 1 to n do begin WriteLn(fizetesek[i]); end; END.
Átláthatatlan szintaktikai
Feladat 1001
A következő programban keresse meg a szintaktikai hibákat.
program téglalap; var a1, b2 : real kerulet1,kerulet2:real; begin Writeln('Első téglalap adatai'); Write('a: '); Readln(a1); Writeln('b: '); Writeln('Második téglalap adatai'); Write('a2: ');readln(a2); Write('b2: ');Readln(b2); kerulet1=(a1+b1)*2; kerulet2=(a2+b2) * 2; if keruelt1 > kerulet2 then WriteLn('Az első nagyobb téglalap'); else WriteLn('A második nagyobb téglalap');end.
A talált hibákat írja a teglalapok_h.txt állományba.
Átláthatatlan szemantikai
Feladat 1501
A következő program feladat, hogy bekéri két kör sugarát, majd kiszámolja azok kerületét és területét. A kör kerületének képlete 2*r*pi. A kör területének képlete r^2*pi. A ^ karakter egy szám valahányadik hatványát jelöli. A r^2, az r a második hatványon. A program a végén kiírja, hogy melyik nagyobb a területe alapján. A program azonban nem ezt csinálja. Keresse meg a hibákat.
program korszamitas; var s1, s2, k1, k2, t1,t2 : real; begin WriteLn('Két kör kerületének és területének számítása'); Write('Első kör sugara: '); Readln(s1); k1 := 2*s1*pi; t1 := s1 * s1 * pi; Write('Második kör sugara: '); Readln(s2); k1 := s2*s2*pi; t1 := 2 * s2 * pi; if t1 < t2 then WriteLn('Az első kör nagyobb') else WriteLn('A második kör nagyobb'); end.
A talált szemantikai hibákat írja a kor_h.txt fájlba.