2024(e)ko apirilaren 29(a), astelehena

14. ASTEA | laborategian egin dena

 14. astea (2023/04/30) laborategi/mintegian egindakoa


  • Zerrenda pasatu dugu, deitutako 25en artean 13 ez dira etorri (informazio gehiago eGela zerbitzuan)


  • Hau ez dugu egin teoriako ikasgelan ikusiko dugu. 13. astea | fitxategi bat bitan banatu ariketaren aldaera bat egin dugu: erregistroen fitxategi bat (bi eremu: sNor katea eta rNota zenbakia). Hona hemen egindako programa:
         
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
program FitxategiBatBitanBanatu;
uses
   crt;
const
   iLUZERA = 30 ;
   sBIDEA = 'C:\NireDatuak\';
type
      tsKate49    = string[49] ;
      tasIzenenZerrenda = array [1..iLUZERA] of tsKate49;
      tsKate200 = string[200];
const
      asZERRENDA: tasIzenenZerrenda = ('AGIRRE ROMERO, UNAI',              // 01
                                       'ANGULEMA CARAZO, JON ANDER',       // 02
                                       'BIKARREGI IGLESIAS, JULEN',        // 03
                                       'CANO RUIZ DE HEREDIA, JULIAN',     // 04
                                       'CORRAL EGIA, JOSEBA ANDONI',       // 05
                                       'DIAZ DE ULZURRUN ROY, LEONOR',     // 06
                                       'EGIGUREN MARKINEZ, IRUNE',         // 07
                                       'ERKIAGA ANDONEGI, IKER',           // 08
                                       'FERNANDEZ FEITO, FELIX',           // 09
                                       'GARTZIA DE ALZA GIL, KATALIN',     // 10
                                       'HERRANZ MARTINEZ, REBECA',         // 11
                                       'IRAGORRI COTANO, KIMETZ',          // 12
                                       'JOMA GABILONDO, ASIER',            // 13
                                       'KRUGER GARAI, LUDWING',            // 14
                                       'LANDA ASTORQUIZA, UNAI',           // 15
                                       'LANDAIDA MORENO, XABIER',          // 16
                                       'LIBARRENX BOLLAR, IZAR',           // 17
                                       'MADARI TOXO, MARIA DEL CARMEN',    // 18
                                       'MARTINEZ DE LA CRUZ, IMANOL',      // 19
                                       'NARBAIZA ARIZTONDO, MARKEL',       // 20
                                       'OSORIO ORTIZ, OLATZ',              // 21
                                       'PARIS ECHEVARRIA, AITOR',          // 22
                                       'QUINTAS ESCOBAR, AINHOA',          // 23
                                       'RADA BARANDIKA, TEODORO',          // 24
                                       'SAN JOAN GOIRI, JULIA AUGUSTA',    // 25
                                       'SEGUROLA LOPEZ DE MUNAIN, ANE',    // 26
                                       'TAPIA FERNANDEZ, ENDIKA',          // 27
                                       'URIOSTE ALZAGA, ENEKO',            // 28
                                       'VICINAY URCELAY, ELOY',            // 29
                                       'ZUATZU ZALAKAIN, ZIGOR') ;         // 30
  
type
   trdFitxa = record
                 sNor: tsKate49;
                 rNota: real;
              end;
   tfrdFitxategia = file of trdFitxa;
 
 
procedure DatuakErakutsi(const rdElem: trdFitxa);
begin
   writeln('Ikaslearen izena: ':24, rdElem.sNor);
   writeln('Ikaslearen Nota:  ':24, rdElem.rNota:0:1);
   writeln;
end;
 
 
procedure FitxategiaIkusi(sFitxIzen: tsKate200);
var
   rdElem: trdFitxa;
   f: tfrdFitxategia;
   k: integer;
begin
   assign(f, sFitxIzen);
   reset(f);
 
   k := 0;
   while not eof(f) do
   begin
      read(f, rdElem);
      k := k+1 ;
      writeln(k:4,'. ikaslea');
      DatuakErakutsi(rdElem);
   end;
 
   close(f);
end ;
 
 
function fnsIzenaLortu(sIzenDeiturak: tsKate49): tsKate49;
var
   sIzena: tsKate49;
   iKomaNon: integer;
begin
   iKomaNon := pos(',', sIzenDeiturak);
   sIzena := copy(sIzenDeiturak, iKomaNon+2, length(sIzenDeiturak)-(iKomaNon+1));
   //writeln('sIzena >>>', sIzena, '<<<');
   fnsIzenaLortu := sIzena;
end;
 
 
procedure DatuakJaso(var rdElem: trdFitxa);
var
   iZbk: integer;
   iHamarreko, iUnitate: integer;
begin
   iZbk:= random(iLUZERA)+1;
   rdElem.sNor := fnsIzenaLortu(asZERRENDA[iZbk]) ;
 
   iHamarreko := random(9);
   iUnitate := random(9);
 
   rdElem.rNota := iUnitate + 0.1*iHamarreko;
end;
 
 
procedure FitxategiaSortuEtaDatuzBete(sFitxIzen: tsKate200);
var
   rdElem: trdFitxa;
   f: tfrdFitxategia;
   iKopurua, k: integer;
begin
   assign(f, sFitxIzen);
   rewrite(f);
 
   randomize;
   iKopurua := random(20)+1;
   writeln('iKopurua = ', iKopurua);
   readln;
 
   for k:=1 to iKopurua do
   begin
      DatuakJaso(rdElem);
      write(f, rdElem);
   end;
 
 
   close(f);
end ;
 
 
procedure FitxategiaBanatu(sFitxIzen, sAprobatuak, sSuspendituak: tsKate200);
var
   rdElem: trdFitxa;
   f, f_A, f_S: tfrdFitxategia;
begin
   assign(f, sFitxIzen);
   reset(f);
   assign(f_A, sAprobatuak);
   rewrite(f_A);
   assign(f_S, sSuspendituak);
   rewrite(f_S);
 
   while not eof(f) do
   begin
      read(f, rdElem);
      if rdElem.rNota >= 5.0 then
         write(f_A, rdElem)
      else
         write(f_S, rdElem);
   end;
 
   close(f);
   close(f_A);
   close(f_S);
end;
 
 
(* ----------------------------programa nagusia---------------------------- *)
var
   sFitxIzen, sAprobatuak, sSuspendituak: tsKate200;
begin
   clrscr;
   writeln;
   writeln;
    
   write('Datuen fitxategiaren izena eman (adibidez "Ikasleak"): ');
   readln(sFitxIzen);
   sFitxIzen :=  sBIDEA + sFitxIzen + '.dat';
   writeln('sFitxIzen >>>>>', sFitxIzen, '<<<<<<');
 
   FitxategiaSortuEtaDatuzBete(sFitxIzen);
    
   writeln('---Denak----------------------------------');
   FitxategiaIkusi(sFitxIzen);
   writeln;
   writeln;
 
   sAprobatuak := sBIDEA + 'Aprobatuak.dat';
   sSuspendituak := sBIDEA + 'Suspendituak.dat';
 
   FitxategiaBanatu(sFitxIzen, sAprobatuak, sSuspendituak);
 
   writeln('---Aprobatuak-----------------------------');
   FitxategiaIkusi(sAprobatuak);
   writeln;
   writeln;
 
   writeln('---Suspendituak---------------------------');
   FitxategiaIkusi(sSuspendituak);
   writeln;
   writeln;
 
   writeln;
   writeln('=======================');
   writeln('RETURN sakatu amaitzeko');
   writeln('=======================');
   readln;
end.

  • 13. astea | fitxategi bat bitan banatu ariketa aztertu dugu ere, kasu honetan zenbakien fitxategi batetik abiatzen da beste bi fitxategi berri eskuratzeko. Eta kasu honetan hasierako fitxategiaren existentzia aztertzen da

  • Bilaketa ariketa: Fitxategi baten elementua beste fitxategi batean bilatu ondoren bere informazio guztia pantailaratu dugu


 

iruzkinik ez:

Argitaratu iruzkina

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.