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.