repeat-until etiketadun mezuak erakusten. Erakutsi mezu guztiak
repeat-until etiketadun mezuak erakusten. Erakutsi mezu guztiak

2024(e)ko otsailaren 17(a), larunbata

10. Ariketa: errepikapen kopuru ezezaguna (II)

ZER DAKIDAN:
FOR-TO-DO kontrol-egitura errepikakorra erabiltzeko gai naiz.



ZER IKASIKO DUDAN:
WHILE-DO kontrol-egitura errepikakorra ikasiko dut, eta REPEAT-UNTIL kontrol-egitura errepikakorra birpasatuko dut. Bide batez, zenbaki errealekin = konparatzailea ez dela erabili behar ikasiko dut ere.




ESKATZEN DEN PROGRAMA (I)

Zenbaki osoekin lan eginez, berdintzaren = ikurra kopuru osoekin. Lehen koadranteko zati bat definituko dugu, adibidean 4x4 espazio bat mugatu da. Ondoren, programak P puntu baten iPx eta iPy koordenatuak ausaz aukeratuko ditu 4x4 espazio horren barruan. Programaren erabiltzaileak P puntuaren koordenatuak asmatu beharko ditu. Horretarako, teklatuaren bitartez iQx eta iQy koordenatuak irakurriko ditu eta konparaketa egin ondoren emaitza pantailaratuko da.


Hona hemen programaren balizko bi irteera, irteera batean P puntuaren koordenatuak asmatzea lortu da eta bestean ez:


Zenbakiak ausaz lortzeko, berreskuratu 7. Ariketa: zenbakien funtzio estandarrak izeneko artikulua eta bertako (I) eta (II) programak gogoratu.




ESKATZEN DEN PROGRAMA (II)

Zenbaki errealekin lan eginez, berdintzaren = ikurra zenbaki errealekin. Lehen koadranteko zati bat definituko dugu, adibidean (0.0, 0.0) eta (4.0, 4.0) puntuen arteko espazio karratua mugatu da. Ondoren, programak P puntu baten rPx eta rPy koordenatuak ausaz aukeratuko ditu espazio horren barruan. Programaren erabiltzaileak P puntuaren koordenatuak asmatu beharko ditu. Horretarako, teklatuaren bitartez rQx eta rQy koordenatuak irakurriko ditu eta konparaketa egin ondoren emaitza pantailaratuko da.


Hona hemen programa desegokiaren balizko irteera bat, ikusten denez P eta Q puntuen koordenatuak konparatzerakoan = eragilea aplikatzen da eta hori ez dago ondo:


Eta hona hemen programa zuzenaren balizko irteera bat, ikusten denez P eta Q puntuen koordenatuak konparatzerakoan prezisio edo doitasun bat aukeratu da eta = eragilea aplikatu beharrean < eragilea aplikatzen da:






ESKATZEN DEN PROGRAMA (III)

Zenbaki osoekin lan eginez, berdintzaren = ikurra kopuru osoekin. Goiko I programan bezala, baina kasu honetan programaren erabiltzaileak 3 saiakera edukiko ditu gehienez. Lehen saiakeran asmatzen ez badu, ez zaio emango inolako informaziorik P puntuari buruz baina bigarren saiakera bat onartuko zaio. Bigarren saiakeran asmatzen ez badu, ez zaio emango inolako informaziorik P puntuari buruz baina hirugarren eta azken saiakera bat onartuko zaio.


Hona hemen programaren balizko irteera bat, repeat-until nagusiak saiakerak kontrolatzen ditu eta bere barneko repeat-until egiturek koordenatuen balioztapena zaintzen dute. Adibide honetan, hiru saiakera agortu ondoren ez dira P puntuaren koordenatuak asmatu:






ESKATZEN DEN PROGRAMA (IV)

Zenbaki errealekin lan eginez, berdintzaren = ikurra zenbaki errealekin. Goiko II programan bezala, baina kasu honetan programaren erabiltzaileak 3 saiakera edukiko ditu gehienez. Lehen saiakeran asmatzen ez badu, ez zaio emango inolako informaziorik P puntuari buruz baina bigarren saiakera bat onartuko zaio. Bigarren saiakeran asmatzen ez badu, ez zaio emango inolako informaziorik P puntuari buruz baina hirugarren eta azken saiakera bat onartuko zaio.


Hona hemen programaren balizko irteera bat, while-do nagusiak saiakerak kontrolatzen ditu eta bere barneko repeat-until egiturek koordenatuen balioztapena zaintzen dute. Adibide honetan, hirugarren saiakeran P puntuaren koordenatuak asmatu dira. Nahiz eta P eta Q puntuen koordenatuak berdin-bedinak ez izan, bai betetzen dute hurbil daudela ezarritako 0.1 doitasunarekin:







 

9. Ariketa: errepikapen kopuru ezezaguna (I)

ZER DAKIDAN:
FOR-TO-DO kontrol-egitura errepikakorra erabiltzeko gai naiz.



ZER IKASIKO DUDAN:
REPEAT-UNTIL kontrol-egitura errepikakorra ikasiko dut.




ESKATZEN DEN PROGRAMA (I)

7. Ariketa: zenbakien funtzio estandarrak artikuluaren (III) eta (IV) programetan balio positiboak irakurri behar dira teklatuaren bitartez. Baina nola behartzen dugu programaren erabiltzailea balio positiboak sar ditzan?

Erantzuna ondoko programa honetan erakusten da:
{ Zenbaki positiboak teklatuaren bitartez irakurtzen. }
program Ariketa__09_I ;
   
var
   rZenbakia, rEmaitza: real ;    
begin
   writeln ;
   writeln ;
   writeln ;
   
   writeln('Kopuru positiboekin lan egingo da.') ;
   writeln ;
   
   repeat
      write('Zenbaki baten logaritmoa lortzeko, kopuru positiboa eman (5.2 adibidez): ') ;
      readln(rZenbakia) ;
      if rZenbakia <= 0.0 then
         writeln('Errorea! sarrerako datua 0.0 baino handiagoa izan behar da') ;
   until rZenbakia > 0.0 ;
   
   rEmaitza := ln(rZenbakia) ;   
   
   writeln ;
   writeln('ln(', rZenbakia:0:2, ') = ', rEmaitza:0:2) ;
           
   writeln ; 
   writeln('====================================================') ;
   writeln('             RETURN sakatu amaitzeko') ;
   writeln('====================================================') ;
   readln ;
end. 





ESKATZEN DEN PROGRAMA (II)

7. Ariketa: zenbakien funtzio estandarrak artikuluaren (II) programan bi mugen arteko balio erreal batekin lan egiten da. Konkretuki, auto baten abiadura adierazten duen zenbaki erreal bat behar da, eta bere balioa bi mugen artekoa izan beharko da: behemuga 27.8 km/h eta goimuga 104.5 km/h. Gauza bera denborarako, autoak behar duen denbora 0.8 segundo eta 2.0 segundo artekoa izango da.

Abiadura eta denbora emanik, distantzia kalkulatzen duen programa idatzi. Abiadura adierazten duen balioa teklatuaren bitartez irakurri (27.8 km/h eta 104.5 km/h arteko balioa). Denbora adierazten duen balioa teklatuaren bitartez irakurri (0.8 segundo eta 2.0 segundo arteko balioa). Distantzia metrotan kalkulatu eta pantailaratu.