2023(e)ko apirilaren 25(a), asteartea

14. ASTEA | laborategi/mintegian egin dena

 14. astea (2023/04/27) laborategi/mintegian egindakoa | [P0B9I] laborategian








  • Zerrenda ez dugu pasatu tutoretza bat izan delako. Egindakoa eGela zerbitzuko 14. saioan egindako programak bidalketaren bitartez jarraituko du etxean ikasleak












  • Proiektuaren 9. aukeraren adibide hau egin dugu (egindakoa eGela zerbitzuko foroan aurki dezakezu gaurko aktarekin batera 31azp3_13eta14asteak.zip izenarekin):


    1. Bilaketa, elementu baten sLiburuKodea teklatuz eman eta bilatu dugu funtzio bati esker, funtzioak bilatu nahi den elementuaren posizioa itzultzen du

    2. Ezabaketa, posizio jakin bateko elementua fitxategitik kentzeko array laguntzaile bat edo beste fitxategi laguntzaile bat beharko da (posizioa aurreko bilaketaren emaitza izan daiteke edo hurrengo urratseko teklatuaren bitartez egindako irakurketa)

    3. Posizioa, elementu baten posizioa fitxategian teklatuz eman eta fitxategiaren posizio horretan elementu berri bat txertatu

    4. Txertaketa, fitxategiaren posizio jakin batean elementu berri bat sartzeko array laguntzaile bat edo beste fitxategi laguntzaile bat beharko da







  • Hau ez dugu egin teoriako ikasgelan ikusiko dugu. 13. astea | fitxategi bat bitan banatu ariketaren aldaera bat egin dugu: erregistroen fitxategi bat (bi eremu: sNor katea eta rNota zenbakia). Hona hemen egindako programa:



program FitxategiBatBitanBanatu;
uses
crt;
const
iLUZERA = 30 ;
sBIDEA = 'C:\NireDatuak\';
type
tsKate49 = string[49] ;
tasIzenenZerrenda = array [1..iLUZERA] of tsKate49;
tsKate200 = string[200];
const
asZERRENDA: tasIzenenZerrenda = ('AGIRRE ROMERO, UNAI', // 01
'ANGULEMA CARAZO, JON ANDER', // 02
'BIKARREGI IGLESIAS, JULEN', // 03
'CANO RUIZ DE HEREDIA, JULIAN', // 04
'CORRAL EGIA, JOSEBA ANDONI', // 05
'DIAZ DE ULZURRUN ROY, LEONOR', // 06
'EGIGUREN MARKINEZ, IRUNE', // 07
'ERKIAGA ANDONEGI, IKER', // 08
'FERNANDEZ FEITO, FELIX', // 09
'GARTZIA DE ALZA GIL, KATALIN', // 10
'HERRANZ MARTINEZ, REBECA', // 11
'IRAGORRI COTANO, KIMETZ', // 12
'JOMA GABILONDO, ASIER', // 13
'KRUGER GARAI, LUDWING', // 14
'LANDA ASTORQUIZA, UNAI', // 15
'LANDAIDA MORENO, XABIER', // 16
'LIBARRENX BOLLAR, IZAR', // 17
'MADARI TOXO, MARIA DEL CARMEN', // 18
'MARTINEZ DE LA CRUZ, IMANOL', // 19
'NARBAIZA ARIZTONDO, MARKEL', // 20
'OSORIO ORTIZ, OLATZ', // 21
'PARIS ECHEVARRIA, AITOR', // 22
'QUINTAS ESCOBAR, AINHOA', // 23
'RADA BARANDIKA, TEODORO', // 24
'SAN JOAN GOIRI, JULIA AUGUSTA', // 25
'SEGUROLA LOPEZ DE MUNAIN, ANE', // 26
'TAPIA FERNANDEZ, ENDIKA', // 27
'URIOSTE ALZAGA, ENEKO', // 28
'VICINAY URCELAY, ELOY', // 29
'ZUATZU ZALAKAIN, ZIGOR') ; // 30

type
trdFitxa = record
sNor: tsKate49;
rNota: real;
end;
tfrdFitxategia = file of trdFitxa;


procedure DatuakErakutsi(const rdElem: trdFitxa);
begin
writeln('Ikaslearen izena: ':24, rdElem.sNor);
writeln('Ikaslearen Nota: ':24, rdElem.rNota:0:1);
writeln;
end;


procedure FitxategiaIkusi(sFitxIzen: tsKate200);
var
rdElem: trdFitxa;
f: tfrdFitxategia;
k: integer;
begin
assign(f, sFitxIzen);
reset(f);

k := 0;
while not eof(f) do
begin
read(f, rdElem);
k := k+1 ;
writeln(k:4,'. ikaslea');
DatuakErakutsi(rdElem);
end;

close(f);
end ;


function fnsIzenaLortu(sIzenDeiturak: tsKate49): tsKate49;
var
sIzena: tsKate49;
iKomaNon: integer;
begin
iKomaNon := pos(',', sIzenDeiturak);
sIzena := copy(sIzenDeiturak, iKomaNon+2, length(sIzenDeiturak)-(iKomaNon+1));
//writeln('sIzena >>>', sIzena, '<<<');
fnsIzenaLortu := sIzena;
end;


procedure DatuakJaso(var rdElem: trdFitxa);
var
iZbk: integer;
iHamarreko, iUnitate: integer;
begin
iZbk:= random(iLUZERA)+1;
rdElem.sNor := fnsIzenaLortu(asZERRENDA[iZbk]) ;

iHamarreko := random(9);
iUnitate := random(9);

rdElem.rNota := iUnitate + 0.1*iHamarreko;
end;


procedure FitxategiaSortuEtaDatuzBete(sFitxIzen: tsKate200);
var
rdElem: trdFitxa;
f: tfrdFitxategia;
iKopurua, k: integer;
begin
assign(f, sFitxIzen);
rewrite(f);

randomize;
iKopurua := random(20)+1;
writeln('iKopurua = ', iKopurua);
readln;

for k:=1 to iKopurua do
begin
DatuakJaso(rdElem);
write(f, rdElem);
end;


close(f);
end ;


procedure FitxategiaBanatu(sFitxIzen, sAprobatuak, sSuspendituak: tsKate200);
var
rdElem: trdFitxa;
f, f_A, f_S: tfrdFitxategia;
begin
assign(f, sFitxIzen);
reset(f);
assign(f_A, sAprobatuak);
rewrite(f_A);
assign(f_S, sSuspendituak);
rewrite(f_S);

while not eof(f) do
begin
read(f, rdElem);
if rdElem.rNota >= 5.0 then
write(f_A, rdElem)
else
write(f_S, rdElem);
end;

close(f);
close(f_A);
close(f_S);
end;


(* ----------------------------programa nagusia---------------------------- *)
var
sFitxIzen, sAprobatuak, sSuspendituak: tsKate200;
begin
clrscr;
writeln;
writeln;

write('Datuen fitxategiaren izena eman (adibidez "Ikasleak"): ');
readln(sFitxIzen);
sFitxIzen := sBIDEA + sFitxIzen + '.dat';
writeln('sFitxIzen >>>>>', sFitxIzen, '<<<<<<');

FitxategiaSortuEtaDatuzBete(sFitxIzen);

writeln('---Denak----------------------------------');
FitxategiaIkusi(sFitxIzen);
writeln;
writeln;

sAprobatuak := sBIDEA + 'Aprobatuak.dat';
sSuspendituak := sBIDEA + 'Suspendituak.dat';

FitxategiaBanatu(sFitxIzen, sAprobatuak, sSuspendituak);

writeln('---Aprobatuak-----------------------------');
FitxategiaIkusi(sAprobatuak);
writeln;
writeln;

writeln('---Suspendituak---------------------------');
FitxategiaIkusi(sSuspendituak);
writeln;
writeln;

writeln;
writeln('=======================');
writeln('RETURN sakatu amaitzeko');
writeln('=======================');
readln;
end.



  • 13. astea | fitxategi bat bitan banatu ariketa aztertu dugu ere, kasu honetan zenbakien fitxategi batetik abiatzen da beste bi fitxategi berri eskuratzeko. Eta kasu honetan hasierako fitxategiaren existentzia aztertzen da







  • Bilaketa ariketa: Fitxategi baten elementua beste fitxategi batean bilatu ondoren bere informazio guztia pantailaratu dugu



 

iruzkinik ez:

Argitaratu iruzkina

15. ASTEA | laborategi/mintegian egin dena

 15. astea (2023/05/08) laborategi/mintegian egindakoa 24 ikasleetatik 11 ikasleek kontrol-ariketaren bidalketa egin dute Hirugarren kont...