Alfabetikoki ordenatu

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

Taula alfabetikoki ordenatu nahi dugula. Orain, eta zure imajinazioa martxan ipiniz, pentsa ezazu taula hau bost leihatilez osatutako T izeneko taulako batean metatu dela.

Zenbakiz edo letraz osatutako zerrenda ordenatzea eguneroko lelo bilakatu den une honetan, badu programatzaileak arazo honi berehalako irtenbidea aurkitzeko beharra. Bestalde, administrazio-mailako edozein programak ere, badu programa honen antzeko egitura. Beraz, hau kontutan hartuz, programatzeari ekingo diogu.

Bertan erabiliko dugun metodoa, ohizko metodoa duzu eta honako honetan datza:

Demagun C A D E B moduko taula alfabetikoki ordenatu nahi dugula. Orain, eta zure imajinazioa martxan ipiniz, pentsa ezazu taula hau bost leihatilez osatutako T izeneko taulako batean metatu dela:

Bestalde, badugu R izeneko ordezko erregistro bat.

Berau hasiera batean hutsik dago gainera.

Hemen eman beharko diren pausoak, honako hauek dira:

    Zerrendako lehen elementua hartu (T1=C)
    Jarraian datorrenaren aurrekoa edo atzekoa den ikusi. Aurrekoa balitz, hirugarrengoarekin konparatu beharko litzateke. Aldiz, atzekoa izango balitz, ordenaz trukatu beharko lirateke. Horretarako erabiltzen den bidea, honako hau da:Gauza bera egin letra guztiekin. Horrela T1 leihatilan agertuko den letra, ordena alfabetikoaren arabera, lehenengoa izango da.
  1. Prozesua hasieratu, baina T2 leihatilan dagoen letrarekin kasu honetan.

Horrela guztiak amaitu arte.

Honela jokatuz gero, programak zerrenda alfabetikoki ordenatzen du. Baina emaitzak aurkezteko garaian, bi zerrenda ipiniko dizkigu; bata ordenatu gabea eta bestea ordenatua.

OHARRA: Ordenatu nahi den hitz-zerrenda oso luzea baldin bada, agian (zenbait ordenagailuetan) memoria gordetzeko aginduaren (CLEAR) erabilpena beharrezkoa izango da. Ikus ordenagailuari dagokion eskuliburuan CLEAR aginduari buruz esaten dena.

10 REM ** ALFABETIKOKI ORDENATU **
20 CLEAR
30 CLS
40 PRINT "Programa honek, edozein hitz- zerrenda alfabetikoki ordenatzen du"
50 INPUT "Zenbat hitz erabili nahi dituzu"; N
60 DIM A$(N)
70 CLS
80 PRINT "Sar itzazu hitz horiek"
90 FOR I = 1 TO N
100 INPUT A$(I)
110 NEXT I
120 CLS
130 PRINT "JATORRIZKO ZERRENDA"
140 PRINT "========== ========"
150 PRINT
160 FOR I = 1 TO N
170 PRINT A$(I)
180 NEXT I
190 FOR I = 1 TO N-1
200 FOR J = I+1 TO N
210 IF A$(I) = A$(J) THEN 250
220 K$ = A$(I)
230 A$(I) = A$(J)
240 A$(J) = K$
250 NEXT J
260 NEXT I
270 PRINT : PRINT : PRINT "ZERRENDA BERRIA"
280 PRINT "======== ======"
290 PRINT
300 FOR I = 1 TO N
310 PRINT A$(I)
320 NEXT I
330 PRINT : PRINT : PRINT "Programaren amaia"
340 END

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila