Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Karel Robota
2.1
(Apunteak eta Ariketak)
Aurkibidea:
00.- Sarrera
01.- Karel robotaren oinarrizko mundua
02.- Karel robotaren oinarrizko aginduak
03.- Programa exekutatu
04.- Programaren akatsak zuzendu
05.- Oinarrizko agindu berriak
06.- Karel robotaren mundu aurreratua
07.- Baldintzapeko aginduak
08.- Baldintzapeko agindu aurreratua
09.- Agindu errepikakorra
10.- Agindu errepikakor aurreratua
11.- Baldintza aurreratuak
12.- Agindu berriak sortu
13.- Iruzkinak
14.- Agindu laburpena
Bibliografia:
Karel the Robot: a Gentle Introduction to the Art of Programming with Pascal
John Wiley & Sons
Richard Pattis
00.- Sarrera
Informatika gaiari buruz berba egiten dugunean bereizketa bat egin behar dugu; izan
ere, bi informatika mota daudela esan dezakegu:
- Erabiltzaile Informatika:
Informatika mota honetan informatikaren erabileran jartzen da arreta. Testu
prozesadorea, kalkulu orria, posta elektronikoa eta beste edozein programa
erabiltzen dituen pertsonak informatikaren erabiltzaileak direla esaten da. Beste
era batean esanda, pertsona hauek informatika erabili egiten dute.
- Informatika Profesionala:
Informatika mota honetan arreta ez da erabileran jartzen. Izan ere, arreta
programen sorkuntzan jartzen da. Testu prozesadorea, kalkulu orria eta beste
edozein programa sortzen dituen pertsonak informatikariak direla esaten da, edo
informatika profesionalean egiten dutela lan. Beste era batean esanda, pertsona
hauek informatika edo programak sortu egiten dituzte.
Gu ohituta gaude informatika programak erabiltzen (testu prozesadorea, marrazketa
programak,...). Bada, ikasgai honetan, programa horiek zelan egiten diren ikusiko dugu. Egia
esanda, hemen ikusiko duguna oso oinarrizkoa izango da eta, beraz, ikasitakoak ez digu
halako programak egiteko balio izango; baina informatikarekin lotutako goi edo erdi mailako
ikasketak (ingeniaritza batzuk, lanbide heziketa ziklo batzuk,...) egiteko asmoa baldin
badaukagu, hemen ikasitakoa baliagarria izan daiteke.
Informatika programak agindu multzo batez osatutako testuak dira. Agindu horiek
ordenagailuak zer egin behar duen zehazteko balio dute. Adibidez, testu prozesadore
gehienetan badago botoi bat aukeratutako testua letra lodiz jartzeko; bada, testu prozesadorea
egin duen pertsonak agindu bat jarri du programan erabiltzaileak botoi hori sakatzean testua
lodiz agertzeko.
Aipatutako aginduak idazteko ordenagailuak ulertzen duen hizkuntza bat erabili behar
da. Kontuan hartu ordenagailuak ez duela ulertzen gizakiok erabili ohi ditugun hizkuntzak.
Ordenagailuaren barrua zirkuitu elektronikoz osatuta dago eta zirkuitu horietatik korrontea
dabil. Hobeto esanda, instant bakoitzean bi gauza gerta daitezke: korrontea ibiltzea edo
korrontea ez ibiltzea. Hori da, esaterako, bonbila batean gertatzen dena: bonbila piztean
korrontea dabil eta bonbila itzaltzean korronteak ibiltzeari lagatzen dio. Korrontea dabilela
adierazteko 1 ikurra erabiltzen da eta korrontea ez dabilela adierazteko 0 ikurra. Adibidez, A
tekla sakatzean teklatutik hainbat korronte seinale bidaltzen zaizkio ordenagailuari
izugarrizko abiadurarekin; bidalitako korronte seinaleak honako hauek dira: lehenengo
instantean ez zaio korronterik bidaltzen, hurrengo instantean korrontea bidaltzen zaio,
hurrengoan ez, hurrengoan ez, hurrengoan ez, hurrengoan ez, hurrengoan ez, eta hurrengoan
bai, eta hau adierazteko 01000001 bidali dela esaten da (0 ikurrak korronterik ez dela bidali
esan nahi du eta 1 ikurrak korrontea bidali dela). Beraz, gizakion hizkuntzan A letra dena,
ordenagailuen hizkuntzan 01000001 da.
Beraz, informatika programa batek halako itxura eduki dezake, kontuan hartuta
programa handi batek, esaterako testu prozesadore batek, milioi batzuk lerro eduki ditzakeela:
01101101 11100110
11110110 00111010
------- ------01010111 11001011
01011100
11101100
------00111001
Aurreko programa oso sinplea da (martxan jarriz gero, irudian ikusten den moduan,
data eta ordua erakutsi besterik ez du egiten). Baina programa konplexu batek, adibidez testu
prozesadore batek, milioi lerro batzuk eduki ditzake:
Kaleak
Karel
Etorbideak
Kaleak mendebaldetik ekialdera doaz eta etorbideak hegoaldetik iparraldera. Aurreko
irudian, esaterako 18 kale eta 22 etorbide ikus daitezke eta Karel 4. kalean eta 22. etorbidean
dago kokatuta.
Ariketa01
1.- Ireki Karel simulagailua.
2.- Aktibatu Mundo fitxa aktibatuta ez badago. Beheko aldean Karel robotaren
mundua agertzen da, bera kaleak eta etorbideak dauzkala.
3.- Kokatu Karel ekialdera begira eta 5. kalean eta 7. etorbidean. Hori egiteko,
aipatutako kokalekuan egin klik eskumako botoiaz eta Situar a Karel menuko
Orientado al este hautatu.
4.- Gorde sortutako mundua zuen karpeta pertsonalean Guardar como botoia
sakatuz eta Ariketa01 izena jarri.
5.- Ireki zuen karpeta pertsonala ea agertzen den gordetako mundua. Ondo egin
badugu Ariketa01.MDO izeneko fitxategia agertuko da (MDO letrek mundua
dela adierazten dute).
6.- Itxi karpeta pertsonala eta itxi Karel simulagailua.
- avanza
Agindu honen bidez, Karel robotak kale bat aurreratzen du (ekialdera edo
mendebaldera begira baldin badago) edo etorbide bat (iparraldera edo
hegoaldera begira baldin badago).
- gira-izquierda
Agindu honen bidez, Karel robotak ezkerraldera biratu egiten du 90, hau da,
iparraldera begira baldin badago, mendebaldera begira jarriko da.
- apagate
Agindu honen bidez, Karel robotak bere motorra gelditu egiten du, hau da, itzali
egiten da.
Ariketa01a
1.- Ireki Karel simulagailua.
2.- Aktibatu Mundo fitxa aktibatuta ez badago eta ireki aurreko ariketan gordetako
Ariketa01.MDO izeneko mundua Abrir botoia sakatuz.
2.- Aktibatu Programa fitxa aktibatuta ez badago. Beheko aldean programak
idazteko gunea agertzen da.
3.- Orain gure lehenengo programa idatziko dugu. Programa honen bidez, Karel
robotak bi aldiz mugitu beharko du aurrerantz eta ezkerrera behin biratu. Hau da,
idatzi beharrekoa honako hau da (kontuan hartu agindu bakoitzaren ostean beti
puntu eta koma idatzi behar dela):
avan za;
avan za;
g ira-izq u ierd a;
ap ag ate;
5.- Gorde sortutako programa zuen karpeta pertsonalean Guardar botoia sakatuz eta
Ariketa01 izena jarri.
6.- Ireki zuen karpeta pertsonala ea agertzen den gordetako programa. Ondo egin
badugu Ariketa01 izeneko fitxategia agertuko da.
7.- Itxi karpeta pertsonala eta itxi Karel simulagailua.
Ariketa01b
1.- Ireki Karel simulagailua, ireki Ariketa01 mundua eta Ariketa01 programa.
2.- Aktibatu Ejecutar fitxa.
3.- Ezkerreko leihoan guk idatzitako programa agertzen da eta eskumakoan guk
sortutako mundua. Bada, orain probatu egin behar dugu idatzitako programa ea
egiten duen guk nahi genuena. Hori egiteko Correr (exekutatu) botoia sakatu.
4.- Aurreko leihoa agertzen bada, horrek esan nahi du programa ez dugula konpilatu.
Sakatu OK botoia.
Aurreko atal batean aipatu dugunez, ordenagailuak (edo robotak) zirkuitu
elektronikoz osatutako gailuak dira eta 0 eta 1 ikurrez osatutako aginduak besterik
ez dute ulertzen. Beraz, guk idatzitako programa Karel robotak ulertzen duen
hizkuntzara itzuli, hau da, konpilatu behar da. Hori egiteko Programa fitxa
aktibatu eta Pascal aukera aktibatuta Compilar
botoia sakatu. Programa
compilado mezua agertzen denean OK sakatu.
5.- Aktibatu berriro Ejecutar fitxa eta Correr botoia sakatu.
Ikusten denez, Karel robotak ez du ezer egin. Horrek esan nahi du gure programa
ez dagoela ondo. Kontua da, idatzitako aginduen aurrean eta ostean azpiagindu
batzuk jarri behar direla adierazteko programaren hasiera eta bukaera. Hori
programa guztietan jarri beharreko gauza da. Beraz, Programa fitxa aktibatu eta
gehitu ondoko lerroak:
IN IC IA R -P R O G R A M A
IN IC IA -EJEC U C IO N
avan za;
avan za;
gira-izq u ierd a;
ap ag ate;
TER M IN A -EJEC U C IO N
FIN A LIZ A R -P R O G R A M A
6.- Guardar botoia sakatu baina, zoritxarrez, botoi horrek batzuetan ez du ondo
funtzionatzen eta ondoko leihoa erakusten digu:
Hori gertatuz gero, Ados botoia sakatu aurreko leihoa ixteko, Guardar como
botoia sakatu eta berriro Guardar botoia sakatu. Fitxategiaren izena berriro
eskatuko digunez berriro zehaztuko dugu izena, hau da, Ariketa01.
7.- Compilar botoia sakatu berriro itzultzeko Karel
hizkuntzara.
8.- Aktibatu berriro Ejecutar fitxa eta Correr botoia sakatu.
Ikusi dugunez,gure programak guk nahi genuena egin du. OK botoia sakatu.
9.- Berriro exekutatuko dugu, baina orain polikiago. Inicializar
Retardo de ejecucin laukian 2000 jarri eta Correr sakatu.
botoia sakatu,
10.- Berriro exekutatuko dugu, baina orain aginduz agindu. Inicializar botoia sakatu,
Retardo de ejecucin laukian 500 jarri berriro eta Adelante joan sakatzen bukatu
arte.
11.- Itxi Karel simulagailua.
Ariketa01c
1.- Ireki Karel simulagailua, ireki Ariketa01 mundua eta Ariketa01 programa.
2.- Aldatu lehenengo avanza hitza eta jarri avanzar.
3.- Compilar botoia sakatu.
hitza ez duela
Ariketa02
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, jarri Karel iparraldera begira 2. kalean eta 2. etorbidean.
Gorde mundua Ariketa02 izena jarriz.
3.- Sortu programa berri bat Karel eskumara biratzeko, hau da, ekialdera begira
geratzeko.
4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa02 izena jarriz eta itxi Karel simulagailua.
Ariketa03
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, jarri Karel ekialdera begira 1. kalean eta 1. etorbidean.
Gorde mundua Ariketa03 izena jarriz.
3.- Sortu programa berri bat Karel 10. etorbidera joateko. Etorbide horretan iristean
2. kalera igo eta itzuli 1. etorbidera, hau da, egin beharreko ibilbidea honako hau
da:
Ariketa04
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, jarri Karel ekialdera begira 1. kalean eta 1. etorbidean.
Gorde mundua Ariketa04 izena jarriz.
3.- Sortu programa berri bat Karel 10. kalera eta 10. etorbidera joateko diagonal
lerroa jarraituz, hau da, egin beharreko ibilbidea honako hau da:
Ariketa05
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, jarri Karel iparraldera begira 1. kalean eta 1. etorbidean.
Horretaz gain, zehaztuko dugu robotak 8 burrunbagailu dauzkala bere motxilan
Zumbadores en la mochila laukian. Gorde mundua Ariketa05 izena jarriz.
3.- Sortu programa berri bat. Programa honetan Karel robotak hainbat
burrunbagailua laga egin beharko ditu leku zehatz batzuetan (ondoko irudian
agertzen den moduan). Gainera, burrunbagailu guztiak laga ondoren Karel
robotak hasierako lekura joan beharko du:
Izan ere, mundua sortu genuenean 8 burrunbagailu zeuzkala zehaztu genuen eta
orain 10 behar ditu. Beraz, Mundo fitxa aktibatu eta jarri 10 Zumbadores en la
mochila laukian
7.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa05 izena jarriz eta itxi Karel simulagailua.
Ariketa06
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, jarri Karel iparraldera begira 1. kalean eta 1. etorbidean.
laukian. Horretaz gain hainbat burrunbagailu jarri beharko ditugu hainbat lekutan
(ondoko irudian agertzen den moduan). Burrunbagailuak jartzeko nahi dugun
kalean eta etorbidean egin klik eskumako botoiaz eta hautatua zenbat
burrunbagailu laga nahi dugun aipatutako lekuan. Gorde mundua Ariketa06 izena
jarriz.
3.- Sortu programa berri bat. Programa honetan Karel robotak burrunbagailu guztiak
hartu egin beharko ditu eta beste leku batzuetan laga (ondoko irudian agertzen den
moduan). Gainera, burrunbagailu guztiak laga ondoren Karel robotak hasierako
lekura joan beharko du:
Ariketa07
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat ondoko irudian agertzen den moduan. Mundu horretan
Karel esparru itxi batean dago, baina ate bat dauka esparru horretatik irten ahal
izateko (5. kalean). Gorde mundua Ariketa07 izena jarriz.
7.- Sortu programa berri bat. Programa honetan Karel robotak esparrutik atera,
burrunbagailu guztiak hartu eta hasierako lekura itzuli egin behar du.
8.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa07 izena jarriz eta itxi Karel simulagailua.
Adibidez, eman dezagun egin behar dugula programa bat jartzeko Karel ekialdera
begira, baina ez dakigula zein den hasierako egoera, hau da, hasieran Karel iparraldera,
ekialdera, hegoaldera edo mendebaldera begira egon daiteke. Bada, gure programan halako
aginduak jarri beharko genituzke:
S I orientado-al-n orte EN TO N C ES
IN IC IO
g ira-izqu ierd a;
g ira-izqu ierd a;
g ira-izqu ierd a;
FIN ;
S I orientado-al-oeste EN TO N C ES
IN IC IO
g ira-izqu ierd a;
g ira-izqu ierd a;
FIN ;
S I orientado-al-su r EN TO N C ES
IN IC IO
g ira-izqu ierd a;
FIN ;
Gainera, baldintzapeko agindu baten barruan nahi beste baldintzapeko agindu jarri
ditzakegu, adibidez, ondoko adibidean agertzen den moduan:
S I fren te-lib re EN TO N C ES
IN IC IO
avan za;
S I ju n to-a-zu m bador EN TO N C ES
IN IC IO
cog e-zu m b ad or;
FIN ;
g ira-izqu ierd a;
FIN ;
Ariketa08
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat Karel iparraldera begira jartzeko; kontuan hartu ez
dakigula zein den hasierako egoera, hau da, hasieran ez dakigula nora begira
dagoen.
3.- Mundo fitxan jarri Karel ekialdera begira eta exekutatu programa. Egiaztatu
programak ondo funtzionatu duen, hau da, Karel iparraldera begira geratu den.
4.- Mundo fitxan jarri Karel hegoaldera begira eta exekutatu programa. Egiaztatu
programak ondo funtzionatu duen, hau da, Karel iparraldera begira geratu den.
5.- Mundo fitxan jarri Karel mendebaldera begira eta exekutatu programa. Egiaztatu
programak ondo funtzionatu duen, hau da, Karel iparraldera begira geratu den.
6.- Mundo fitxan jarri Karel iparraldera begira eta exekutatu programa. Egiaztatu
programak ondo funtzionatu duen, hau da, Karel iparraldera begira geratu den.
7.- Errepikatu 3, 4, 5, 6 urratsak baina exekutatzeko erabili Adelante botoia eta
begiratu ezkerraldean agertzen den leihoari hor agertzen baitira zeintzuk diren
robotak exekutatzen dituen aginduak.
8.- Gorde programa Ariketa08 izena jarriz eta itxi Karel simulagailua.
Ariketa09
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
- Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean.
- Karelek 1. kaletik 10. etorbidera joan beharko du baina bidean topo egin
dezake horma batekin.
- Etorbide batean horma batekin topo eginez gero hor geldituko da (itzali
egingo da), 10. etorbidera iritsi barik.
3.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. Probatu
programa ondo funtzionatu arte.
4.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 5. eta 6.
etorbideen artean jarri horma bat. Probatu programa ondo funtzionatu arte.
5.- Gorde programa Ariketa09 izena jarriz eta itxi Karel simulagailua..
Ariketa10
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
- Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean.
- 1. kaletik 10. etorbidera joan beharko du.
- Bidean aurkitutako burrunbagailu guztiak jaso beharko ditu.
- Kontuan hartu, aldez aurretik, Karelek
ez dakiela non egongo diren
burrunbagailuak, baina leku batean burrunbagailurik egonez gero bakarra
izango dela.
3.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean zehar jarri hainbat burrunbagailu (leku bakoitzean bat jarri gehienez).
4.- Probatu programa ondo funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa10 izena jarriz eta itxi Karel simulagailua.
Aurreko aginduak zera adierazten du: < b aldin tza> betetzen bada, lehenengo IN IC IO
eta FIN ataleko aginduak beteko ditu Karelek eta, bestela, bigarren atalekoak.
Ariketa11
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
- Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean.
- Motxilan 10 burrunbagailu edukiko ditu gutxienez.
- 1. kaletik 10. etorbidera joan beharko du.
- Etorbide bakoitzean burrunbagailurik dagoen ala ez begiratu beharko du.
Burrunbagailurik baldin badago hartu egin beharko du. Burrunbagailurik ez
badago bere motxilatik hartu eta lurrean laga egin beharko du.
3.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean zehar jarri hainbat burrunbagailu (leku bakoitzean bat jarri gehienez).
4.- Probatu programa ondo funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa11 izena jarriz eta itxi Karel simulagailua.
jarri
aginduak jarri beharko genituzke (avanza, gira-izquierda, apagate, coge-zumbador, dejazumbador eta SI) edo gero ikusiko dugun beste agindu bat.
Adibidez, eman dezagun Karel 1. etorbidetik 30. etorbideraino joatea nahi dugula.
Bada, gure programan halako aginduak jarri beharko genituzke:
R EP ETIR 30 V EC ES
IN IC IO
avan za;
FIN ;
Ariketa12
1.- Ireki Karel simulagailua.
2.- Agindu errepikakorra erabiliz sortu programa berri bat Karel 1. kaletik eta 1.
etorbidetik 10. kalera eta 10. etorbidera joateko diagonal lerroa jarraituz, hau da,
egin beharreko ibilbidea honako hau da:
Ariketa13
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, jarri Karel iparraldera begira 1. kalean eta 1. etorbidean.
Horretaz gain hainbat burrunbagailu jarri beharko ditugu hainbat lekutan (ondoko
irudian agertzen den moduan). Gorde mundua Ariketa13 izena jarriz.
3.- Agindu errepikakorra erabiliz sortu programa berri bat Karelek burrunbagailu
guztiak hartzeko.
4.- Probatu programa ondo funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa13 izena jarriz eta itxi Karel simulagailua.
Ariketa14
1.- Aurreko ariketa egitean 2 agindu errepikakor baino gehiago erabili badituzu saiatu
egiten ariketa bera baina 2 agindu errepikakor erabiliz. Kontuan hartu agindu
errepikakor baten barruan jarri dezakegula beste agindu errepikakor bat, hau da,
oso ohikoa da halako egiturak:
R EP ETIR 30 V EC ES
IN IC IO
avan za;
R EP ETIR 5 V EC ES
IN IC IO
cog e-zum bad or;
FIN ;
FIN ;
3.- Probatu programa ondo funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa14 izena jarriz eta itxi Karel simulagailua.
Kontuan hartu < ag in d u 1>, < ag in d u 2>, eta < ag ind u N >Karel robotak ezagutzen duen
beste edozein agindu izan daitekeela. Beraz, programa konplexuetan oso ohikoak dira halako
egiturak:
M IEN TR A S fren te-lib re H A C ER
IN IC IO
R EP ETIR 5 V EC ES
IN IC IO
avan za;
S I algu n -zu m bador-en -la-m och ila EN TO N C ES
IN IC IO
d eja-zum b ad or;
FIN ;
FIN ;
gira-izq u ierd a;
avan za;
gira-izq u ierd a;
FIN ;
Ariketa15
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
- Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean.
- 1. kaletik joan beharko du horma bat aurkitu arte.
- Horma bat aurkitzen duenean gelditu egingo da.
3.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean eta 7. eta 8. etorbideen artean jarri horma bat.
4.- Probatu programa ondo funtzionatu arte.
5.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean, kendu lehen jarritako horma eta jarri beste bat 10. eta 11. etorbideen
artean.
6.- Aurreko programan ezer aldatu barik probatu ea funtzionatzen duen.
Funtzionatzen ez badu errepikatu ariketa osoa; izan ere, programak funtzionatu
behar du horma edozein etorbidetan jarrita.
7.- Gorde programa Ariketa15 izena jarriz eta itxi Karel simulagailua..
Ariketa16
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
-
3.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean eta 3. etorbidean jarri burrunbagailu bat.
4.- Probatu programa ondo funtzionatu arte.
5.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean eta 3. etorbidean jarri 10 burrunbagailu.
6.- Aurreko programan ezer aldatu barik probatu ea funtzionatzen duen.
Funtzionatzen ez badu errepikatu ariketa osoa; izan ere, programak funtzionatu
behar du edozein burrunbagailu kopuru jarrita.
7.- Gorde programa Ariketa16 izena jarriz eta itxi Karel simulagailua.
Ariketa17
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
-
3.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean eta 3. etorbidean jarri burrunbagailu bat.
4.- Probatu programa ondo funtzionatu arte.
5.- Mundo fitxan jarri Karel 1. kalean eta 1. etorbidean eta ekialdera begira. 1.
kalean eta 9. etorbidean jarri 10 burrunbagailu.
6.- Aurreko programan ezer aldatu barik probatu ea funtzionatzen duen.
Funtzionatzen ez badu errepikatu ariketa osoa; izan ere, programak funtzionatu
behar du edozein burrunbagailu kopuru jarrita.
7.- Gorde programa Ariketa17 izena jarriz eta itxi Karel simulagailua..
Ariketa18
1.- Ireki Karel simulagailua.
2.- Sortu mundu berri bat, ondoko irudian agertzen den moduan. Gorde mundua
Ariketa18 izena jarriz.
3.- Agindu errepikakorrak erabiliz, sortu programa berri bat Karel 1. kalera eta 13.
etorbidera joateko eta han dagoen burrunbagailua jasotzeko, baina 1. kaletik
jarraituz ahal den neurrian, hau da, imajina dezakegu hesi-lasterketa bat dela.
Beraz, egin beharreko ibilbidea honako hau da:
Beste era batean esanda, Karel robotak egin behar duena zera da: hesiak jauzi
egin lau aldiz.
4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa18 izena jarriz eta itxi Karel simulagailua.
Ariketa19
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat ondoko baldintzak jakinda:
- Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean.
- 1. kaletik joan beharko du burrunbagailu bat aurkitu arte. Burrunbagailua
aurkitzean jaso egingo du eta itzali egingo da.
- Bidean hainbat horma aurki ditzake. Horma bat aurkitzean horma hori
saihestu egin behar du kaleak igoz eta berriro kaleak jaitsiz 1. kalera
itzultzeko.
- Kontuan hartu, aldez aurretik, Karel robotak ez daki non dagoen
burrunbagailua, ezta hormak ere.
3.- Mundo fitxan sortu ondoko irudian agertzen den mundu bat (gorde Ariketa19a
izena erabiliz), eta probatu programa ondo funtzionatu arte:
4.- Mundo fitxan sortu ondoko irudian agertzen den mundu bat (gorde Ariketa19b
izena erabiliz), eta programan ezer aldatu barik probatu programa (funtzionatzen
ez badu errepikatu ariketa osoa; izan ere, programak funtzionatu behar du edozein
egoeratan):
5.- Mundo fitxan sortu ondoko irudian agertzen den mundu bat (gorde Ariketa19c
izena erabiliz), eta programan ezer aldatu barik probatu programa (funtzionatzen
ez badu errepikatu ariketa osoa; izan ere, programak funtzionatu behar du edozein
egoeratan):
6.- Gorde programa Ariketa19 izena jarriz eta itxi Karel simulagailua.
Dena den, Karel robotak badauka aukera bat guk agindu berriak sortzeko edo
definitzeko ondoko lerroek adierazten duten moduan:
D EFIN E-N U EVA -IN S TR U C C IO N < n om b re-n u eva-in stru ccin> C O M O
IN IC IO
< agin d u 1> ;
< agin d u 2> ;
--------< agin d u N > ;
FIN ;
< n om b re-n ueva-in stru ccin >agertzen den lekuan agindu berriari eman nahi diogun
izena jarri beharko genuke. Logikoena izen esanguratsua ematea da.
Adibidez, g ira-d erech a agindua sortzeko ondoko irudian agertzen diren lerroak
idatzi beharko genituzke:
Agindu berriak sortuz, programak, kasu gehienetan, askoz ere laburragoak izaten dira.
Adibidez, programa konplexu batean Karel robotak bere burua askotan eskumara biratu behar
badu, horrek suposatuko luke gira-izq u ierd a agindu multzo asko idaztea. Agindu berriak
erabiliz, g ira-derech a agindua sor dezakegu ( g ira-izqu ierd a agindua hiru aldiz idatzita).
Behin agindu berria sortuta, hortik aurrera eskumara biratu nahi dugun bakoitzean ez dugu
g ira-izqu ierd a agindua hiru aldiz idatzi behar; izan ere, nahikoa izango da g ira-d erech a
behin idaztea. Beraz, aldez aurretik ikusten badugu Karel robotak agindu multzo bat askotan
errepikatu behar duela, oso komenigarria da agindu berri bat sortzea.
Ariketa20
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat Karel robota eskumara biratzeko eta atzera joateko bi
agindu berri sortuz.
3.- Mundo fitxan jarri Karel 3. kalean eta 3. etorbidean eta ekialdera begira.
4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa
Ariketa20 izena jarriz eta itxi Karel simulagailua.
Ariketa21
1.- Ireki Karel simulagailua.
2.- Errepikatu Ariketa19 izeneko ariketa, baina 2 agindu berri sortuz (
eta salta-valla edo evita-m u ro).
g ira-d erech a
3.- Probatu programa funtzionatu arte sortu genituen mundu guztietan (Ariketa19a,
Ariketa19b eta Ariketa19c). Funtzionatzen duenean gorde programa Ariketa21
izena jarriz eta itxi Karel simulagailua.
4.- Ireki zuen karpeta pertsonala eta ireki Ariketa19 eta Ariketa21
fitxategiak. Jarri bata, bestearen ondoan:
izeneko
Bi programek gauza bera egiten dute, hau da, Karel eramaten dute 1. kaletik eta
1. etorbidetik burrunbagailua dagoen lekuraino hesiak saihestuz edo jauzi eginez.
Hala ere, Ariketa21 programa hobeto dago idatzita Ariketa19 programa baino.
Ariketa22
1.- Ireki Karel simulagailua.
2.- Sortu programa bat Karelek oinarrizko aginduak (
avanza, g ira-izqu ierd a ,
eta d eja-zum b ad or
) euskaraz ulertzeko. Adibidez,
ap ag ate, coge-zu m b ad or
ondoko programa ulertzeko gai izan behar du Karel robotak:
IN IC IA -EJEC U C IO N
aurrera;
ezkerra;
h artu-b u rru n bagailu a;
aurrera;
lag a-b u rru n bag ailu a;
itzali;
TER M IN A -EJEC U C IO N
3.- Mundo fitxan sortu ondoko irudian agertzen den mundua eta gorde Ariketa22
izena erabiliz:
13.- Iruzkinak
Karel robota programatzeko egin beharreko programak, batzuetan programa laburrak
dira eta, horretaz gain, pertsona batek egindako programa bat oso ulergarria da beste pertsona
batentzat. Beste batzuetan, ordea, programak nahiko luzeak dira eta, gainera, ez dira oso erraz
ulertzen, hau da, pertsona betek egindako programa zaila da ulertzea beste pertsona batentzat.
Halako kasuetan, programatzaileak aukera dauka programan bertan iruzkinak edo azalpenak
txertatzeko.
Hori egiteko, { } edo (* *) ikurrak erabili behar dira ondoko programan ikus
dezakegun moduan:
IN IC IA R -P R O G R A M A
(* P rog ram a h onen h elb urua K arelek h esi lasterketa eg itea d a *)
IN IC IA -EJEC U C IO N
M IEN TR A S n o-ju n to-a-zu m b ad or H A C ER
IN IC IO
S I fren te-lib re EN TO N C ES
(* ez dago hesirik, b eraz, au rrera *)
IN IC IO
avanza;
FIN
S IN O
(* h esi b at au rkitu da, b eraz, eg in jau zi *)
IN IC IO
g ira-izq u ierda;
(* ig o h esia *)
M IEN TR A S d erech a-b loq u ead a H A C ER
IN IC IO
avan za;
FIN ;
g ira-izq u ierda;
g ira-izq u ierda;
g ira-izq u ierda;
avanza;
g ira-izq u ierda;
g ira-izq u ierda;
g ira-izq u ierda;
(* jaitsi h esia *)
M IEN TR A S fren te-libre H A C ER
IN IC IO
avan za;
FIN ;
g ira-izq u ierda;
FIN ;
FIN ;
cog e-zu m b ad or;
ap ag ate;
TER M IN A -EJEC U C IO N
FIN A LIZ A R -P R O G R A M A
Karel robotak aginduak betetzeko lerroz lerro irakurtzen du programa. Bada, iruzkin
bat daukan lerro bat aurkitzen duenean lerro hori ez du kontuan hartzen eta hurrengo
lerroarekin jarraitzen du. Izan ere, Karelek badaki iruzkinak programa irakurtzen duten
pertsonentzako direla, hobeto uler dezaten programaren betebeharra.
Ariketa23
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat, iruzkinak txertatuz, ondoko baldintzak jakinda:
- Karel gune itxi batean dago sartuta ondoko irudian agertzen den moduan:
- Karelek itzuli osoa egin behar du gune horretatik kale eta etorbide
bakoitzean burrunbagailu bat lagaz.
- Aldez aurretik ezin jakin non dagoen Karel eta nora dagoen begira.
Horretaz gain, ezin jakin gune itxiaren zabalera eta altuera.
3.- Mundo fitxan sortu aurreko irudian agertzen den mundu bat Karelen motxilan
beharrezkoak diren burrunbagailuak sartuz (gorde Ariketa23 izena erabiliz), eta
probatu programa ondo funtzionatu arte.
4.- Egin aldaketak aurreko munduari (jarri Karel beste leku batean eta beste alde
batera begira, handitu gunearen zabalera edota altuera,...), eta programan ezer
aldatu barik probatu programa (funtzionatzen ez badu errepikatu ariketa osoa; izan
ere, programak funtzionatu behar du edozein egoeratan).
5.- Gorde programa Ariketa23 izena jarriz eta itxi Karel simulagailua.
Ariketa24
1.- Ireki Karel simulagailua.
2.- Sortu programa bat Karelek edozein kaletan eta etorbidetan dagoen burrunbagailu
bat jasotzeko. Hasieran, Karel 1. kalean eta 1. etorbidean egongo da ekialdera
begira. Programan zehar txertatu iruzkinak beste pertsona batzuek hobeto uler
dezaten programa.
3.- Mundo fitxan jarri Karel ekialdera begira 1. kalean eta 1. etorbidean eta jarri
burrunbagailu bat 7. kalean eta 10. etorbidean. Exekutatu programa eta egiaztatu
ondo funtzionatu duen, hau da, Karelek burrunbagailua aurkitu duen ala ez.
4.- Mundo fitxan jarri Karel ekialdera begira 1. kalean eta 1. etorbidean eta jarri
burrunbagailu bat 44. kalean eta 49. etorbidean. Exekutatu programa eta egiaztatu
ondo funtzionatu duen, hau da, Karelek burrunbagailua aurkitu duen ala ez.
5.- Gorde programa Ariketa24 izena jarriz eta itxi Karel simulagailua.
Ariketa25
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat (iruzkinak txertatuz) ondoko baldintzak jakinda:
- Karel edozein kaletan eta etorbidetan egon daiteke eta edozein lekutara
begira.
- Karel hormaz inguratuta dago gela itxi batean egongo balitz bezala (gelak
laukizuzen itxura dauka). Baina, egon badago irteera bat, burrunbagailu bat
daukala, nahiz eta non dagoen jakin ez. Adibidez, ondoko irudietan agertzen
den moduan:
Ariketa26
1.- Ireki Karel simulagailua.
2.- Sortu programa berri bat karel labirinto batetik irteteko. Labirintoaren irteeran
burrunbagailu bat dago justu labirintotik kanpoan dagoen lehenengo kalean eta
4.- Mundo fitxan sortu ondoko irudian agertzen den mundu bat (gorde Ariketa26b
izena erabiliz), eta programan ezer aldatu barik probatu programa (funtzionatzen
ez badu errepikatu ariketa osoa; izan ere, programak funtzionatu behar du edozein
egoeratan):
5.- Aurreko munduari egin hainbat aldaketa horma berriak jarriz eta horma batzuk
kenduz, eta programan ezer aldatu barik probatu programa (funtzionatzen ez badu
errepikatu ariketa osoa; izan ere, programak funtzionatu behar du edozein
egoeratan).
6.- Gorde programa Ariketa26 izena jarriz eta itxi Karel simulagailua.
Oinarrizko Aginduak
avan za
g ira-izq uierd a
ap ag ate
Baldintzak
orientad o-al-n orte
n o-orientad o-al-norte
orientad o-al-oeste
n o-orientad o-al-oeste
orientad o-al-sur
no-orien tad o-al-su r
orientad o-al-este
n o-orientad o-al-este
fren te-lib re
frente-b loq u ead o
izq uierd a-lib re
izq uierd a-b loq uead a
d erech a-lib re
d erech a-b loq u ead a
jun to-a-zu m b ad or
n o-ju n to-a-zu m b ad or
alg u n-zu m b ad or-en -la-m ochila n in g un -zum b ad or-en -la-m och ila
y
o
Baldintzapeko Aginduak
S I < b ald in tza> EN TO N C ES
IN IC IO
< ag in d u1> ;
< ag in d u2> ;
--------< ag in d uN > ;
FIN ;
Agindu Errepikakorrak
R EP ETIR < zenb akia> V EC ES
IN IC IO
< ag in d u1> ;
< ag in d u2> ;
--------< ag in d uN > ;
FIN ;