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:


 
Array laguntzaile baten bitartez hainbat elementu array batetik kendu.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{ 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.