2024(e)ko martxoaren 23(a), larunbata

10. astea | zenbakiak kendu

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.