Gehienez 20 elementu gordetzeko gai diren arrayekin lan egingo dugu. Arrayen elementuak zenbaki osoak izango dira.
{ Luzera logikorik ez da erabiltzen hiru arrayak }
{ beti beterik daudela suposatzen delako. }
program HiruArray;
uses
crt;
const
iBEHEMUGA = 1;
iGOIMUGA = 20;
type
taiZenbakiak = array[iBEHEMUGA..iGOIMUGA] of integer;
procedure ArrayakAleatoriokiBete(var aiZenbakiak1: taiZenbakiak;
var aiZenbakiak2: taiZenbakiak);
var
iKont: integer;
begin
randomize;
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
aiZenbakiak1[iKont] := random(40) - 20; { -20 eta 19 arteko balioak }
aiZenbakiak2[iKont] := random(40) - 20; { -20 eta 19 arteko balioak }
end;
writeln;
end;
procedure ArrayaBete(var aiZenbakiak: taiZenbakiak);
var
iKont: Integer;
begin
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
write('Eman ', iKont:2, '. zenbakia: ');
readln(aiZenbakiak[iKont]) ;
end;
writeln;
end;
procedure ArrayaIkusi(const aiZenbakiak: taiZenbakiak);
var
iKont: integer;
begin
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
writeln(iKont:2, '. zenbakia = ', aiZenbakiak[iKont]);
end;
writeln;
end;
procedure ArrayaLortu(const aiX, aiY: taiZenbakiak;
var aiZ: taiZenbakiak);
var
iKont: integer;
begin
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
if aiX[iKont] > aiY[iKont] then
aiZ[iKont] := 1;
if aiX[iKont] = aiY[iKont] then
aiZ[iKont] := 0;
if aiX[iKont] < aiY[iKont] then
aiZ[iKont] := -1;
end;
end;
function fniKontatuZenbatPlus(const aiZ: taiZenbakiak): integer;
var
iKont, iZenbat: integer;
begin
iZenbat := 0;
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
if aiZ[iKont] = 1 then
iZenbat := iZenbat + 1;
end;
fniKontatuZenbatPlus := iZenbat;
end;
function fniKontatuZenbatMinus(const aiZ: taiZenbakiak): integer;
var
iKont, iZenbat: integer;
begin
iZenbat := 0;
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
if aiZ[iKont] = -1 then
begin
iZenbat := iZenbat + 1;
end;
end;
fniKontatuZenbatMinus := iZenbat;
end;
function fniKontatuZenbatZero(const aiZ: taiZenbakiak): integer;
var
iKont, iZenbat: integer;
begin
iZenbat := 0;
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
if aiZ[iKont] = 0 then
begin
iZenbat := iZenbat + 1;
end;
end;
fniKontatuZenbatZero := iZenbat;
end;
procedure HiruKontaketakEgin( const aiZeta: taiZenbakiak;
var iZenbatPlus: integer;
var iZenbatMinus: integer;
var iZenbatZero: integer);
var
iKont: integer;
begin
iZenbatPlus := 0;
iZenbatMinus := 0;
iZenbatZero := 0;
for iKont:=iBEHEMUGA to iGOIMUGA do
begin
case aiZeta[iKont] of
1: begin
iZenbatPlus := iZenbatPlus + 1;
end;
-1: begin
iZenbatMinus := iZenbatMinus + 1;
end;
0: iZenbatZero := iZenbatZero + 1;
end;
end;
end;
{ ------------------------- programa nagusia ------------------------- }
var
aiX, aiY, aiZ: taiZenbakiak;
iZenbatPlus, iZenbatMinus, iZenbatZero: integer;
begin
clrscr;
writeln('aiX eta aiY arrayen datuak aleatorioki hartuko dira');
ArrayakAleatoriokiBete(aiX, aiY);
writeln('aiX arrayaren edukia');
ArrayaIkusi(aiX);
writeln('aiY arrayaren edukia');
ArrayaIkusi(aiY);
writeln;
ArrayaLortu(aiX, aiY, aiZ);
writeln('aiZ arrayaren edukia');
ArrayaIkusi(aiZ);
writeln;
iZenbatPlus := fniKontatuZenbatPlus(aiZ);
iZenbatMinus := fniKontatuZenbatMinus(aiZ);
iZenbatZero := fniKontatuZenbatZero(aiZ);
writeln('Hiru funtzioz...');
writeln('Xi elementuak Yi elementuak baino handiago: ', iZenbatPlus, ' aldiz' );
writeln('Xi elementuak Yi elementuak baino txikiago: ', iZenbatMinus, ' aldiz' );
writeln('Xi elementuak eta Yi elementuak berdinak: ', iZenbatZero, ' aldiz' );
writeln;
HiruKontaketakEgin(aiZ, iZenbatPlus, iZenbatMinus, iZenbatZero);
writeln('Prozedura bakarraz...');
writeln('Xi elementuak Yi elementuak baino handiago: ', iZenbatPlus, ' aldiz' );
writeln('Xi elementuak Yi elementuak baino txikiago: ', iZenbatMinus, ' aldiz' );
writeln('Xi elementuak eta Yi elementuak berdinak: ', iZenbatZero, ' aldiz' );
repeat until keypressed;
end. { programaren amaiera }
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.