Összetett adattípusok a Pascal nyelvben Páll Boglárka Apáczai Csere János Elméleti Líceum Ismétlés Ismétlés A Pascal nyelv eddig tanult beépített típusai:  Egyszerű típusok      Boolean, Shortint, Integer, Longint, Byte, Word, Real,

Download Report

Transcript Összetett adattípusok a Pascal nyelvben Páll Boglárka Apáczai Csere János Elméleti Líceum Ismétlés Ismétlés A Pascal nyelv eddig tanult beépített típusai:  Egyszerű típusok      Boolean, Shortint, Integer, Longint, Byte, Word, Real,

Összetett adattípusok
a Pascal nyelvben
Páll Boglárka
Apáczai Csere János Elméleti Líceum
Ismétlés
Ismétlés
A Pascal nyelv eddig tanult beépített típusai:

Egyszerű típusok





Boolean,
Shortint, Integer, Longint, Byte, Word,
Real, Single, Double, Extended,
Char
Összetett típusok


String
Array [indextip1, indextip2] of elemtipus;
A szöveges fájlok*
Bevezetés


A Pascal programok futtatása után a
vátlozókban tárolt adatok és eredmények
nem maradnak meg, hanem más adatokkal
íródnak felül.
Ha bizonyos adatokat vagy eredményeket
többszöri feldolgozásra, hosszú távon meg
szeretnénk őrizni, ezt a szöveges fájlok
segítségével tehetjük meg.
A szöveges fájlok felépítése



Kiterjesztésük .txt (valami.txt)
Sorokból épülnek fel, minden sort
sorvégjel zár. (#13#10 [Enter])
Szöveges fájlok végén a fájlvégjel
található. (#26 [Ctrl+Z])
Szöveges fájlok kezelésének lépései



a szöveges fájlok megnyitása
a szöveges fájlok tartalmának feldolgozás
a szöveges fájlok bezárása
Szöveges fájlok megnyitása

deklarálnunk kell egy, a szöveges fájlt azonosító
változót
var
fájlazonosító:Text;
Pl:
var f:Text;

a deklarált változót, hozzá kell rendelni a fizikai
állományhoz
assign(fájlazonosító, fájlnév)
Pl: assign(f,’szoveg.txt’)
Szöveges fájlok megnyitása
Pascalban a szöveges fájlokat három
eljárással nyithatjuk meg:

Reset(fájlazonosító) – létező állományt
nyit meg olvasásra;

Rewrite(fájlazonosító) – új állományt
hozhatunk létre, vagy régit írhatunk felül

Append(fájlazonosító) – létező állomány
megnyitása bővítés céljából
Írás a szöveges fájlokba

A write és a writeln eljárásokkal valósíthatjuk meg,
azzal a különbséggel, hogy meg kell adnunk a fájl
azonosítóját is.
write(fájlazonosító,kifejezés1,...,kifejezésn);
writeln(fájlazonosító,kifejezés1,...,kifejezésn);
Olvasás a szöveges fájlokból

A read és a readln eljárásokkal valósíthatjuk meg, azzal a
különbséggel, hogy meg kell adnunk a fájl azonosítóját is.
read(fájlazonosító,változónév1,...,változónévn);
readln(fájlazonosító,váltnév1,...,váltnévn);
Szöveges fájlok bezárása

miután egy szöveges fájlt feldolgoztunk
be kell zárnunk, erre szolgát az alábbi
eljárás:
close(fájlazonosító);
Pl: close(f);
Kimenet:
Feladat

Tároljunk egy egydimenziós tömböt egy
szöveges fájlban. A tömb első sora a
tömb méretét, a következő sorok a
tömb elemeit tartalmazzák. Olvassuk be
a tömböt a fájlból és számítsuk ki az
elemek összegét, majd az összeget írjuk
vissza a fájl utolsó sorába.
Szöveges fájlok függvényei
Eoln(fájlazonosító);


sor végenek az ellenörzése;
a függvény true értéket térít vissza, ha a
következendő beolvasandó karakter a
sorvégjel
Pl: 3 4 5 6 7 8 2 3 4 5 6 7 8
while not Eoln(f) do read(f,x);
Szöveges fájlok függvényei
Eof(fájlazonosító);


fájl végenek az ellenörzése;
a függvény true értéket térít vissza, ha a
következendő beolvasandó karakter a
fájlvégjel
Pl: 3 4 5 6 7 8 2
3 4 5 6 7 8 5 7 8 9 23
while not Eof(f) do read(f,x);
Feladat:


Olvassuk be a XIB.txt nevű szöveges
fájlból az osztálynévsort egy tömbbe.
Mondjuk meg melyik diákok
fognak ma felelni:


generáljunk 5 véletlen számot 1-30 között
írjuk ki a tömbből azok neveit akik
sorszáma megegyezik a generált számmal
t: array [1..30] of string
1
Ajtai Robert
2
Balazs Gabor
3
Balla Aron
4
Bartok Tamas Karoly
5
Benko Klara
6
Butyka Julia
7
Csergezan Zoltan
8
Debreczeni Istvan
9
Feher Krisztina
10
Fogarasi Brigitta
...
21
Miklos Dorottya
22
Nagy Sandor
23
Simon Blanka
24
Szasz Norbert
25
Szilagyi Imre
26
Szekely Csaba
27
Tamas Zsolt
28
Toth Tamas
29
Torok Eniko
30
Torok Zoltan
Felelnek:
(véletlen számok:
[1..30])
3, 20, 11, 4, 19
3
Balla Aron
20
Lorinc Marta
11
Gergely Szabolcs
4
Bartok Tamas Karoly
19
Laszlo Robert