2023(e)ko apirilaren 14(a), ostirala

12. ASTEA | etxerako lana

 12. astea (2023/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







  • Ondoko hau urrunago dago: Proiektua amaiturik (2023) zereginaren bitartez zuen proiektua entregatu, hots, menuaren 8. eta 9. aukerak programatu (Entregatze-data: 2023ko maiatzaren 1ean, 23:59tan, astelehena)





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...