PROGRAM Informatika__2012_05_08__Datutak_lortzen ; USES Crt ; TYPE tsIzena = String [150] ; trgUnea = RECORD iOrduak, iMinutuak, iSegundoak, iEhunenekoak : Integer ; END ; trgTxirrindularia = RECORD iDortsal : Integer ; sTalde : tsIzena ; rgDenboraBanaka : trgUnea ; rgDenboraTalde : trgUnea ; END ; tfbrgEtapaFitxategi = FILE OF trgTxirrindularia ; PROCEDURE FitxategiarenEdukiaBete (sFitxIzen : tsIzena) ; VAR fFitxategia : tfbrgEtapaFitxategi ; rgTxirrindularia : trgTxirrindularia ; cErantz : Char ; iAleatorioa : Integer ; iKontagailua : Integer ; BEGIN Assign (fFitxategia, sFitxIzen) ; Rewrite (fFitxategia) ; iKontagailua := 0 ; Randomize ; REPEAT iKontagailua := iKontagailua + 1 ; iAleatorioa := Random (5) ; CASE iAleatorioa OF 0 : rgTxirrindularia.sTalde := 'Euskaltel' ; 1 : rgTxirrindularia.sTalde := 'Rabobank' ; 2 : rgTxirrindularia.sTalde := 'Astana' ; 3 : rgTxirrindularia.sTalde := 'Liberty' ; 4 : rgTxirrindularia.sTalde := 'HTC' ; END ; WriteLn (rgTxirrindularia.sTalde) ; Write ('Dortsala eman (') ; CASE iAleatorioa OF 0 : Write (' 1 .. 15): ') ; 1 : Write ('16 .. 30): ') ; 2 : Write ('31 .. 45): ') ; 3 : Write ('46 .. 60): ') ; 4 : Write ('61 .. 75): ') ; END ; Readln (rgTxirrindularia.iDortsal) ; rgTxirrindularia.rgDenboraBanaka.iOrduak := 2 ; rgTxirrindularia.rgDenboraBanaka.iMinutuak := 33 ; rgTxirrindularia.rgDenboraBanaka.iSegundoak := iKontagailua ; rgTxirrindularia.rgDenboraBanaka.iEhunenekoak := rgTxirrindularia.iDortsal + Random(10) ; rgTxirrindularia.rgDenboraTalde.iOrduak := 99 ; rgTxirrindularia.rgDenboraTalde.iMinutuak := 99 ; rgTxirrindularia.rgDenboraTalde.iSegundoak := 99 ; rgTxirrindularia.rgDenboraTalde.iEhunenekoak := 99 ; Write (fFitxategia, rgTxirrindularia) ; REPEAT Write ('Txirrindulari gehiago (B/E): ') ; Readln (cErantz) ; cErantz := UpCase (cErantz) ; UNTIL (cErantz = 'B') OR (cErantz = 'E') ; WriteLn ; UNTIL cErantz = 'E' ; Close (fFitxategia) ; END ; PROCEDURE FitxategiarenEdukiaErakutsi (sFitxIzen : tsIzena) ; VAR fFitxategia : tfbrgEtapaFitxategi ; rgTxirrindularia : trgTxirrindularia ; iPosizioa : Integer ; BEGIN Assign (fFitxategia, sFitxIzen) ; Reset (fFitxategia) ; iPosizioa := 0 ; WHILE NOT Eof(fFitxategia) DO BEGIN Read (fFitxategia, rgTxirrindularia) ; iPosizioa := iPosizioa + 1 ; WriteLn ('Posizioa: ', iPosizioa) ; WITH rgTxirrindularia DO BEGIN WriteLn ('Taldea: ', sTalde) ; WriteLn ('Dortsala: ', iDortsal) ; WriteLn ('Taldearen denbora: ', rgDenboraTalde.iOrduak:2,':', rgDenboraTalde.iMinutuak:2,':', rgDenboraTalde.iSegundoak:2,':', rgDenboraTalde.iEhunenekoak:2) ; WriteLn ('Txirrindulariarena: ', rgDenboraBanaka.iOrduak:2,':', rgDenboraBanaka.iMinutuak:2,':', rgDenboraBanaka.iSegundoak:2,':', rgDenboraBanaka.iEhunenekoak:2) ; END ; WriteLn ; END ; Close (fFitxategia) ; END ; VAR sFitxIzen : tsIzena ; BEGIN { ---------------- programa nagusia ----------------------------} Write ('Etapako emaitzak dituen fitxategiaren izena (Etapa02): ') ; ReadLn (sFitxIzen) ; sFitxIzen := 'C:\' + sFitxIzen + '.IND' ; FitxategiarenEdukiaBete (sFitxIzen) ; FitxategiarenEdukiaErakutsi (sFitxIzen) ; Writeln ; ReadLn ; END. { programa nagusiaren bukaera }