2024(e)ko ekainaren 28(a), ostirala

Azterketa: 2024ko uztailaren deialdia


2024ko Uztailaren deialdiko programa: Aparkalekuak


Ariketari lotutako informazioa:
Datu-fitxategiak C:\Datuak karpetan kokatu behar dira. Haien izenak hauek izan daitezke:
  • HISTORIKOA.DAT datu-fitxategia
  • BEZPERAKOA.DAT datu-fitxategia
  • GARABIA.DAT datu-fitxategia

2024-06-28_Aparkalekuak.pas bezero-programak lau unitate behar ditu. Hona hemen, lau unitateen interfaze atalak:

Konstanteak:
1
2
3
4
5
6
7
8
9
10
11
12
unit konst;
 
INTERFACE
   const
      ZENBAT_APARKALEKU   = 100;    { Parking-ak 100 aparkaleku-plaza ditu }
      GAU_BATEN_KOSTUA    = 15;     { Gau bat igarotzearen kostua }
      MINUTU_BATEN_KOSTUA = 0.011{ Minutu bakoitzeko kostua }
      GAU_KOPURU_MAXIMOA  = 2;      { Zenbat gau onartzen dira }
      MAX                 = 4080;   { Array laguntzailearen neurria }
      sBIDEA = 'C:\Datuak\';        { Datu-fitxategiak kokatzeko direktorioa }
 
(* ---------------------------- interfazearen amaiera -------------------------- *)
Datu-motak:
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
unit motak;
 
INTERFACE
 
   uses
      konst, crt, sysutils;
     
   type
      integer = smallint;   { INTEGER datu-motek 2 byte hartzera behartzen da }
      real = double;        { REAL datu-motek 8 byte erabiltzera behartzen da }
      tsKate8   = string[8];
      tsKate200 = string[200];
      tsKate10  = string[10];
      tsKate2   = string[2];
 
      trdData = record
                   iUrtea, iHila, iEguna: integer;
                end;
 
      trdUnea = record
                   iOrduak, iMinutuak, iSegundoak: integer;
                end;
 
      trdAutoarenDatuak = record
                             sMatrikula   : tsKate8;
                             rdSarreraData: trdData;
                             rdSarreraUnea: trdUnea;
                             rdIrteeraData: trdData;
                             rdIrteeraUnea: trdUnea;
                             iGauKopurua  : integer;
                             rZenbatekoa  : real;
                          end;
 
      tardParking = array[1..MAX] of trdAutoarenDatuak;
     
      tfParking = file of trdAutoarenDatuak;
 
      tfGaurkoData = file of trdData;   { azterketan ez da eskatzen }
 
(* ---------------------------- interfazearen amaiera -------------------------- *)
Datu-fitxategien edukia erakusteko. HISTORIKOA.DAT, BEZPERAKOA.DAT eta GARABIA.DAT datu-fitxategien informazioa pantailaratzeko erabiltzen den unitatea. Hauxe da apark unitatearen interfazea:
1
2
3
4
5
6
7
8
9
10
11
unit apark;
 
INTERFACE
 
   uses
      konst, motak, crt, sysutils;
 
   procedure prFitxategiaErakutsi(sFitxIzen: tsKate200);
   procedure prAutoBatenDatuakErakutsi(const rdAutoa: trdAutoarenDatuak);
 
(* ---------------------------- interfazearen amaiera -------------------------- *)
Dataren eguna hasieratzeko, eskuratzeko, pantailaratzeko eta automatikoki inkrementatzeko unitatea. Data iraunkorki gordetzeko GAURKOEGUNA.DAT fitxategia erabiltzen da, GAURKOEGUNA.DAT fitxategiak trdData datu-motako elementu bakarra dauka. GAURKOEGUNA.DAT fitxategia 2024-06-15 balioarekin sortzen da HISTORIKOA.DAT datu-fitxategiaren sorrerarekin batera; gero, programaren exekuzio bakoitzeko, GAURKOEGUNA.DAT fitxategiak gordetzen duen data egun batez inkrementatzen da. Hauxe da gaur unitatearen interfazea:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  Data eta ordua automatikoki hartzen direnez, unitate honek data
  nola aldatzen den egunez egun simulatzeko balio du. Horretarako,
  fitxategi bat erabiltzen da, non 2024-06-15 data gordetzen den
  hasieran, eta egunak aurrera joan ahala 2024 urteko egutegia
  jarraitzen den.
}
unit gaur;
 
INTERFACE
 
   uses
      konst, motak, crt, sysutils;
 
   procedure prDatarenFitxategiaHasieratu(sFitxIzenGaurkoData: tsKate200);
   procedure prDataEskuratu(sFitxIzenGaurkoData: tsKate200; var rdGaurkoData: trdData);
   procedure prDataPantailaratu(const rdGaurkoData: trdData);
   procedure EgunBatGehiago(const rdGaurkoData: trdData; var rdBiharkoData: trdData);
   procedure prDataInkrementatu(sFitxIzenGaurkoData: tsKate200);
 
(* ---------------------------- interfazearen amaiera -------------------------- *)


2024ko Uztailaren deialdiko teoria
  1-C   |   2-D   |   3-B   |   4-C   |   5-D   |   6-C   |   7-D  

Galderei dagozkien programak:

 

iruzkinik ez:

Argitaratu iruzkina

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