Aparkaleku-kudeaketa eta Zubi-txapelketaren Programa Pascal-en: Egitura eta Funtzioak

Teknologia6,02 KB

Zubi-txapelketa eta Aparkaleku-kudeaketa: Pascal programak

CASE aukera OF

'1': BEGIN

Writeln;

Write('Zenbaki identifikatzailea eman: ');

ReadLn(iEzabatzekoIdentifikadorea);

MaketaKendu(iEzabatzekoIdentifikadorea, sFitxIzen);

END;

'2': BEGIN

iZenbatZubiLehian := fniZenbatuZubiakLehian(sFitxIzen);

CASE iZenbatZubiLehian OF

0: BEGIN

Writeln('Dagoeneko lehiaketa bukaturik dago, ez da zubirik lehian geratzen');

END;

1: BEGIN

Writeln('Zubi bakarra geratzen da lehian, hau da zubi txapelduna:');

ZubiTxapeldunaZehaztu(sFitxIzen, rdZubiTxapelduna);

ZubiBatErakutsi(rdZubiTxapelduna);

WriteLn;

END;

ELSE

BEGIN

LehianDaudenZubiakErakutsi(sFitxIzen);

WriteLn;

Writeln('Txanda berri bati ekin!');

LehianDaudenZubieiKargaBerriaJarri(sFitxIzen);

END;

END;

END;

'3': BEGIN

iZenbatZubiLehian := fniZenbatuZubiakLehian(sFitxIzen);

CASE iZenbatZubiLehian OF

0: BEGIN

Writeln('Azken txandan zubi guztiak erori dira, lehiaketa irabazlerik gabe bukatu da');

END;

1: BEGIN

Writeln('Zubi bakarra geratzen da lehian!');

iIdentIrabazlea := fniZubiIrabazlea(sFitxIzen);

Writeln('Hau da zubi irabazlea: ', iIdentIrabazlea);

WriteLn;

END;

ELSE

BEGIN

Writeln(iZenbatZubiLehian, ' zubi lehian, lehiaketa ez da oraindik bukatu');

END;

END;

END;

END;{CASE}

IF aukera <> '0' THEN

BEGIN

cTeklaBatSakatu := ReadKey;

Write(cTeklaBatSakatu);

END;

UNTIL aukera = '0';

Writeln;

Writeln('Amaitzeko INTRO sakatu');

ReadLn;

END.

Aparkalekuen programa

PROGRAM Aparkalekuak;

Liburutegiak

USES Crt, SysUtils;

Konstanteak

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 }

Motak

TYPE

tsKate8 = STRING[8];

tsKate30 = STRING[30];

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;

Fitxategia sortu

{ Fitxategi baten existentzia aztertzen du. Ezezkoan, sortu egiten du }

PROCEDURE prFitxategiaSortu(sFitxIzen: tsKate30);

VAR f: tfParking;

BEGIN

IF NOT FileExists(sFitxIzen) THEN

BEGIN

Assign(f, sFitxIzen);

ReWrite(f);

Close(f);

WriteLn('"', sFitxIzen, '" izeneko fitxategia sortuta');

END;

END;

Fitxategitik array-ra

{ Parking fitxategiaren datuak array batera eraman. Bide batez, irten ez diren autoen gau kopurua inkrementatu. }

PROCEDURE prFitxategitikArrayra(sFitxIzen: tsKate30; VAR ardParking: tardParking; VAR iLuzera: Integer);

VAR f: tfParking;

BEGIN

{ Hasieran array hori hutsik dago }

iLuzera := 0;

{ Fitxategia zabaldu }

Assign(f, sFitxIzen);

Reset(f);

{ Fitxategia hasieratik bukaerara zeharkatu }

WHILE NOT EOF(f) DO

BEGIN

iLuzera := iLuzera + 1;

Read(f, ardParking[iLuzera]);

ardParking[iLuzera].iGauKopurua := ardParking[iLuzera].iGauKopurua + 1;

END;

Close(f);

END;

Menua

FUNCTION fncAukeraIrakurri: Char;

VAR cAukera: Char;

BEGIN

ClrScr;

Writeln;

Writeln;

WriteLn('************************ MENUA *******************************');

WriteLn(' 1. Auto baten sarrera');

WriteLn(' 2. Auto baten irteera');

WriteLn(' 3. Parking-ean dauden autoen informazioa pantailaratu');

Writeln;

WriteLn(' 0. Amaitu');

WriteLn;

Write('Zure aukera hautatu: ');

REPEAT

cAukera := ReadKey;

UNTIL ('0' <= cAukera) AND (cAukera <= '3');

Writeln(cAukera);

Writeln;

fncAukeraIrakurri := cAukera;

END;

Autoaren posizioa bilatu

{ Auto baten matrikula datua izanik, autoaren posizioa array barruan zehazten du, baldin eta oraindik irten ez bada (horretarako rZenbatekoa balioa erabiltzen da). Matrikula ez badu aurkitzen edo aurkitzen badu autoa irten bada, -1 itzuli. Bestela autoaren posizioa array barruan itzuli. }

Deskargatu

PDF Word HTML