Programaren balizko exekuzio bat jarraian erakusten da:
Arraya datuz bete ondoren, hauxe da bakoitiak eta negatiboak diren zenbakiak kentzen dituen programa non array laguntzailerik ez den erabiltzen:
PROGRAM NegatiboakBakoitiakKendu ;
CONST
BEHEMUGA = 1 ;
GOIMUGA = 25 ;
TYPE
taiZerrenda = ARRAY[BEHEMUGA..GOIMUGA] OF Integer ;
PROCEDURE ArrayaDatuzBete(VAR aiZerrenda: taiZerrenda;
VAR iLuzera: Integer) ;
VAR
k: Integer ;
BEGIN
REPEAT
Write('Zenbat elementu sartuko dituzu? ') ;
ReadLn(iLuzera) ;
UNTIL (iLuzera >= BEHEMUGA) AND (iLuzera <= GOIMUGA) ;
FOR k:=BEHEMUGA TO iLuzera DO
BEGIN
Write('Eman ', k, '. zenbaki osoa (negatiboa edo positiboa): ') ;
ReadLn(aiZerrenda[k]) ;
END ;
END ;
PROCEDURE ArrayarenEdukiaIkusi(CONST aiZerrenda: taiZerrenda;
iLuzera: Integer) ;
VAR
k: Integer ;
BEGIN
FOR k:=BEHEMUGA TO iLuzera DO
BEGIN
WriteLn(k, '. zenbaki osoa = ', aiZerrenda[k]) ;
END ;
END ;
PROCEDURE EzabatuZenbakiBat(VAR aiZerrenda: taiZerrenda;
VAR iLuzera: Integer;
iNon: Integer) ;
VAR
k: Integer ;
BEGIN
FOR k:=iNon TO iLuzera-1 DO
BEGIN
aiZerrenda[k] := aiZerrenda[k+1];
END ;
iLuzera := iLuzera-1 ;
END ;
{ programa nagusiko aldagaiak }
VAR
aiZerrenda: taiZerrenda ;
iLuzera, i: Integer ;
BEGIN
WriteLn ('-----------------------------') ;
ArrayaDatuzBete(aiZerrenda, iLuzera) ;
WriteLn ;
ArrayarenEdukiaIkusi(aiZerrenda, iLuzera) ;
WriteLn ;
i := BEHEMUGA ;
WHILE i <= iLuzera DO
BEGIN
IF (aiZerrenda[i] < 0) AND (aiZerrenda[i] MOD 2 <> 0) THEN
BEGIN
EzabatuZenbakiBat(aiZerrenda, iLuzera, i) ;
END
ELSE
i := i+1 ;
END ;
ArrayarenEdukiaIkusi(aiZerrenda, iLuzera) ;
WriteLn ;
WriteLn ;
WriteLn('Amaituta!') ;
ReadLn ;
END. { programaren bukaera }
Eta hau da bakoitiak eta negatiboak diren zenbakiak kentzen dituen programa non array laguntzaile bat erabiltzen den:
PROGRAM NegatiboakBakoitiakKenduLaguntzailearekin ;
CONST
BEHEMUGA = 1 ;
GOIMUGA = 25 ;
TYPE
taiZerrenda = ARRAY[BEHEMUGA..GOIMUGA] OF Integer ;
PROCEDURE ArrayaDatuzBete(VAR aiZerrenda: taiZerrenda;
VAR iLuzera: Integer) ;
VAR
k: Integer ;
BEGIN
REPEAT
Write('Zenbat elementu sartuko dituzu? ') ;
ReadLn(iLuzera) ;
UNTIL (iLuzera >= BEHEMUGA) AND (iLuzera <= GOIMUGA) ;
FOR k:=BEHEMUGA TO iLuzera DO
BEGIN
Write('Eman ', k, '. zenbaki osoa (negatiboa edo positiboa): ') ;
ReadLn(aiZerrenda[k]) ;
END ;
END ;
PROCEDURE ArrayarenEdukiaIkusi(CONST aiZerrenda: taiZerrenda;
iLuzera: Integer) ;
VAR
k: Integer ;
BEGIN
FOR k:=BEHEMUGA TO iLuzera DO
BEGIN
WriteLn(k, '. zenbaki osoa = ', aiZerrenda[k]) ;
END ;
END ;
PROCEDURE Zenbakiakezabatu(VAR aiZerrenda: taiZerrenda;
VAR iLuzera: Integer) ;
VAR
k: Integer ;
aiLaguntzailea: taiZerrenda ;
iLuzeraLaguntzailea: Integer ;
BEGIN
iLuzeraLaguntzailea := 0 ;
FOR k:=BEHEMUGA TO iLuzera DO
BEGIN
IF (aiZerrenda[k] >= 0) OR
(aiZerrenda[k] MOD 2 = 0) THEN
BEGIN
iLuzeraLaguntzailea := iLuzeraLaguntzailea + 1 ;
aiLaguntzailea[iLuzeraLaguntzailea] := aiZerrenda[k] ;
END ;
END ;
aiZerrenda := aiLaguntzailea ;
iLuzera := iLuzeraLaguntzailea ;
END ;
{ programa nagusiko aldagaiak }
VAR
aiZerrenda: taiZerrenda ;
iLuzera: Integer ;
BEGIN
WriteLn ('-----------------------------') ;
ArrayaDatuzBete(aiZerrenda, iLuzera) ;
WriteLn ;
ArrayarenEdukiaIkusi(aiZerrenda, iLuzera) ;
WriteLn ;
ZenbakiakEzabatu(aiZerrenda, iLuzera) ;
WriteLn('Ezabatu ondoren:') ;
ArrayarenEdukiaIkusi(aiZerrenda, iLuzera) ;
WriteLn ;
WriteLn ;
WriteLn('Amaituta!') ;
ReadLn ;
END. { programa bukaera }