2024(e)ko apirilaren 20(a), larunbata

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:

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

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