2023(e)ko apirilaren 23(a), igandea

13. astea | bi fitxategi nahastu


















Ezaguna den ariketa hau fitxategiak erabiliz egin!








Erregistroen bi bektore fitxategi nahastu








Laborategiko gelan, gehienez, 25 ikasle izango dira. Ikasleen datuak bi arrayetan biltzen dira, array bat lehen azterketari dagokio eta beste arraya bigarren azterketari dagokio.





Arrayaren elementuak kateak dira, eta bertan izena eta zenbaki bat / batez banaturik daude, zenbakien kopuru maximoa 9.9 izango eta minimoa 0.0 izango da.





Datuak teklatuaren bitartez ematen dira eta ikasleen posizioak arrayetan zaindu behar dira berdinak izan daitezan, hurrengo adibidean erakusten den bezala. asAzterketa1 eta asAzterketa2 abiapuntuko arrayak dira eta ardAzterketak arraya lortu behar dena. Hona hemen datuen adibide bat:








asAzterketa1





‘Josu/6.1’


‘Ane/7.6’


‘Mikel/2.7’


1


2


3






asAzterketa2





‘Josu/6.9’


‘Ane/5.4’


‘Mikel/6.3’


1


2


3






iLuzera




3












ardAzterketak






‘Josu’


‘Josu’


‘Ane’


‘Ane’


‘Mikel’


‘Mikel’


6.1


6.9


7.6


5.4


2.7


6.3


1


2


3


4


5


6






iZenbat




6









Datu zerrenda bat array batean gorde daiteke, edo bestela fitxategi batean ere gorde daiteke. Ondoko ariketa egin dezagun: bi fitxategietatik abiatuta aurreko biak nahastuz fitxategi bakarra lortu.



Hona hemen, proposatutako ariketaren hasiera:




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
program ErregistroenBiFitxategiNahastenEMATEKOA;
 
type
   tsKate30 = string[30];
   tsKate250 = string[250];
   tfsAgendaZahar = file of tsKate30;
 
procedure DatuakSartu(sFitxIzen1, sFitxIzen2: tsKate250);
var
   f1, f2: tfsAgendaZahar;
   iZenbatElementu: integer;
   sDatua: tsKate30;
   sIzena: tsKate30;
   sZenbakiUnitate: tsKate30;
   sZenbakiHamarreko: tsKate30;
   iZenbakiUnitate: integer;
   iZenbakiHamarreko: integer;
   n: integer;
begin
   assign(f1, sFitxIzen1);
   rewrite(f1);
   assign(f2, sFitxIzen2);
   rewrite(f2);
    
   repeat
      write('Zenbat elementu gordeko dira bi fitxategietan? ');
      readln(iZenbatElementu);
   until iZenbatElementu > 0;
    
   for n:=1 to iZenbatElementu do
   begin
      write(n, '. lagunaren izena eman: ');
      readln(sIzena);
    
      iZenbakiUnitate := random(10);         (* 0 eta 9 artean *)
      Str(iZenbakiUnitate, sZenbakiUnitate);
      iZenbakiHamarreko := random(10);       (* 0 eta 9 artean *)
      Str(iZenbakiHamarreko, sZenbakiHamarreko);
       
      sDatua := sIzena + '/' + sZenbakiUnitate + '.' + sZenbakiHamarreko;
      write(f1, sDatua);     (* Fitxategi batean idatzi *)
    
      iZenbakiUnitate := random(10);         (* 0 eta 9 artean *)
      Str(iZenbakiUnitate, sZenbakiUnitate);
      iZenbakiHamarreko := random(10);       (* 0 eta 9 artean *)
      Str(iZenbakiHamarreko, sZenbakiHamarreko);
       
      sDatua := sIzena + '/' + sZenbakiUnitate + '.' + sZenbakiHamarreko;
      write(f2, sDatua);     (* Fitxategi batean idatzi *)  
   end;
 
   close(f1);    (* Fitxategiak itxi *)
   close(f2);
end;
 
 
procedure DatuakIkusi(sFitxIzen: tsKate250);
var
   f: tfsAgendaZahar;
   sDatua: tsKate30;
begin
   assign(f, sFitxIzen);
   reset(f);
 
   while not eof(f) do
   begin
      read(f, sDatua);
      writeln(FilePos(f)-1, '. posizioko datua: ', sDatua);
   end;
 
   close(f);    (* Fitxategia itxi *)
   writeln;
end;
 
 
{ ============================================================== }
 
 
var
   sAgendaIzen1, sAgendaIzen2: tsKate250;
 
begin
   write('1. agenda fitxategiaren izena eman: ');
   readln(sAgendaIzen1);
    
   write('2. agenda fitxategiaren izena eman: ');
   readln(sAgendaIzen2);
    
   DatuakSartu(sAgendaIzen1, sAgendaIzen2);
   writeln;
    
   writeln('1. agendaren datuak: ');
   DatuakIkusi(sAgendaIzen1);
   writeln;
 
   writeln('2. agendaren datuak: ');
   DatuakIkusi(sAgendaIzen2);
   writeln;
 
   { hemen idatzi ariketan eskatzen dena }
 
   writeln('Programa amaitzera doa');
   readln;
end.










Ariketen iturburu programak























Array datu-mota erabiliz


Fitxategien bitartez




 

iruzkinik ez:

Argitaratu iruzkina