[[oktatas:programozás:feladatok:speciális| < Speciális]]
====== Pascal nyelvhez kapcsolódó programozási feladatok ======
* **Szerző:** Sallai András
* Copyright (c) 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.