12. astea (2024/04/17) etxean egitekoa
- Dagoeneko zuen izenak eta abizenak idatzi dituzue Proiektuaren taldekideak artikuluan aipatzen den taulan, norbait falta bada edo zeozer zuzendu behar bada e-posta bat idatz egidazue
- 12. ASTEA | laborategi/mintegian egin dena zuk zeuk etxean, zure ordenagailuan, errepika ezazu. Fitxategiaren ariketa hau izan da:
program ErregistroenFitxategiaSortuEtaIkusi; const sBIDEA = 'C:\NereKarpeta\'; type tsKate249 = string[249]; { fitxategiaren izena luzea izan daitekeelako } tsKate15 = string[15]; trdIkaslea = record sNor: tsKate15; rNota: real; end; tfrdIkasleak = file of trdIkaslea; { sFitxIzen katea ezaguna da programa nagusian eta prozedura honetan } { izena ez da aldatuko, horregatik sarrerako parametroa da prozeduran } procedure FitxategiaSortuEtaBete(sFitxIzen: tsKate249); var f: tfrdIkasleak; rdElem: trdIkaslea; iKont: integer; iZenbat: integer; begin assign(f, sFitxIzen); { fitxategia uztartu } rewrite(f); { fitxategia sortu eta existitzekotan datuz hustu } repeat write('Zenbat ikasle dira? '); readln(iZenbat); until iZenbat > 0; for iKont:=1 to iZenbat do begin write(iKont:10, '. ikaslearen izena eman: '); readln(rdElem.sNor); { erregistroaren eremu bat teklatuz irakurri } write(iKont:10, '. ikaslearen nota eman: '); readln(rdElem.rNota); { erregistroaren eremu bat teklatuz irakurri } write(f, rdElem); { elementu bat (erregistro bat) fitxategia idatzi } end; close(f); { fitxategia itxi } end; { sFitxIzen katea ezaguna da programa nagusian eta prozedura honetan } { izena ez da aldatuko, horregatik sarrerako parametroa da prozeduran } procedure FitxategiaIkusi(sFitxIzen: tsKate249); var f: tfrdIkasleak; rdElem: trdIkaslea; begin assign(f, sFitxIzen); { fitxategia uztartu } reset(f); { fitxategia existitzen bada ireki } while not eof(f) do { fitxategiaren bukaeran ez gauden bitartean... } begin read(f, rdElem); { elementu bat (erregistro bat) fitxategitik irakurri } { erregistroaren eremu banaren edukia pantailaratu } writeln(filepos(f):10, '. ikaslearen izena: ', rdElem.sNor); writeln(filepos(f):10, '. ikaslearen nota: ', rdElem.rNota:0:2); end; close(f); end; { sFitxIzen katea ezaguna da programa nagusian eta prozedura honetan } { izena ez da aldatuko, horregatik sarrerako parametroa da prozeduran } function fnMediaKalkulatu(sFitxIzen: tsKate249): real; var f: tfrdIkasleak; rdElem: trdIkaslea; rMetatua: real; begin assign(f, sFitxIzen); { fitxategia uztartu } reset(f); { fitxategia existitzen bada ireki } rMetatua := 0.0; while not eof(f) do { fitxategiaren bukaeran ez gauden bitartean... } begin read(f, rdElem); { elementu bat (erregistro bat) fitxategitik irakurri } { nota bat gehiago pilatu rMetatua batukarian } rMetatua := rMetatua + rdElem.rNota; end; fnMediaKalkulatu := rMetatua / filesize(f); close(f); end; { Hiru fitxategien izenak ezagunak direlako programa nagusian eta } { prozedura honetan aldatzen ez direlako sarrerako parametroak dira } procedure BiFitxategiBerriSortu( sFitxIzen: tsKate249; sFitxIzenAprob: tsKate249; sFitxIzenSuspn: tsKate249); var f, f_A, f_S: tfrdIkasleak; rdElem: trdIkaslea; begin assign(f, sFitxIzen); reset(f); assign(f_A, sFitxIzenAprob); rewrite(f_A); assign(f_S, sFitxIzenSuspn); 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 eta programa nagusiko aldagaiak=============} var sFitxIzen: tsKate249; rBBA: real; sFitxIzenAprob: tsKate249; sFitxIzenSuspn: tsKate249; begin writeln; write('Eman fitxategiaren izena, adibidez (31Taldea): '); readln(sFitxIzen); //sFitxIzen := sBIDEA + sFitxIzen + '.dat'; (* edo hurrengoa *) sFitxIzen := concat(sBIDEA, sFitxIzen, '.dat'); (* edo aurrekoa *) writeln('==>', sFitxIzen, '<== bidea eta luzapena programak gehituta'); writeln; writeln('Fitxategiaren datuak jasotzen...'); FitxategiaSortuEtaBete(sFitxIzen); writeln; writeln('Fitxategi osoaren datuak:'); FitxategiaIkusi(sFitxIzen); writeln; rBBA := fnMediaKalkulatu(sFitxIzen); write('Nota guztien batezbesteko aritmetikoa: ', rBBA:0:2, ' puntu'); writeln; sFitxIzenAprob:= sBIDEA + 'Aprobatuak.dat'; sFitxIzenSuspn:= sBIDEA + 'Suspendituak.dat'; BiFitxategiBerriSortu(sFitxIzen, sFitxIzenAprob, sFitxIzenSuspn); writeln; writeln('Aprobatuen datuak:'); FitxategiaIkusi(sFitxIzenAprob); writeln; writeln('Suspendituen datuak:'); FitxategiaIkusi(sFitxIzenSuspn); writeln; writeln('======================='); writeln('RETURN sakatu amaitzeko'); write ('======================='); readln; end.
- 12. ASTEA | laborategi/mintegian egin denaren haritik. Erregistroen fitxategi bat daukagula (bi eremu: sNor katea eta rNota zenbakia) ondoko hiru lan hauek laster burutu ahalko dituzu:
- Ikasle baten izena teklatuz eman eta bilatu; ikaslea aurkitu ondoren bere nota aldatu, nota berria nota guztien batezbesteko aritmetikoa izan dadin
- Nota maximoa eta nota minimoa zehaztu; nota maximoa eta nota minimoa elkar trukatu
- Bi fitxategi sortu: batezbestekoaren gainetik daudenen fitxategia eta batezbestekoaren azpitik daudenen fitxategia
- Proiektua: hobekuntzak aitortu (2024) zereginaren bitartez zuen proiektuaren menuak izango duen K aukera proposatu (Entregatze-data: 2024ko apirilaren 18an, 23:59tan, larunbata)
- Ondoko hau urrunago dago: Proiektua amaiturik (2024) zereginaren bitartez zuen proiektua entregatu, hots, menuaren J eta K aukerak programatu (Entregatze-data: 2024ko maiatzaren 1ean, 23:59tan, astelehena)
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.