Orriak

2017-06-22

hamartar-bitar

Karaktere-kateekin lan eginez; kopuru bat sistema hamartarrean emanik, dagokion zenbaki bitarra lortu nahi da.

Soilik alde osoa duen zenbaki hamartarraren bihurketa egiteko, hainbat zatiketa burutuko dira. Zatikizuna zenbaki hamartarra eta zatitzailea 2, beraz hondarra 0 edo 1 izango da eta zatidura uneren batean 0-ra helduko da. Zatidura 0 denean, hondarral atzekoz aurrera hartzen dira eta horixe da emaitza, hots, bilatzen den zenbaki bitarra. Irudi honen ezkerreko laukia ikusi: 

Abiapuntuko zenbaki hamartarrak alde osoa eta alde dezimala badu, berdintsu jokatzen da. Alde osoarekin zatiketak egiten dira, eta alde dezimalarekin biderketak egiten dira. Alde osoaren zatiketak bukatuko dira zatidura 0 denean. Alde dezimalarein lotuta dauden biderketak bukatuko dira biderkaduraren emaitza 0 denean. Ikusi irudi honen eskubiko laukia:

Ariketaren enuntziatu laburra hau da:
  • XX.YYY formatuko zenbaki hamartar bat karaktere-kate bezala teklatuaren bitartez irakurri, eta dagokion zenbaki bitarraren karaktere-katea lortu.
Enuntziatu horretatik ondokoa ondorioztatzen da:
  • Teklatuz irakurritako sarrerako karaktere-katea XX.YYY da.
  • Emaitza den zenbaki bitarren karaktere-katearen neurria zehazteko, hau gogoratu:
    • 1 bit, 0 [0] eta 1 [1] artekoak
    • 2 bit, 2 [10] eta 3 [11] artekoak gehi aurreko biak
    • 3 bit, 4 [100] eta 7 [111] artekoak gehi aurreko lauak
    • 4 bit, 8 [1000] eta 15 [1111] artekoak gehi aurreko zortziak
    • 5 bit, 16 [10000] eta 31 [11111] artekoak gehi aurreko hamaseiak
    • 6 bit, 32 [100000] eta 63 [111111] artekoak gehi aurreko guztiak
    • 7 bit, 64 [1000000] eta 127 [1111111] artekoak gehi aurreko guztiak
    • 8 bit, 128 [10000000] eta 255 [11111111] artekoak gehi aurreko guztiak
    • (9 bit), 256 [100000000] eta 511 [111111111] artekoak gehi aurreko guztiak
    • (10 bit), 512 [1000000000] eta 1023 [1111111111] artekoak gehi aurreko guztiak
    • (11 bit), 1024 [10000000000] eta 2047 [11111111111] artekoak gehi aurreko guztiak
  • XX hamartar nagusiena 99 izanik, 7 bitekin nahikoa da: 1111111 -> 127 delako.
  • YYY hamartar nagusiena 999 denez, 10 bitekin nahikoa da: 1111111111 -> 1023 delako.
  • Sarrerako-katea: 2+1+3=6 karakterekoa (2 alde osoa, 1 puntua eta 3 alde dezimala).
  • Irteerako-katea: 7+1+10=18 karakterekoa (7 alde osoa, 1 puntua eta 10 alde dezimala).



HamartarBitar_01.pas
Programa honek teklatuaren bitartez jasotzen duen datua, karaktere-kate bat, aztertu egiten du eta baldintza zorrotz hauek bete beharko ditu:
  • Alde osoan 2 karaktere izan behar dira.
  • Alde osoaren 2 karaktereak zifrak izan behar dira.
  • Alde dezimalean 3 karaktere izan behar dira.
  • Alde dezimalaren 3 karaktereak zifrak izan behar dira.
  • Alde osoa eta alde dezimala banatzen duen 3. karakterea puntua izango da.
Hauek dira, adibidez, onartzen diren sarrerak:
     45.287     81.607     12.625     45.000     00.504



Baldintza guztiak betetzen badira, bihurketa burutzen da bi etapak betez:
  1. Alde osoarekin zatiketak egiten dira bihurketa bitarra burutuz (irudian 12 datuak 1100 bitarteko emaitza ematen du, karaktere-kate bat). Bitarteko emaitzari behar beste 0 gehitzen zaizkio aurretik (irudian,  1100 bitarteko emaitzatik 0001100 karaktere-kate ateratzen da).
  2. Alde dezimalarekin biderketak egiten dira bihurketa bitarra burutuz (irudian 0.625 datuak 101 bitarteko emaitza ematen du, karaktere-kate bat). Bitarteko emaitzari behar beste 0 gehitzen zaizkio atzetik (irudian,  101 bitarteko emaitzatik 1010000000 karaktere-kate ateratzen da).
Hauxe da ariketari erantzuten dion HamartarBitar_01.pas iturburu-programa.



HamartarBitar_02.pas
Programa honek teklatuaren bitartez jasotzen duen datua aztertu egiten du:
  • Punturik dagoen ala ez.
  • Punturik badago:
    • Puntuaren aurretik zenbat karaktere dauden (0, 1, 2 edo gehiago).
    • Puntuaren atzetik zenbat karaktere dauden (0, 1, 2, 3 edo gehiago).
  • Punturik ez badago, zenbat karaktere dauden (0, 1, 2 edo gehiago). 
  • Karaktereen kopuruak egokiak badira, karaktereak zifrak ote diren frogatzen da.
Hauek dira, adibidez, onartzen diren sarrerak:
    45     6     8.67     07.3     54.729     45.     .59     .4

Baldintza guztiak betetzen badira, bihurketa burutzen da bi etapak betez:
  1. Alde osoarekin zatiketak egiten dira bihurketa bitarra burutuz. Baina orain alde osoaren karaktere kopurua kalkulatu beharra dago eta aintzakotzat hartu, ez delako beti 2 izango.
  2. Alde dezimalarekin biderketak egiten dira bihurketa bitarra burutuz. Baina orain alde osoaren karaktere kopurua kalkulatu beharra dago eta aintzakotzat hartu, ez delako beti 3 izango.
Hauxe da ariketari erantzuten dion HamartarBitar_02.pas iturburu-programa.

iruzkinik ez:

Argitaratu iruzkina