Preview only show first 10 pages with watermark. For full document please download

Informatikai Gyakorlatok 11. évfolyam

Rekord (struktúra) 1. Eddig egyszerű típusú adatokkal foglalkoztunk, amelyek egyetlen adatot képesek eltárolni (kivéve a string, ami tulajdonképpen karakterek sorozata) Gyakran szükségünk van arra, hogy több összetartozó adatot egy helyen tároljunk, nem pedig külön változókban. Ennek egyik eszköze a struktúra (rekord) típus. A struktúra több, egyszerű típusú adatból épül fel, amelyeket mezőknek nevezünk.

   EMBED

  • Rating

  • Date

    May 2018
  • Size

    529.3KB
  • Views

    1,792
  • Categories


Share

Transcript

1 Informatikai gyakorlatok 11. évfolyamÖsszetett adattípusok: rekord, tömb, feltöltés szövegfájlból Czigléczky Gábor 2009 TÁMOP /1-2F2 Rekord (struktúra) 1. Eddig egyszerű típusú adatokkal foglalkoztunk, amelyek egyetlen adatot képesek eltárolni (kivéve a string, ami tulajdonképpen karakterek sorozata) Gyakran szükségünk van arra, hogy több összetartozó adatot egy helyen tároljunk, nem pedig külön változókban. Ennek egyik eszköze a struktúra (rekord) típus. A struktúra több, egyszerű típusú adatból épül fel, amelyeket mezőknek nevezünk.3 típus_név változó_név;Rekord (struktúra) 2. Struktúra mező1 mező2 … mezőn Struktúra típus deklarációja: struct típus_név { public mező_típus1 mező_név1; public mező_típus2 mező_név2; … public mező_típusn mező_névn; } A public kulcsszó azt jelenti, hogy a mező értéke a program bármelyik részéből elérhető, módosítható. Ennek elhagyása vagy a private kulcsszó használata esetén csak a struktúrába írt metódusok használhatnák ezeket a mezőket. Struktúra típusú változó deklarációja: típus_név változó_név;4 Rekord (struktúra) 3. Rekord orszag terulet Példa: tároljuk egy rekordban egy ország nevét és területét! struct Rekord { public string orszag; public int terulet; } Struktúra típusú változó deklarációja: Rekord x; Értékadás a rekord mezőinek: mezőszelektor (.) használatával: x.terulet = 15000;5 Tömb (vektor) 1. A rekord típusú változó is csak egyetlen, logikailag összetartozó adatcsoportot tud tárolni. Több, azonos típusú adat tárolására a tömböt használhatjuk. Az egydimenziós tömböt vektornak, a kétdimenziós tömböt mátrixnak nevezzük. 0. elem 7 1. elem 33 2. elem 24 … MAX-1. elem 1526 Tömb (vektor) 2. Vektor típusú változó deklarációja:bázistípus[] változó_név; Ez még csak egy üres hivatkozás, nem használható, amíg helyet nem foglalunk az elemek számára! Helyfoglalás MAX db elem számára: változó_név = new bázistípus[MAX]; Ilyenkor az elemek sorszáma (indexe) 0- tól MAX-1-ig terjedhet!7 Tömb (vektor) 3. 7 const int MAX = 100; int[] v = new int[MAX];Példa (deklaráció és helyfoglalás egyben): const int MAX = 100; int[] v = new int[MAX]; A tömb elemeinek elérése (indexelés): v[2] = 24; Elemek bejárása for ciklussal: for (int i=0; i<MAX; i++) { listbox1.Items.Add(v[i].ToString()); } 0. elem 7 1. elem 33 2. elem 24 … MAX-1. elem 1528 Vektor és struktúra együttStruktúra típus deklarációja: struct Rekord { public string orszag; public int terulet; } Struktúra típusú tömb deklarációja és helyfoglalás: Rekord[] v = new Rekord[MAX]; Értékadás indexeléssel és mezőszelektorral: v[i].terulet = 15000;9 Beolvasás szöveges fájlbólA „using” lista kibővítése: using System.IO; Fájl létezésének ellenőrzése: if (File.Exists(fájlnév)) { … } Fájltípus deklarációja és a fájl megnyitása: StreamReader f = File.OpenText(fájlnév); Olvasás, amíg nincs vége a fájlnak: while (!f.EndOfStream) { … } Sorok beolvasása (a cikluson belül): string sor = f.ReadLine(); Fájl bezárása: f.Close();10 Kiírás szöveges fájlbaKülönbségek a beolvasáshoz képest: Fájltípus deklarációja és a fájl megnyitása: StreamWriter f = File.CreateText(fájlnév); Nem kell használni az f.EndOfStream tulajdonságot, mert íráskor nem a fájl végéig írunk, hanem addig, amíg el nem fogy a kiírandó adatmennyiség. Egy sor kiírása: f.WriteLine(sor); A fájl bezárása kötelező! f.Close();