Tartalomjegyzék

< Speciális

Pascal nyelvhez kapcsolódó programozási feladatok

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.