2024(e)ko apirilaren 6(a), larunbata

3. kontrola: proiektu bat

Proiektua bi azterketa-enuntziatuetan oinarritzen da:  

Hauxe da proiektuaren planteamendua:

  • datu_mota izeneko unitatea ezaguna da (dagokion datu_mota.pas iturburu-programa ematen da) eta C:\Proiektua karpetan kokatuko da. Unitate hau konpilatzean datu_mota.ppw fitxategia sortuko da
  • maiatza izeneko unitatea ezaguna da (dagokion maiatza.pas iturburu-programa ematen da) eta C:\Proiektua karpetan kokatuko da. Unitate hau konpilatzean maiatza.ow eta maiatza.ppw fitxategiak sortuko dira
  • uztaila izeneko unitatea ezaguna da (dagokion uztaila.pas iturburu-programa ematen da) eta C:\Proiektua karpetan kokatuko da. Unitate hau konpilatzean uztaila.ow eta uztaila.ppw fitxategiak sortuko dira
  • Proiektua_32_2.pas bezero-programa (aurreko unitate guztiekin batera karpeta berean kokatu, adibidearekin jarraituz C:\Proiektua karpetan). Programa hau konpilatzean Proiektua_32_2.exe fitxategia sortuko da



Fitxategien izenak eta bideak

Programen fitxategien kokapena. Ondoko fitxategi hauek C:\Proiektua karpetan gordeko dira:

  • datu_mota.pas
  • maiatza.pas
  • uztaila.pas
  • Proiektua_32_2.pas

Programen konpilatuen kokapena. Ondoko fitxategi hauek C:\Proiektua karpetan sortuko dira:

  • datu_mota.ppw
  • maiatza.ppw
  • uztaila.ppw
  • maiatza.ow
  • uztaila.ow
  • Proiektua_32_2.exe

Datuen fitxategien kokapena. Ondoko fitxategi hauek C:\Proiektua karpetan sortuko dira:

  • KROMOAK.DAT datu-fitxategia DatuFitxategiaSortu.pas programari esker lortzen da
  • JOKALARIAK.DAT datu-fitxategia eman egiten da

Nahi izanez gero datu-fitxategiak beste karpeta batean egon daitezke, adibidez C:\Datuak izeneko karpetan.



  datu_mota unitatea

Jarraian deskribatuko da datu_mota unitateak partekatzen duena. Hauek dira datu_mota unitateak definiturik dituen konstanteak eta datu-motak:

{---------------------------------------------------------------------------}   

UNIT datu_mota;

INTERFACE

uses
   crt;

const
   iMAX   = 340;
   sBIDEA = 'C:\Proiektua\';

type
   integer = smallint;      (* INTEGER-entzat 2 byte erabiltzera behartzen da *)
   
   tsKate25  = string[25];                    // maiatza eta uztaileko azterketa 
   tsKate199 = string[199];                   // maiatza eta uztaileko azterketa 

   trdBalioak = record                        // maiatza eta uztaileko azterketa 
                   iDefentsan,
                   iKontrolean,
                   iErasoan,
                   iGuztira: integer;
                end;

   trdKromoa = record                         // maiatza eta uztaileko azterketa 
                  iZenbakia : integer;
                  sIzena    : tsKate25;
                  sTokia,
                  sTaldea   : tsKate25;
                  rdBalioak : trdBalioak;
                  iZenbatAle: integer;
               end;

   tfrdBilduma = file of trdKromoa;           // maiatza eta uztaileko azterketa 

   taiBilduma   = array[1..iMAX] of integer;  // maiatzeko azterketa 
   
   trdJokalaria = record                      // uztaileko azterketa
                     sIzena   : tsKate25;
                     sTokia   : tsKate25;
                     boHartuta: boolean;
                  end;

   tardJokalariak = array[1..iMAX] of trdJokalaria;   // uztaileko azterketa
   
   tardNireTaldea = array[1..11] of trdJokalaria;     // uztaileko azterketa


IMPLEMENTATION

   (* hutsik *)
   
END.

{---------------------------------------------------------------------------}


  maiatza unitatearen interfazea

Dakigunez maiatza unitatea oso-osorik ematen da. Jarraian deskribatuko da maiatza unitateak partekatzen duena, hots, maiatza unitatearen interfazea. Hauek dira maiatza unitateak definiturik eta garaturik dituen azpiprogramak (bere datu-motak datu_mota unitatean zehaztuta daude):

{---------------------------------------------------------------------------}   

INTERFACE

   uses datu_mota;
   
   // maiatzeko eta uztaileko azterketako prozedura
   
   procedure JokalariaBilatu(sFitxIzen:tsKate199; sJokalaria:tsKate25; var rdKromoBat:trdKromoa);
   
   // maiatzeko azterketako azpiprogramak
   
   procedure BildumarenFitxategiaIkusi(sFitxIzenBilduma: tsKate199);
   
   function fniZenbatKromo(sFitxIzen:tsKate199): integer;
   
   procedure FitxategikoDatuakArrayra(sFitxIzen:tsKate199; var aiBilduma:taiBilduma; var iLuzera: integer);
   
   procedure TaulaBezalaErakutsi(const rdKromoBat:trdKromoa);
   
   procedure KromoBatErakutsi(const rdKromoBat:trdKromoa);
   
   procedure BildumaErakutsi(sFitxIzen:tsKate199);
   
   procedure FaltaDirenakZerrendatu(const aiBilduma:taiBilduma; iLuzera: integer);
   
   procedure KromoBerriarenBalioakEguneratu(sFitxIzen:tsKate199; iZbk:integer);
   
   function fnsIzenaLortu(sFitxIzen:tsKate199; iZbk:integer): tsKate25;
   
   procedure EguneratuAleakFitxategianArraytik(sFitxIzen:tsKate199; const aiBilduma:taiBilduma);

{---------------------------------------------------------------------------}


  uztaila unitatearen interfazea

Jarraian deskribatuko da uztaila unitateak partekatzen duena. Hauek dira uzaila unitateak definiturik eta garaturik dituen azpiprogramak (bere datu-motak datu_mota unitatean zehaztuta daude, eta JokalariaBilatu prozedura maiatza unitatean garaturik dago):

{---------------------------------------------------------------------------}   

INTERFACE

   uses datu_mota, maiatza;
   
   // uztaileko azterketako azpiprogramak
   
   function fncKonfigurazioaHautatu: char;

   procedure FitxategikoDatuBatzukArrayBatera(        sFitxIzen: tsKate199;
                                              sPostuaZelaian: tsKate25; 
                                           var ardJokalariak: tardJokalariak; 
                                                 var iLuzera: integer);
   
   procedure JokalarienArrayBatIkusi(const ardJokalariak:tardJokalariak; iLuzera: integer);
   
   procedure TaldeaIkusi(const ardNireTaldea: tardNireTaldea);
   
   procedure JokalariBatAukeratu(  var ardJokalariak: tardJokalariak;
                                   iLuzJokalariak: integer;
                                var ardNireTaldea: tardNireTaldea;
                               var iLuzNireTaldea: integer;
                                          iZenbat: integer);
   
   procedure TaulaModuanErakutsi(const rdKromoBat:trdKromoa);
   
   procedure TaldearenDatuakPantailaratu(          sFitxIzen: tsKate199; 
                                         const ardNireTaldea: tardNireTaldea);

{---------------------------------------------------------------------------}


  Proiektua_32_2 bezero-programaren deskribapena

Proiektua_32_2 bezero-programaren oinarria 2022-23 ikasturteko maiatzan eta uztailan jarritako azterketetan dago. Esan daiteke Proiektua_32_2 bezero-programak 3 zati dituela:

  1. Iazko ohiko deialdian, 2022-23 ikasturtean, jarritako azterketari dagokion kodea (menuaren A., B., C., D., E. eta F. aukerak)
  2. Iazko ez-ohiko deialdian, 2022-23 ikasturtean, jarritako azterketari dagokion kodea (menuaren G., H. eta I. aukerak)
  3. Ikasleek egin beharreko lana (menuaren J. eta K. aukerak)

Hauxe da Proiektua_32_2 bezero-programaren kodea (kolorei garrantzirik ez eman):

{ JOKALARIAK.DAT datu-fitxategia edo KROMOAK.DAT datu-fitxategia erabil daiteke }
{ lehen bildumak 340 kromo ditu eta bigarren bildumak 21 kromo (edo 30 edo 39). }
{ JOKALARIAK.DAT datu-fitxategia aldez aurretik sorturik dago eta emanten da.   }
{ KROMOAK.DAT lortzeko aldiz DatuFitxategiaSortu.pas programa erabili behar da. }


program Proiektua_32_2;

uses
   datu_mota, maiatza, uztaila, crt, sysutils;

(* Programak honek behar dituen datu-motak eta konstanteak datu_mota.pas
   izeneko unitatearen interfazean definiturik daude.                   *)
   
(* Programa honek behar dituen azpiprogramak maiatza.pas unitatean eta 
   uztaila.pas unitatean garaturik daude (interfazetan agertzen dira).  *)


{------------------MENUA-------------------------------------------------------}
function fncMenua: char;
  var
     cHautapena: char;
  begin
     clrscr;
     writeln('=============================================================================');
     writeln('|                                  MENUA                                    |');
     writeln('=============================================================================');
     write('|  ');
     textcolor(Yellow);
     write('A.  Kromo guztien informazioa erakutsi');
     textcolor(LightGray);
     writeln('            (MAIATZEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Yellow);
     write('B.  Falta diren kromoak zerrendatu');
     textcolor(LightGray);
     writeln('                (MAIATZEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Yellow);
     write('C.  Kromo bat sartu');
     textcolor(LightGray);
     writeln('                               (MAIATZEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Yellow);
     write('D.  Kromo bat trukatu');
     textcolor(LightGray);
     writeln('                             (MAIATZEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Yellow);
     write('E.  Jokalari baten informazioa erakutsi');
     textcolor(LightGray);
     writeln('           (MAIATZEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Yellow);
     write('F.  Ale kopuruekin fitxategia eguneratu');
     textcolor(LightGray);
     writeln('           (MAIATZEKO AZTERKETA)  |');
     writeln('|---------------------------------------------------------------------------|');
     write('|  ');
     textcolor(Cyan);
     write('G.  4 toki-arrayak sortu eta ikusi');
     textcolor(LightGray);
     writeln('                (UZTAILEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Cyan);
     write('H.  Taldearen konfigurazioa hautatu');
     textcolor(LightGray);
     writeln('               (UZTAILEKO AZTERKETA)  |');
     write('|  ');
     textcolor(Cyan);
     write('I.  Taldea osatu eta bere puntuazioa kalkulatu');
     textcolor(LightGray);
     writeln('    (UZTAILEKO AZTERKETA)  |');
     writeln('|---------------------------------------------------------------------------|');
     write('|  ');
     textcolor(LightRed);
     write('J.  Bilduma-fitxategitik kromo bat kendu eta beste kromo bat txertatu');
     textcolor(LightGray);
     writeln('    |');
     write('|  ');
     textcolor(LightRed);
     write('K.  Lau fitxategi sortu: atezainak, atzelariak, erdilariak, aurrelariak');
     textcolor(LightGray);
     writeln('  |');
     writeln('|---------------------------------------------------------------------------|');
     writeln('|  L.  Amaitu                                                               |');
     writeln('=============================================================================');
     repeat
        write('Zure aukera: ':20);
        cHautapena := readkey;
        cHautapena := upcase(cHautapena);
        writeln(cHautapena);
     until (cHautapena >= 'A') and (cHautapena <= 'L');
     fncMenua := cHautapena;
  end;



{==================PROGRAMA NAGUSIAREN ALADAGIAK===============================}
var
   sFitxIzen : tsKate199;         // maiatzeko azterketa eta uztaileko azterketa

   aiBilduma : taiBilduma;        // maiatzeko azterketa
   iLuzera   : integer;           // maiatzeko azterketa
   cAukera   : char;              // maiatzeko azterketa
   cJarraitu : char;              // maiatzeko azterketa
   iZbk      : integer;           // maiatzeko azterketa
   iZbkJaso  : integer;           // maiatzeko azterketa
   iZbkEman  : integer;           // maiatzeko azterketa
   sJokalaria: tsKate25;          // maiatzeko azterketa
   rdKromoBat: trdKromoa;         // maiatzeko azterketa
   
   boTokiArrayakSortuta             : boolean;            // uztaileko azterketa
   boTaldearenKonfigurazioaHautatuta: boolean;            // uztaileko azterketa
   ardAtezainak                     : tardJokalariak;     // uztaileko azterketa
   ardAtzelariak                    : tardJokalariak;     // uztaileko azterketa
   ardErdilariak                    : tardJokalariak;     // uztaileko azterketa
   ardAurrelariak                   : tardJokalariak;     // uztaileko azterketa
   iLuzAtezainak                    : integer;            // uztaileko azterketa
   iLuzAtzelariak                   : integer;            // uztaileko azterketa
   iLuzErdilariak                   : integer;            // uztaileko azterketa
   iLuzAurrelariak                  : integer;            // uztaileko azterketa
   
   iNireAtzelariak : integer;             // uztaileko azterketa
   iNireErdilariak : integer;             // uztaileko azterketa
   iNireAurrelariak: integer;             // uztaileko azterketa
   ardNireTaldea   : tardNireTaldea;      // uztaileko azterketa
   iLuzNireTaldea  : integer;             // uztaileko azterketa

{==================PROGRAMA NAGUSIA============================================}
begin
   clrscr;
   writeln('Bildumaren datu-fitxategiaren izena "KROMOAK.DAT" edo "JOKALARIAK.DAT" izan');
   writeln('daiteke, beste fitxategiekin batera "C:\Proiektua" karpetan aurkituko da.');
   writeln;
   write('Bildumaren fitxategiaren izena eman ("KROMOAK" edo "JOKALARIAK"): ');
   readln(sFitxIzen);
   sFitxIzen := sBIDEA + sFitxIzen + '.DAT';
   
   if not fileexists(sFitxIzen) then
   begin
      writeln('ERROREA!!! "', sFitxIzen, '" izeneko fitxategirik ez da.');
      writeln;
      write('EDOZEIN tekla sakatu programatik irteteko...  ');
      repeat until keypressed;
   end
   else
   begin
      writeln;
      BildumarenFitxategiaIkusi(sFitxIzen);
      writeln;
      writeln('Bilduma osoaren kromo kopurua: ', fniZenbatKromo(sFitxIzen));
      writeln;
      writeln('Programaren exekuzioa hasteko RETURN sakatu...');
      readln;
      
      boTokiArrayakSortuta := FALSE;
      boTaldearenKonfigurazioaHautatuta := FALSE;
      
      FitxategikoDatuakArrayra(sFitxIzen, aiBilduma, iLuzera);
      repeat
         cAukera := fncMenua;
         case cAukera of
           'A': BildumaErakutsi(sFitxIzen);
           'B': FaltaDirenakZerrendatu(aiBilduma, iLuzera);
           'C': begin
                   repeat
                      writeln;
                      write('Kromoaren zenbakia (1 eta ', iLuzera, ' artekoa): ');
                      readln(iZbk);
                   until (iZbk >= 1) and (iZbk <= iLuzera);
                   
                   if aiBilduma[iZbk] = 0 then
                   begin
                      writeln(fnsIzenaLortu(sFitxIzen, iZbk), ' jokalaria lortu dugu!!!');
                      writeln('Kromo berria delako datu hauek behar ditugu:');
                      KromoBerriarenBalioakEguneratu(sFitxIzen, iZbk);
                      aiBilduma[iZbk] := 1;
                   end
                   else
                   begin
                      writeln(fnsIzenaLortu(sFitxIzen, iZbk), ' jokalariaren beste ale bat gehiago!!!');
                      aiBilduma[iZbk] := aiBilduma[iZbk] +1;
                   end;
                end;
           'D': begin
                   writeln;
                   repeat
                      write('Hartzen duzun kromoaren zenbakia (1 eta ', iLuzera, ' artekoa): ');
                      readln(iZbkJaso);
                   until (iZbkJaso >= 1) and (iZbkJaso <= iLuzera);
                   repeat
                      write('Emaiten duzun kromoaren zenbakia (1 eta ', iLuzera, ' artekoa): ');
                      readln(iZbkEman);
                   until (iZbkEman >= 1) and (iZbkEman <= iLuzera);
                   
                   case aiBilduma[iZbkEman] of
                      0: writeln('ERROREA!!! Kromo hori ez daukazu');
                      1: begin
                            writeln(fnsIzenaLortu(sFitxIzen, iZbkEman), ' jokalariaren kromoa trukatzera zoaz.');
                            write('Kromo horren ale bakarra daukazu. Trukatu nahi duzu? (B/E) ');
                            readln(cJarraitu);
                            if upcase(cJarraitu)='B' then
                            begin
                               aiBilduma[iZbkEman] := aiBilduma[iZbkEman] -1;
                               if aiBilduma[iZbkJaso] = 0 then        (* kromo berria da *)
                               begin
                                  writeln('Trukaketari esker ', fnsIzenaLortu(sFitxIzen, iZbkJaso), ' jokalaria lortu dugu!!!');
                                  KromoBerriarenBalioakEguneratu(sFitxIzen, iZbkJaso);
                                  aiBilduma[iZbkJaso] := 1;
                               end
                               else
                                  aiBilduma[iZbkJaso] := aiBilduma[iZbkJaso] +1;
                            end;
                         end;
                      else  { case }
                         begin
                            aiBilduma[iZbkEman] := aiBilduma[iZbkEman] -1;
                            if aiBilduma[iZbkJaso] = 0 then        (* kromo berria da *)
                            begin
                               writeln('Trukaketari esker ', fnsIzenaLortu(sFitxIzen, iZbkJaso), ' jokalaria lortu dugu!!!');
                               KromoBerriarenBalioakEguneratu(sFitxIzen, iZbkJaso);
                               aiBilduma[iZbkJaso] := 1;
                            end
                            else
                               aiBilduma[iZbkJaso] := aiBilduma[iZbkJaso] +1;
                         end;
                   end;
                end;
           'E': begin
                   writeln;
                   write('Pantailaratuko den jokalariaren izena: ');
                   readln(sJokalaria);
                   writeln;
                   JokalariaBilatu(sFitxIzen, sJokalaria, rdKromoBat);
                   if rdKromoBat.iZenbakia <> -1 then
                      KromoBatErakutsi(rdKromoBat)
                   else
                      writeln('ERROREA!! "', sJokalaria, '" ez da aurkitu');
                end;
           'F': begin
                   clrscr;
                   writeln('Arraytik eguneratu baino lehen, bildumaren egoera hauxe da:');
                   BildumaErakutsi(sFitxIzen);
                   EguneratuAleakFitxategianArraytik(sFitxIzen, aiBilduma);
                   writeln;
                   writeln;
                   writeln('Aleak eguneratu ondoren, bildumaren egoera berria hauxe da:');
                   BildumaErakutsi(sFitxIzen);
                end;
           'G': begin
                   clrscr;
                   boTokiArrayakSortuta := TRUE;
                   writeln;
                   writeln;
                   textcolor(Cyan);
                   writeln('1. URRATSA: LAU ARRAYAK BETE ETA IKUSI');
                   writeln('======================================');
                   textcolor(LightGray);
                   writeln;
                   FitxategikoDatuBatzukArrayBatera(sFitxIzen, 'Atezaina', ardAtezainak, iLuzAtezainak);
                   JokalarienArrayBatIkusi(ardAtezainak, iLuzAtezainak);
                   FitxategikoDatuBatzukArrayBatera(sFitxIzen, 'Atzelaria', ardAtzelariak, iLuzAtzelariak);
                   JokalarienArrayBatIkusi(ardAtzelariak, iLuzAtzelariak);
                   FitxategikoDatuBatzukArrayBatera(sFitxIzen, 'Erdilaria', ardErdilariak, iLuzErdilariak);
                   JokalarienArrayBatIkusi(ardErdilariak, iLuzErdilariak);
                   FitxategikoDatuBatzukArrayBatera(sFitxIzen, 'Aurrelaria', ardAurrelariak, iLuzAurrelariak);
                   JokalarienArrayBatIkusi(ardAurrelariak, iLuzAurrelariak);
                end;
           'H': begin
                   clrscr;
                   if not boTokiArrayakSortuta then
                   begin
                      write('Toki-arrayrik ez dago, menuaren ');
                      textcolor(Cyan);
                      write('G.');
                      textcolor(LightGray);
                      writeln(' aukera hautatu beharra dago');
                   end
                   else
                   begin
                      boTaldearenKonfigurazioaHautatuta := TRUE;
                      writeln;
                      writeln;
                      textcolor(Cyan);
                      writeln('2. URRATSA: TALDEAREN KONFIGURAZIOA ERABAKIZ TALDEA OSA DAITEKEEN FROGATU');
                      writeln('=========================================================================');
                      textcolor(LightGray);
                      writeln;
                      writeln('Zure taldeak zer estrategia erabiliko du? Konfigurazioa bat hautatu');
                      cAukera := fncKonfigurazioaHautatu;
                      case cAukera of
                        'A': begin
                                iNireAtzelariak  := 4; 
                                iNireErdilariak  := 4; 
                                iNireAurrelariak := 2;
                             end;
                        'B': begin
                                iNireAtzelariak  := 4; 
                                iNireErdilariak  := 5; 
                                iNireAurrelariak := 1;
                             end;
                        'C': begin
                                iNireAtzelariak  := 4; 
                                iNireErdilariak  := 3; 
                                iNireAurrelariak := 3;
                             end;
                        'D': begin
                                iNireAtzelariak  := 3; 
                                iNireErdilariak  := 4; 
                                iNireAurrelariak := 3;
                             end;
                      end;  { case }
                      writeln;
                      write(iNireAtzelariak, '-', iNireErdilariak, '-', iNireAurrelariak, ' konfigurazioa duen taldea ikusteko, menuaren ');
                      textcolor(Cyan);
                      write('I.');
                      textcolor(LightGray);
                      writeln(' aukera hautatu');
                   end;     { else }
                end;
           'I': begin
                   clrscr;
                   if not boTaldearenKonfigurazioaHautatuta then
                   begin
                      write('Konfigurazio ezagunik ez dago, menuaren ');
                      textcolor(Cyan);
                      write('H.');
                      textcolor(LightGray);
                      writeln(' aukera hautatu beharra dago');
                   end
                   else
                   begin
                      if (iLuzAtezainak >= 1) and
                         (iLuzAtzelariak >= iNireAtzelariak) and
                         (iLuzErdilariak >= iNireErdilariak) and
                         (iLuzAurrelariak >= iNireAurrelariak) then
                      begin
                         writeln;
                         writeln;
                         textcolor(Cyan);
                         writeln('3. ETA 4. URRATSAK: TALDEA OSATU, ERAKUTSI ETA BALIOA ZENBATU');
                         writeln('=============================================================');
                         textcolor(LightGray);
                         writeln;
         
                         iLuzNireTaldea := 0;
                         writeln('------------------------------------------');
                         JokalariBatAukeratu(ardAtezainak, iLuzAtezainak, ardNireTaldea, iLuzNireTaldea, 1);
                         writeln('------------------------------------------');
                         JokalariBatAukeratu(ardAtzelariak, iLuzAtzelariak, ardNireTaldea, iLuzNireTaldea, iNireAtzelariak);
                         writeln('------------------------------------------');
                         JokalariBatAukeratu(ardErdilariak, iLuzErdilariak, ardNireTaldea, iLuzNireTaldea, iNireErdilariak);
                         writeln('------------------------------------------');
                         JokalariBatAukeratu(ardAurrelariak, iLuzAurrelariak, ardNireTaldea, iLuzNireTaldea, iNireAurrelariak);
                         writeln('------------------------------------------');
         
                         writeln;
                         JokalarienArrayBatIkusi(ardAtezainak, iLuzAtezainak);
                         JokalarienArrayBatIkusi(ardAtzelariak, iLuzAtzelariak);
                         JokalarienArrayBatIkusi(ardErdilariak, iLuzErdilariak);
                         JokalarienArrayBatIkusi(ardAurrelariak, iLuzAurrelariak);
         
                         textcolor(Yellow);
                         writeln('Lortutako taldea:');
                         TaldeaIkusi(ardNireTaldea);
                         textcolor(LightGray);
                         
                         TaldearenDatuakPantailaratu(sFitxIzen, ardNireTaldea);
                      end
                      else
                         writeln('Eskatzen duzun taldea ezin daiteke osatu!!!');
                   end;
                end;
           'J': begin
                   clrscr;
                   textcolor(LightRed);
                   writeln('Bilduma-fitxategitik kromo bat kendu eta beste kromo bat txertatu.');
                   writeln('"J_aukera.exe" programa exekutagarriaren funtzionalitatea hemen kokatu.');
                   textcolor(LightGray);
                   writeln;
                end;
           'K': begin
                   clrscr;
                   textcolor(LightRed);
                   writeln('Bilduma-fitxategitik abiatuta lau fitxategi berri sortuko dira.');
                   writeln('Fitxategi berrien elementuak bi posizioko arrayak izango dira.');
                   textcolor(LightGray);
                   writeln;
                end;
         end;  { case }
         writeln;
         writeln;
         writeln ('RETURN sakatu jarritzeko');
         write   ('========================  ');
         readln;
      until cAukera = 'L';
      
   end;     { else, datu-fitxategirik bada }

end.        { PROGRAMAREN BUKAERA }

Hau da Proiektua_32_2 bezero-programa gidatzeko erabiliko den menua:

 ============================================================================= 
 |                                  MENUA                                    | 
 ============================================================================= 
 |  A.  Kromo guztien informazioa erakutsi            (MAIATZEKO AZTERKETA)  | 
 |  B.  Falta diren kromoak zerrendatu                (MAIATZEKO AZTERKETA)  |
 |  C.  Kromo bat sartu                               (MAIATZEKO AZTERKETA)  |
 |  D.  Kromo bat trukatu                             (MAIATZEKO AZTERKETA)  |
 |  E.  Jokalari baten informazioa erakutsi           (MAIATZEKO AZTERKETA)  |
 |  F.  Ale kopuruekin fitxategia eguneratu           (MAIATZEKO AZTERKETA)  |
 |---------------------------------------------------------------------------| 
 |  G.  4 toki-arrayak sortu eta ikusi                (UZTAILEKO AZTERKETA)  | 
 |  H.  Taldearen konfigurazioa hautatu               (UZTAILEKO AZTERKETA)  | 
 |  I.  Taldea osatu eta bere puntuazioa kalkulatu    (UZTAILEKO AZTERKETA)  | 
 |---------------------------------------------------------------------------| 
 |  J.  Bilduma-fitxategitik kromo bat kendu eta beste kromo bat txertatu    | 
 |  K.  Lau fitxategi sortu: atezainak, atzelariak, erdilariak, aurrelariak  | 
 |---------------------------------------------------------------------------| 
 |  L.  Amaitu                                                               | 
 =============================================================================
      Zure aukera:  
 Horiz  2023ko maiatzeko azterketaren aukerak (kode osoa ematen da).  Cyan-urdinez  2023ko uztaileko azterketa menu bezala jarrita (kode osoa ematen da).  Gorriz  ikasleak egin beharreko lana.  Zuriz  azalpenak eta gainerako informazioa

Goian ikusten denez, menuak hiru zati ditu. Lehen zatia eta bigarren zatia emanak dira eta ikasleek hirugarren zatia garatuko dute:

  1. zatia:   2023ko maiatzeko programa ( A ,  B ,  C ,  D ,  E  eta  F  aukerak)
  2. zatia:   2023ko uztaileko programa ( G ,  H , eta  I  aukerak)
  3. zatia:   ikasleek bete beharreko lana ( J  eta  K  aukerak)

Beraz, J aukerakoa eta K aukerakoa ikasleak garatuko dituen funtzionalitateak dira: ikus Bilduma-fitxategiarekin lanean (menuaren J aukera) eta ikus Lau fitxategi sortu (menuaren K aukera). Programa osoa eGela bitartez bidaliko due ikasleak (ikusi eGela > 32-2 LABORATEGIA > Proiektua: 3. kontrola prestatzen izeneko zeregina).



  Proiektuaren ebaluazioa (3. kontrolaren ebaluazioa) 

Ikasturtearen hasierako ebaluazioaren banaketa eta egin beharrekoak:



Proiektuaren kalifikazioa

Proiektuaren programa gehi proiektuari lotutako hirugarren kontrolak honako hau balio dute: 0,5 + 1,0 = 1,5 puntu.


Hirugarren kontrola, ariketa handia (proiektua)


Proiektuaren emaitza (proiektuaren programa eta berari dagokion dokumentazioa)


%33a


0,5 puntu

Iazko azterketa baten inguruan jardungo dugu kurtsoaren azken asteetan.

15. astean, azken praktika egunean, proiektuari buruzko bakarkako froga:



     
     
    %66a










    1,0 puntu








      Proiektuaren baliabideak 

    Hona hemen, Windows sistema baterako, behar diren baliabide guztiak fitxategi trinko batean bildurik. 2024koProiektua32-2_windows.zip fitxategi trinkoak barneratzen duena:

    • Proiektua_32_2.pas bezero-programaren iturburu-kodea
    • datu_mota.pas unitatearen iturburu-kodea
    • maiatza.pas unitatearen iturburu-kodea
    • uztaila.pas unitatearen iturburu-kodea

    • DatuFitxategiaSortu.pas bezero-programaren iturburu-kodea
    • bilduma21.pas unitatearen iturburu-kodea
    • bilduma30.pas unitatearen iturburu-kodea
    • bilduma39.pas unitatearen iturburu-kodea

    • KROMOAK.DAT datu-fitxategia
    • JOKALARIAK.DAT datu-fitxategia
           



    iruzkinik ez:

    Argitaratu iruzkina

    Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.