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:
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | 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.