Pascal I.      Pascal II.      Delphi       Linkek     
Pascal II.
01. Eljárások, függv...
01. Gyakorló feladatok
02. Felsorolt típus, ...
02. Gyakorló feladatok
03. Állományok kezelése
03. Gyakorló feladatok
04. Unitok, CRT unit
04. Gyakorló feladatok
05. DOS unit, rendezé...
05. Gyakorló feladatok
06. Rekurzió, quicksort
06. Gyakorló feladatok
07. Backtracking
07. Gyakorló feladatok
08. GRAPH unit
08. Gyakorló feladatok
09. Kép mozgatása
09. Gyakorló feladatok
10. Winmouse unit
10. Gyakorló feladatok
11. Dinamikus adatsze...
11. Gyakorló feladatok
12. Dinamikus adatsze...
12. Gyakorló feladatok
13. Dinamikus adatsze...
13. Gyakorló feladatok
Programozás 2 (Pascal)
     
2 Felsorolt típus, record, set típusok
   
  • felsorolt típus

  • record típus

  • set (halmaz) típus

        
     2.1 Felsorolt típus

     A programozásban az eddig felsorolt típusokon kívül (integer, string, byte, boolean, char, array...) használhatunk saját adattípusokat is. Ezeket először a type utasítással meg kell adnunk. Az egyik ilyen típus a felsorolt típus, amely csak a felsorolt értékek valamelyikét veheti fel. Pl.

program Pelda05;
type nagybetu = 'A'..'Z';
     szamjegy = 0..9;
     nap = (hetfo, kedd, szerda, csutortok, pentek,
            szombat, vasarnap);
var a:nagybetu;
    b:szamjegy;
    n:nap;
begin

 
{ program }

end.

     Ezeket a típusokat nem olvashatjuk be közvetlenül a readln paranccsal billentyűzetről és nem is írhatjuk ki az értéküket a write paranccsal a képernyőre. Beolvasásuk és kiírásuk a következőképpen történhet:

program Pelda06;
type nap = (hetfo, kedd, szerda, csutortok, pentek,
            szombat, vasarnap);
var n:nap;
    i:integer;
begin
{beolvasas}
writeln('1 - hetfo');
writeln('2 - kedd');
writeln('3 - szerda');
writeln('4 - csutortok');
writeln('5 - pentek');
writeln('6 - szombat');
writeln('7 - vasarnap');
write('Addj meg egy szamot (1-7): ');
readln(i);
 case i of
  1: n:=hetfo;
  2: n:=kedd;
  3: n:=szerda;
  4: n:=csutortok;
  5: n:=pentek;
  6: n:=szombat;
  7: n:=vasarnap;
 end;
{kiiras}
write('Az altalad megadott nap a ');
 case n of
      hetfo: writeln('hetfo.');
       kedd: writeln('kedd.');
     szerda: writeln('szerda.');
  csutortok: writeln('csutortok.');
     pentek: writeln('pentek.');
    szombat: writeln('szombat.');
   vasarnap: writeln('vasarnap.');
 end;
end.
  

     2.2 Record típus

     A record típus mezõkbõl áll, melyek egyedi változóként kezelhetõk. Használatát példán szemléltetjük:

program Pelda07;
  
type szemely = record
                nev: string;
                szul_ev:integer;
               end;
  
var a:array [1..5] of szemely;
    i,jelen:integer;
  
 function beolvas:szemely;
 var x:szemely;
 begin
  write('Nev: ');
  readln(x.nev);
  write('Szuletesi ev: ');
  readln(x.szul_ev);
  beolvas:=x;
 end;
   
begin
for i:=1 to 5 do 
  begin
  writeln('Kerem az ',i,'. szemely adatait...');
  a[i]:=beolvas;
  end;
write('Milyen evet irunk most? (pl.2004) :');
readln(jelen);
for i:=1 to 5 do
  writeln(a[i].nev,' ',jelen-a[i].szul_ev,' eves.');
end.
  

     2.3 Set (halmaz) típus

     A halmaz típus (set of ...) használatát is egy példa segítségével mutatjuk be.

     A feladatunk az volt, hogy egy beolvasott szövegben felasznált betűket írjuk ki ABC sorrendben, minden betűt csak egyszer és minden betűnek a nagybetűs formája legyen kiírva.

     A feladathoz definiáltunk egy halmazt, amelyet először beállítottunk üresre, majd a betűket sorban beleraktuk ebbe a halmazba. Végül egy for ciklus segítségével végignéztük, hogy az ABC melyik betűje van ebben a halmazban (in). Ha az adott betű benne volt a halmazban, kiírtuk a képernyőre.

program Pelda08;
  
const betu = ['A'..'Z','a'..'z'];
  
type nagybetu = 'A'..'Z';

var h:set of nagybetu;
    s:string;
    i:integer;
    ch:char;
     
begin
 write('Irj be egy modnatot: ');
 readln(s);
 h:=[];
 for i:=1 to length(s) do
   if s[i] in betu then h:=h+[upcase(s[i])];
 write('Felhasznalt betuk:');
 for ch:='A' to 'Z' do
   if ch in h then write(ch:2);
 writeln;
end.

 

(C) 2004-2013, PaedDr. Végh Ladislav, Komárno, Szlovákia