1 / 13

Összetett adattípusok

Összetett adattípusok. Tömb. Tömb típus. A tömb meghatározott számú, azonos típusú elemekből álló összetett típus. Deklarálása : var azonosító : array [ kezdőindex .. végindex ] of típus ; tömb mérete tömb elemeinek típusa Pl.:

Download Presentation

Összetett adattípusok

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Összetett adattípusok Tömb

  2. Tömb típus A tömb meghatározott számú, azonos típusú elemekből álló összetett típus. Deklarálása: var azonosító: array[kezdőindex .. végindex] oftípus; tömb mérete tömb elemeinek típusa Pl.: var x: array[1..10] of integer; {10 elemből álló integer típusú tömb} x[1], x[2],… x[10] - tömb elemeire való hivatkozás x[1] := 3,67; - tömb egy elemének való értékadása Azt a tömböt, ahol csak egy dimenzióban deklaráljuk a tömb elemeit, akkor vektornak nevezzük.

  3. array[Indextípus] ofElemtípus; Szabályok: • A tömbnek rögzített számú eleme van • Az elemek típusai megegyeznek • Indextípus csak sorszámozott típus lehet • Indextípus minden értékére létezik egy jól meghatározott tömbelem • Az elemek számát a tömbben Indextípus számossága határozza meg • Index egy Indextípusú kifejezés • Az elemek bármelyike közvetlenül elérhető az indexre való hivatkozással

  4. Műveletek vektorokkal: 1. Vektor deklarálása: Var v:array[1..25] of integer; i,n: integer; vagy type vekt=array[1..25] of integer; var i, n:integer; v:vekt; 2.Vektor elemeinek elemzése, feldolgozása: ciklus segítségével végigmegyünk a vektoron -for ciklussal: for i:=1 to n do <v[i] feldolgozása> -while ciklussal: i:=1; while i<=n do begin <v[i] feldolgozása> i:=i+1; end;

  5. -repeat ciklussal: i:=1; repeat <v[i] feldolgozása> i:=i+1; until i>n; 3. Vektor elemeinek beolvasása: -for ciklussal: write(‘n=’); readln(n); for i:=1 to n do begin write(‘ v[‘ ,i, ’]= ’); readln(v[i]); end;

  6. -while cilkussal: write(‘n=’); readln(n); i:=1; while i<=n do begin write (‘ v[‘ ,i, ’]= ’); readln (v[i]); i:=i+1; end; -repeat cilkussal: write(‘n=’); readln(n); i:=1; repeat write (‘ v[‘ ,i, ’]= ’); readln (v[i]); i:=i+1; until i>n;

  7. 4. Vektor elemeinek kiíratása: -for ciklussal: for i:=1 to n do write(v[i]:4); -while ciklussal: i:=1; while i<=n do begin write(v[i]:4); i:=i+1; end; -repeat ciklussal: i:=1; repeat write(v[i]:4); i:=i+1; until i>n;

  8. Típusfeladatok vektorokkal: 1. Olvassunk be egy vektort, majd írassuk ki fordított sorrendben a beolvasott elemeket, tehát először kiírassuk az x[n]- dik, majd az x[n-1]-dik elemet és végül legutoljára az x[1]. Ez nem azt jelenti hogy a vektort megfordítottuk, csak azt hogy fordítva írattuk ki az elemeket. (forditottvektor.pas) 2. Határozzuk meg a vektor legkisebb elemét! (min.pas) 3. Határozzátok meg a vektor legnagyobb elemét! (max.pas) 4. Határozzátok meg párhuzamosan egy vektor legnagyobb és legkisebb értékét ! 5. Határozzátok meg egy vektor eleminek összegét! 6. Számoljátok meg egy vektor pozitív és negatív elemeit! (pozitiv&negativ) 7. Írassátok ki egy vektor páros elemeit. (paros.pas)

  9. Gyakran előforduló problémák tömbök esetében: 1.Adott két azonos típusú tömb x és y. Cseréljétek fel a két tömb elemeit egymással. y[1]:=x[n] y[2]:=x[n-1] következtetés: a tömb indexeinek összege …. mindig n+1, ezért felírható: y[n]:=x[1] y[i]:=x[n+1-i] for i:=1 to n do y[i]:=x[n+1-i] feladat: Cseréljétek fel két tömb elemeit.

  10. 2. Vektor elemeinek felcserélése önmagában: Adott egy x vektor. Felszeretnénk cserélni a vektor elemeit ugyanabban a vektorban. megoldás: -ezt csakis úgy lehet megvalósítani, hogy egy segédváltozó segítségével a tömb közepéig minden elemet felcserélünk egymással, az elsőt az utolsóval és így tovább. -ha a teljes sorozatot vennénk, akkor a közepétől megint minden elem visszacserélődik: pl. legyen egy 6 elemű tömb v: v1 v2 v3 v4 v5 v6 1.lépés: 5 8 9 7 3 1 2.lépés: 1 8 9 7 3 5 3.lépés: 1 3 9 7 8 5 4.lépés: 1 3 7 9 8 5 5.lépés: 1 3 9 7 8 5 5 8 9 7 3 1

  11. Tehát: for i:=1 to n div 2 do begin seged:=x[i]; x[i]:=x[n+1-i]; x[n+1-i]:=seged; end; feladat: Cseréljétek fel egy vektor elemeit.

  12. 3. Egy adott tulajdonságú elem keresése a vektorban: Legyen x egy vektor és egy adott tulajdonságú elem, amit keresünk a vektorban. megoldás: be kell vezessünk egy logikai változót, melynek kezdeti értéke hamis(false, 0). Ez a logikai változó keres rá az adott tulajdonságú elemre, illetve visszajelez hogy van-e ilyen elem vagy nincs. talalt:=false; i:=1; while (i<=n) and (not talalt) do if x[i]=y then talalt:=true else i:=i+1; Feladat: 1.Nézzük meg, hogy van-e a vektorban negatív szám 2. Keressétek ki egy vektorból a prímszámokat.

  13. Feladatok: 1. Adottak egy osztály tanulói. Kérjétek be mindenik tanuló osztályzatát és adjátok majd meg az osztály átlagát. (ATLAG_1) 2. Írjatok egy programot mely kiírja hogy egy ismert osztályzat milyen minősítésnek felel meg. (OSZT_1) 3. Ismerjük a tanulók számát és a tantárgyak számát, akkor adjuk meg külön külön mindenik tanuló átlagát (ATLAG_2) 4. Ismervén egy személy fizetését, adjátok meg a bankjegyek számát (CIMLETEZ) 5. Írjatok egy Programot mely megszámolja hogy egy mátrixban hány a pozitív, hány a negatív és hány nulla van (Pozineg) 6. Írjatok egy programot, mely véletlenszerűen megadja egy lottóhúzás nyerőszámait. (Lotto5) 7. Számoljátok meg hány páros, páratlan és hány 3-mal osztható szám van egy vektorban! (ciklus7) 8. Adjuk meg egy osztály tanulóinak névsorát és az általuk megtakarított pénzt fejenként. Összegezzétek a tanulók által megtakarított pénzt, készítsetek kimutatást. (ciklus51)

More Related