ARRAY

DEFINIZIOA

Arrayak dituen elementuak mota berekoak dira eta indize-zerrenda baten bitartez identifikatzen dira, arrayaren elementu kopurua finitua da eta memoriaren gelasketan biltegitzean hurrenez hurren kokatzen dira.

Array batek ez ditu indizeak aurredefiniturik eta erabiltzaileak erabakiko du hori (sarri askotan arrayaren lehen indizea 1 izaten da).
ESKEMA
DATU-MOTA SORTZEN

Array datu-mota bat deklaratzean, besteak beste, elementuei dagokien datu-mota jarri beharko da, adibidez Real zenbaki errealen array bat izango bada. Lehen elementua eta azken elementua izendatzeko indizeak erazagutuko dira.

Demagun array aldagaiak deklaratzeko DM_arZerrenda izeneko datu-mota sortu nahi dela programa zehatz batean, suposa dezagun DM_arZerrenda datu-motako arrayetan zenbaki errealak gordeko direla eta gehienez 80 zenbaki izango direla. Hau da DM_arZerrenda datu-mota egituratuari dagokion deklarazioa eta bi aldagai:

TYPE
DM_arZerrenda = ARRAY[1..80] OF Real ;
VAR
arGela1, arGela2 : DM_arZerrenda ;
iLuzera : Integer ;

Gure nahia bi dimentsiotako bektorea balitz, DM_abTaula izeneko datu-mota sor daiteke balio boolearrak gorde ahal izateko adibidez. Hau da DM_abTaula datu-mota egituratuari dagokion deklarazioa eta dagokion aldagai bat:

TYPE
DM_abTaula = ARRAY [1..10, 1..5] OF Boolean ;
VAR
abAprobatuak : DM_arZerrenda ;
iLerroKopurua, iZutabeKopurua : Integer ;

ERAGIKETAK: IDATZI-IRAKURRI ETA ESLEIPENA

Array bat ezin daiteke bere osotasunean ez irakurri ez idatzi, horregatik ondoko aginduak okerrak dira:
WriteLn (arGela1) ; { HAU GAIZKI DAGO }
ReadLn (arGela2) ; { HAU GAIZKI DAGO }
Aurreko adibidean arrayaren elementua idatz edo irakur daiteke, eta ondorioz ondoko aginduak zuzenak dira:
WriteLn (arGela1[1]) ;
ReadLn (arGela2[iLuzera]) ;
Array bati aplika dakioken eragiketa bakarra esleipena da, ondoko agindu hau zuzena da:
arGela2 := arGela1 ;
ERAGIKETAK: KONPARAKETAK

Bi array arteko konparaketak egiteko, array biren elementuak konparatu beharko dira bikoteka: lehena lehenarekin, bigarrena bigarrenarekin, ...

Adibidez, ikusi nola jakin daitekeen bi array berdinak ote diren.
LAN EGITEKO BALIABIDEAK

Arrayekin lan egiteko ez dago aurredefinituriko funtzio eta prozedurarik, horregatik algoritmoak programatu eta erabili behar dira. Hona hemen ikasi behar diren algoritmoak:
  • Prozesaketa, arrayaren elementu guztiei prozesu jakin bat aplikatu
  • Bilaketa, gako bat emanik arrayan ote dagoen aztertu behar da
  • Txertaketa, arrayaren k posizio ezagun batean elementu berri bat txertatu
  • Ezabaketa, arrayaren k posizio ezagun batean dagoen elementua ezabatu
  • Ordenazioa, arrayaren elementuak irizpide baten arabera ordenatu, programa hau gogoratu 12. astea | Ariketa 43
PARAMETRO IZATEAN JOKAMOLDEA

Array bat datu-mota egituratua delako beti erreferentziaz pasatuko dugu azpiprogrametara. Horregatik, azpiprograma batean arraya honela agertuko da bere jokamoldearen arabera:
  • Irteerakoa denean VAR marka izango du aurrean
  • Sarrerakoa denean CONST marka izango du aurrean
Baina gehietan, array datu-motako aldagaiarekin batera derrigorrezkoa zaigu bigarren aldagai bat, zenbaki oso bat dena eta arrayaren luzera efektiboa zehazten duena. Zenbaki oso hori datu-mota sinplea delako horrela pasatuko dugu azpiprogrametara:
  • Erreferentziaz irteerakoa denean VAR marka izango du aurrean
  • Balioz sarrerakoa denean CONST marka izango du aurrean
ADIBIDEAK

Hona hemen arrayen zenbait programa:
Last modified: Tuesday, 6 August 2013, 2:22 PM