Gehienez 15 elementu gordetzeko gai diren arrayekin lan egingo dugu. Arrayen elementuak zenbaki osoak izango dira.
Programaren balizko exekuzio bat jarraian erakusten da:
{ Zenbaki osoak array batean gorde ondoren, bakoiti eta negatiboak }
{ diren elementuak arraytik kendu (array laguntzaile bat erabiliz). }
program ZenbakiakKendu;
uses
crt;
const
iBEHEMUGA = 1;
iGOIMUGA = 20;
type
taiZerrenda = array[iBEHEMUGA..iGOIMUGA] of integer;
procedure ArrayaAleatoriokiDatuzBete(var aiZerrenda: taiZerrenda;
var iZenbat:integer);
var
iKont: integer;
begin
repeat
write('Zenbat datu dira? (gehienez ', iGOIMUGA, '): ');
readln(iZenbat);
until (iZenbat >= iBEHEMUGA) and (iZenbat <= iGOIMUGA);
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
aiZerrenda[iKont]:= random(40)-20; { -20 eta 19 artek balioak }
end;
end;
procedure ArrayarenEdukiaIkusi(const aiZerrenda: taiZerrenda;
iLuzera: integer);
var
iKont: integer;
begin
for iKont:=iBEHEMUGA to iLuzera do
begin
writeln(iKont:10, '. elementua = ', aiZerrenda[iKont]:3);
end;
writeln;
end;
procedure BakoitiNegatiboakKendu(var aiZerrenda: taiZerrenda;
var iLuzera: integer);
var
iKont, iLuzeraBerria: integer;
aiZerrendaBerria: taiZerrenda;
begin
iLuzeraBerria := 0;
for iKont:=iBEHEMUGA to iLuzera do
begin
if (aiZerrenda[iKont] < 0) and (aiZerrenda[iKont] mod 2 <> 0) then
begin
writeln('Hau saihestu ---> aiZerrenda[', iKont:2,'] = ', aiZerrenda[iKont]:3);
end
else
begin
iLuzeraBerria := iLuzeraBerria + 1;
aiZerrendaBerria[iLuzeraBerria] := aiZerrenda[iKont];
end;
end;
aiZerrenda := aiZerrendaBerria;
iLuzera := iLuzeraBerria;
end;
{ ------------------------- Programa Nagusia ------------------------- }
var
aiZerrenda: taiZerrenda;
iLuzera: integer;
cErantzuna: char;
begin
repeat
clrscr;
writeln('--------------------------------------------');
writeln('Datuak eskuratzen: ');
ArrayaAleatoriokiDatuzBete(aiZerrenda, iLuzera);
writeln('Hasierako datuak: ');
ArrayarenEdukiaIkusi(aiZerrenda, iLuzera);
BakoitiNegatiboakKendu(aiZerrenda, iLuzera);
writeln;
writeln('Bakoiti negatiboak kendu ondoren: ');
ArrayarenEdukiaIkusi(aiZerrenda, iLuzera);
repeat
write('Amaitu nahi duzu? (b/e): ');
cErantzuna := readkey;
cErantzuna := upcase(cErantzuna);
writeln(cErantzuna);
until (cErantzuna = 'B') or (cErantzuna = 'E');
writeln;
writeln;
writeln;
writeln;
until cErantzuna = 'B';
end. { programaren amaiera }

iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.