Karel - Apunteak Eta Ariketak

Programazioa Karel Robota 2.1 (Apunteak eta Ariketak) Dokumentu honek programak egiteko oso oinarrizkoak diren kontze

Views 159 Downloads 8 File size 335KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Programazioa

Karel Robota 2.1 (Apunteak eta Ariketak)

Dokumentu honek programak egiteko oso oinarrizkoak diren kontzeptuak irakasten ditu. Horretarako tutoretza-sistema erabiltzen da. Ikasleak egin behar duena zera da: dokumentua arretaz joan irakurtzen eta, irakurritakoa ordenagailuan gauzatu. Gainera, hainbat ariketa agertzen dira ikasleak egiteko. Ariketa bakoitza bukatzen denean irakasleari erakutsi beronek ondo dagoen ala ez ikusteko. Dokumentu honetan agertzen diren azalpenak César Cepedak sortutako Karel 2.1 simulagailurako dira, gaztelaniazko bertsioetarako (euskarazko bertsioa ez dago eta). Simulagailu hau Mexikoko Informatika Olinpiadan simulagailu ofiziala izan da.

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

Karel OMI 1.2 César Cepeda Karel OMI 1.2 simulagailuak pantailan eskainitako laguntza

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

Informatikari batentzat oso zaila izango litzateke halako programak idaztea, ordenagailuen hizkuntza eta gurea oso ezberdinak direlako. Horregatik, informatika enpresa batzuek programa berezi batzuk egiten dituzte (itzultzaileak edo konpiladoreak izenekoak) informatikariek gizakiongandik gertuago den hizkuntza batean idazteko; gero, programa berezi hauek ordenagailuen hizkuntzara itzulpena egiten dute. Esaterako, data eta ordua erakusten dituen programa sinple batek halako itxura eduki dezake: On Error Resume Next OrdenagailuIzena = "." Set WMIZerbitzua = GetObject("winmgmts:" & _ "{impersonationLevel=impersonate}!\\" & OrdenagailuIzena & "\root\cimv2") Set DataOrduaBilduma = WMIZerbitzua.ExecQuery("Select * from Win32_LocalTime") For Each DataOrdua in DataOrduaBilduma Urtea = DataOrdua.Year If DataOrdua.Month < 10 Then Hilabetea = "0" & DataOrdua.Month Else Hilabetea = DataOrdua.Month End If If DataOrdua.Day < 10 Then Eguna = "0" & DataOrdua.Day Else Eguna = DataOrdua.Day End If If DataOrdua.Hour < 10 Then Ordua = "0" & DataOrdua.Hour Else Ordua = DataOrdua.Hour End If If DataOrdua.Minute < 10 Then Minutua = "0" & DataOrdua.Minute Else Minutua = DataOrdua.Minute End If If DataOrdua.Second < 10 Then Segundua = "0" & DataOrdua.Second Else Segundua = DataOrdua.Second End If Wscript.Echo Urtea & "-" & Hilabetea & "-" & Eguna & " " & _ Ordua & ":" & Minutua & ":" & Segundua Next Wscript.Quit

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:

Informatikari batentzat, aurreko programa ulergarriagoa da bestea baino. Beraz, informatikariek aurreko hizkuntza batean idazten dituzte beraien programak eta gero, konpiladoreak erabiliz, programa horiek ordenagailuen hizkuntzara itzultzen dituzte. 0 eta 1 ikurrez osatutako programak behe mailako programazio lengoaian idatzita daude. Aurreko programa goi mailako programazio lengoaian idatzita dago. Beraz, konpiladoreak zera egiten du: goi mailako programazio lengoaian idatzia dagoen programa bat behe mailako programazio lengoaian idatzia dagoen bat bihurtu. Goi mailako programazio lengoaia ezberdinak daude. Nahiz eta oso antzekoak izan, egon badaude ezberdintasun batzuk haien artean, batez ere, sintaxia kontuan hartuta. Besteak beste, honako hauek dauzkagu: Basic, C, C++, Pascal, Cobol, Java, Ajax,... Halako lengoaia bat menperatzen badugu gainerakoak berehala ikasten dira. Dena den, guk ez dugu aurreko programazio lengoaiarik ikasiko denbora asko beharko baikenuke. Ikasiko duguna robot baten programazioa izango da: Karel robota. Karel robotaren programazioa, programazioaren oinarrizko ikastaro gisa erabiltzen da unibertsitate batzuetan, oso erraza delako eta robot horren programazioa ikasita errazago ikasten direlako Basic, C, C++, Pascal, Cobol, Java, Ajax eta antzeko lengoaiak. Gainera, egindako programak ondo dauden ikusteko simulagailu bat erabiliko dugu.

01.- Karel robotaren oinarrizko mundua Karel robota oso robot sinplea da. Robot horrek motor bat dauka mugitu ahal izateko. Leku batetik bestera mugitzeko gune bat dauka eta gune horrek hainbat kale eta hainbat etorbide dauzka:

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.

Karel iparraldeari, hegoaldeari, ekialdeari eta mendebaldeari begira jarri daiteke. Horrek esan nahi du ezin dela jarri, esaterako, ipar-ekialdeari begira. Aurreko irudian, Karel iparraldera begira dago.

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.

02.- Karel robotaren oinarrizko aginduak Karel robota oinarrizko agindu batzuk betetzeko gai da. Zehatz-mehatz honako hauek dira aipatutako aginduak:

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

03.- Programa exekutatu Programa bat idatzi ondoren probatu egin behar da ea egiten duen egin behar zuena. Honi programa exekutatzea edo programa martxan jartzea deitzen zaio.

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.

robotak ulertzen duen

Ikusi dugunez,gure programak guk nahi genuena egin du. OK botoia sakatu. 9.- Berriro exekutatuko dugu, baina orain polikiago. Inicializar Retardo de ejecución laukian 2000 jarri eta Correr sakatu.

botoia sakatu,

10.- Berriro exekutatuko dugu, baina orain aginduz agindu. Inicializar botoia sakatu, Retardo de ejecución laukian 500 jarri berriro eta Adelante joan sakatzen bukatu arte. 11.- Itxi Karel simulagailua.

04.- Programaren akatsak zuzendu Oso ohikoa da programa batean, lehenengo aldian probatzean, akatsak aurkitzea. Akatsak bi motatakoak izan daitezke. Adibidez, avanza agindua idatzi barik avanzar idazten badugu Karel robotak ez du ulertuko avanza hitza ulertzeko programatutako robota delako eta ez avanzar hitza. Beraz, oso zehatzak izan beharko dugu idazterako orduan. Beste akats bat gerta daiteke; izan ere, programa ondo idatzia izan daiteke baina probatzen dugunean robotak ez du egiten guk nahi genuena.

Ariketa01c 1.- Ireki Karel simulagailua, ireki Ariketa01 mundua eta Ariketa01 programa. 2.- Aldatu lehenengo avanza hitza eta jarri avanzar. 3.- Compilar botoia sakatu.

3.- Aurreko leihoak akats bat dagoela adierazten digu, avanzar ulertzen. Sakatu OK botoia eta itxi Karel simulagailua.

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:

4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa Ariketa03 izena jarriz eta itxi Karel simulagailua.

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:

4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa Ariketa04 izena jarriz eta itxi Karel simulagailua.

05.- Oinarrizko agindu berriak Aurreko atal batean Karel robotaren oinarrizko aginduak ikusi genituen (avanza, gira-izquierda eta apagate). Bada, Karel robota beste agindu batzuk ulertzeko gai da. Robotak motxila bat dauka eta motxilaren barruan burrunbagailuak (soinuak ateratzeko gailuak). Karel gai da burrunbagailuak motxilatik ateratzeko eta lurrean lagatzeko, baita lurretik hartzeko eta motxilan sartzeko ere. Zehazki honako hauek dira agindu berriak: - coge-zumbador Agindu honen bidez, Karel robotak lurretik hartuko du burrunbagailua eta motxilan sartuko du. - deja-zumbador Agindu honen bidez, Karel robotak motxilatik hartuko du burrunbagailua eta lurrean lagako du.

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:

4.- Probatu programa funtzionatu arte. 5.- Egin aldaketa bat 1. kalean eta 2. etorbidean 3 burrunbagailu lagatzeko eta probatu programa. 6.- Ikusi dugunez, akats bat gertatu da:

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:

4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa Ariketa06 izena jarriz eta itxi Karel simulagailua.

06.- Karel robotaren mundu aurreratua Karel robotaren munduari beste osagai bat gehituko diogu. Izan ere, kale eta etorbideen artean hormak jarri ditzakegu. Karel robotak ezin ditu hormak zeharkatu. Are gehiago, horma baten aurrean baldin badago eta avanza agindua eman badiogu akats bat gertatuko da. Horma bat jarri nahi badugu etorbide batean klik egin behar dugu grisez koloreko laukitxoetan. Kale batean jartzeko gauza bera egin behar da baina zuriz koloreko laukitxoetan.

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.

3.- Sortu programa berri bat ondoko lerro hauekin: IN IC IA R -P R O G R A M A IN IC IA -EJEC U C IO N avan za; 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

4.- Probatu programa ea zer gertatzen den. 5.- Ikusi dugunez, akats bat gertatu da. Izan ere, Karel robotak horma batekin egin du topo eta ezin du zeharkatu.

6.- Ezabatu aurreko programa.

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.

07.- Baldintzapeko aginduak Aurreko atal batean Karel robotaren oinarrizko aginduak ikusi genituen (avanza, gira-izquierda eta apagate). Geroago bi agindu berri ikusi genituen (coge-zumbador eta deja-zumbador). Atal honetan agindu berria ikasiko dugu. Agindu berri hau apur bat berezia da besteekin konparatuz gero. Izan ere, aurreko aginduak oinarrizkoak baldin baziren, oraingoa agindu aurreratua da: baldintzapeko agindua. Agindu honen bidez, Karel robotari zerbait egiteko agin diezaiokegu baldintza baten arabera. Esaterako, burrunbagailu bat hartzeko baldin burrunbagailurik badago. Baldintzapeko aginduak honako itxura hau dauka: S I < b aldin tza> EN TO N C ES IN IC IO < agin d u 1> ; < agin d u 2> ; --------< agin d u N > ; FIN ;

, < ag ind u 2>eta < ag in d u N >jarri barik < ag in d u 1>

oinarrizko aginduak jarri beharko genituzke (avanza, gira-izquierda, apagate, coge-zumbador eta deja-zumbador) edo gero ikusiko ditugun agindu berriak. Karel robotak detektagailu batzuk dauzka. Adibidez, iparrorratz bat dauka detektatzeko nora dagoen begira, soinu sentsore bat dauka burrunbagailu baten gainean dagoen ala ez jakiteko, eta izpi infragorrien bidez gai da horma baten aurrean dagoen ala ez. Detektagailu hauen bidez aukera daukagu aurreko aginduan < b ald in tza> jarri barik honako hitz hauek jartzeko: orientado-al-n orte n o-orien tad o-al-n orte orientado-al-oeste n o-orien tad o-al-oeste orientado-al-su r n o-orien tad o-al-sur orientado-al-este n o-orientado-al-este fren te-lib re fren te-b loq u ead o izqu ierd a-lib re izq u ierd a-bloq u eada d erecha-libre derech a-bloq u ead a ju nto-a-zu m b ad or no-ju n to-a-zum bad or alg u n -zu m b ad or-en -la-m och ila n in g u n-zu m b ad or-en -la-m och ila

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 ;

Karelek hiru agindu hauek beteko ditu baldin eta une horretan iparraldera begira badago. Bestela ez ditu beteko.

Karelek bi agindu hauek beteko ditu baldin eta une horretan mendebaldera begira badago. Bestela ez ditu beteko. Karelek agindu hau beteko du baldin eta une horretan hegoaldera begira badago. Bestela, ez du beteko.

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.

08.- Baldintzapeko agindu aurreratua Atal honetan agindu berria ikasiko dugu. Egia esan, ez da hain berria izango; izan ere, baldintzapeko aginduaren gehigarria baita. Agindu honen bidez, Karel robotari zerbait egiteko edo ez egiteko agin diezaiokegu baldintza baten arabera. Esaterako, lurrean burrunbagailu bat baldin badago hartzeko agindua eman diezaiokegu eta burrunbagailurik ez badago bere motxilan daukan bat lurrean lagatzeko. Baldintzapeko agindu aurreratuak honako itxura hau dauka: S I < b aldin tza> EN TO N C ES IN IC IO < agin d u A 1> ; < agin d u A 2> ; ---------< agin d u A N > ; FIN S IN O IN IC IO < agin d u B 1> ; < agin d u B 2> ; ---------< agin d u B N > ; FIN ;

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.

09.- Agindu errepikakorra Atal honetan beste agindu berri bat ikasiko dugu. Agindu honen bidez, Karel robotari zerbait egiteko agin diezaiokegu behin eta berriro. Esaterako, Karel 1. etorbidetik 30. etorbideraino joatea nahi badugu 30 avanza jarri beharko genituzke. Hori saihesteko agindu errepikakorra dugu. Agindu errepikakorrak honako itxura hau dauka: R EP ETIR < zen b akia> V EC ES IN IC IO < agin d u 1> ; < agin d u 2> ; --------< agin d u N > ; FIN ; < zen b akia>jarri barik zenbat aldiz errepikatu nahi dugun adierazten duen zenbakia beharko genuke. < ag ind u 1>, < ag in d u 2>eta < ag ind u N >jarri barik orain arte ikusitako

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 ;

Karelek 30 aldiz errepikatuko du agindu hau.

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:

3.- Probatu programa ondo funtzionatu arte. 4.- Probatu berriro programa baina Adelante botoia erabiliz ezkerraldean agertzen den leihoari begiratuz hor agertzen baitira zeintzuk diren robotak exekutatzen dituen aginduak. 5.- Gorde programa Ariketa12 izena jarriz. 6.- Programa hau Ariketa04 izeneko ariketan egin genuen. Ireki zuen karpeta pertsonala eta ireki Ariketa04 eta Ariketa12. Ikus daitekeenez, agindu errepikakorra erabiliz programa askoz ere sinpleagoa da. Itxi bi fitxategiak.

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.

10.- Agindu errepikakor aurreratua Atal honetan beste agindu berri bat ikasiko dugu. Agindu honen bidez, Karel robotari zerbait egiteko agin diezaiokegu behin eta berriro. Aurreko agindu errepikakorrarekin konparatuz, oraingo aginduak ez du balio errepikatzeko guk zenbaki baten bidez zehaztutako aldiak. Izan ere, oraingoan aginduak errepikatu egingo dira baldintza bat betetzen den bitartean (adibidez avanza horma ez dagoen bitartean). Agindu errepikakor aurreratuak honako itxura hau dauka: M IEN TR A S < b aldin tza> H A C ER IN IC IO < agin d u 1> ; < agin d u 2> ; Karelek, betetzen den bitartean agindu --------hauek beteko ditu. < agin d u N > ; FIN ;

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

Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean. 1. kaletik joan beharko du 3. etorbideraino. Aurreko lekuan hainbat burrunbagailu egongo dira. Dauden burrunbagailu guztiak jaso egin behar ditu.

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

Karel ekialdera begira egongo da 1. kalean eta 1. etorbidean. 1. kalean eta ez dakigun zein etorbidetan hainbat burrunbagailu egongo dira. Karel robotak burrunbagailuak dauden etorbideraino joan beharko du. Dauden burrunbagailu guztiak jaso egin behar ditu.

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.

11.- Baldintza aurreratuak Aurreko ataletan baldintzapeko aginduak eta agindu errepikakorrak ikusi ditugu. Halako agindu batzuetan < b aldin tza> bat zehaztu behar genuen ( orien tado-al-n orte , n o, jun to-a-zu m b ad or,...). Baldintza orien tad o-al-sur , fren te-lib re , d erecha-b loq u ead a horiek nahastu egin ditzakegu agindu berean Y (eta), eta O (edo) hitzekin. Aurrekoaren adibide batzuk honako hauek izan daitezke: M IEN TR A S fren te-lib re Y n o-ju n to-a-zum bador H A C ER IN IC IO avan za; Karelek, avanza agindua beteko du frente-libre ETA, FIN ; aldi berean, no-junto-a-zumbador baldintzak egia baldin badira. S I fren te-b loqu ead o O ju n to-a-zu m b ad or EN TO N C ES IN IC IO ap ag ate; Karelek, apagate agindua beteko du frente-bloqueado FIN ; EDO junto-a-zumbador baldintzen artean bat, gutxienez, egia baldin bada.

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.

12.- Agindu berriak sortu Karel robota oso robot sinplea da, orain arte ikusi dugun moduan. Izan ere, Karel ez da gai agindu asko ulertzeko. Adibidez, robotari gira-derecha edo retrocede esaten badiogu ez digu ulertuko agindu horiek definituak ez dauzkalako. Aurrekoaren adibide bat ondoko irudian ikus dezakegu:

Irudian ikus daitekeenez, programan, 3. lerroan, gira-derecha idatzi dugu. Compilar botoia sakatzean El procedimiento GIRA-DERECHA no ha sido previamente definido mezua agertzen da. Horrek esan nahi du Karel robotak ez duela ulertzen agindu hori eta, beraz, ezin izango duela programa exekutatu. Dena den, aurrekoak ez du esan nahi Karel robotak ezin duenik bere burua eskumara biratu. Izan ere, eskumara biratzeko nahikoa izango da 3 aldiz gira-izquierda jartzea. Beraz, Karel robotak bere burua eskumara biratzea nahi dugunean ondoko aginduak idatzi behar ditugu: g ira-izq u ierda; g ira-izq u ierda; g ira-izq u ierda;

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 cción> 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 cción >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:

Ikus daitekeenez, D EFIN E-N U EVA -IN S TR U C C IO N ...C O hitzak M O erabili ditugu agindu berria sortzeko. Izan ere, Karel robota D EFIN E-N U EVA -IN S TR U C C IO N ...C O ulertzeko MO programatuta dago. Programa batean agindu berri bat baino gehiago sor ditzakegu. Agindu berriak beti IN IC IA R -P R O G R A Meta A IN IC IA -EJEC U C IO N hitzen artean idatzi behar ditugu. Behin agindu berria sortuta, programaren hurrengo lerroetan erabili dezakegu aipatutako agindua. Gainera, agindu berria agindu berriaren barruan erabili dezakegu, hau da, errekurtsibitatea erabili daiteke ondoko adibidean ikus daitekeenez: D EFIN E-N U EVA -IN S TR U C C IO N recorre-hab itacion C O M O IN IC IO M IEN TR A S d erecha-b loq u ead a Y fren te-lib re H A C ER IN IC IO avan za; FIN ; S I derech a-lib re EN TO N C ES IN IC IO g ira-derech a; avan za; ap ag ate; FIN ; S I fren te-b loq ueado EN TO N C ES IN IC IO g ira-izqu ierd a; recorre-h ab itacion ; FIN ; FIN ;

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.

Izan ere, IN IC IA -EJEC U C IO N eta TER M IN A -EJEC U C IOartean dauden aginduak N ikusten baditugu errazago ulertzen da Ariketa21 programa (adibidez, sortutako salta-valla agindua ikusten delako). Hori, programazio arloan, oso garrantzitsua da; izan ere, oso ohikoa da pertsona betek egindako programa batean, denboraz, beste pertsona batek aldaketak egin behar izatea gauza gehiago gehitzeko programari edo, beste barik, hobetzeko. Halako kasuetan, programa ulergarriagoa baldin bada, bigarren pertsona horrek zailtasun gutxiago edukiko du aldaketak egiteko. Horretaz gain, programen akatsak zuzentzeko errazagoa izango da Ariketa21 programan Ariketa19 programan baino. Esaterako, programa martxan jartzen dugunean ikusten badugu Karel robotak hormak (edo hesiak) ez dituela ondo saihesten (edo jauzi egiten) D EFIN E-N U EVA -IN S TR U C C IO N salta-valla C O M O zatia begiratu behar dugu bakarrik arazoa konpontzeko.

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:

4.- Probatu programa funtzionatu arte. Funtzionatzen duenean gorde programa Ariketa22 izena jarriz eta itxi Karel simulagailua.

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:

- Karelen eginbeharra gelatik irten eta burrunbagailua jasotzea da. 3.- Mundo fitxa ireki eta sortu aurreko irudietan agertzen diren bost munduak (gorde Ariketa25a, Ariketa25b, Ariketa25c, Ariketa25d, Ariketa25e eta Ariketa25f izenak erabiliz), eta probatu programa ondo funtzionatu arte mundu guztietan. 4.- Gorde programa Ariketa25 izena jarriz eta itxi Karel simulagailua.

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

etorbidean, eskumako hormaren ondoan. Karel, hasieran 1. kalean eta 1. etorbidean ekialdera begira egongo da. 3.- Mundo fitxan sortu ondoko irudian agertzen den mundu bat (gorde Ariketa26a izena erabiliz), eta probatu programa ondo funtzionatu arte:

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.

14.- Agindu laburpena Atal honetan, ikusitako agindu guztiak bilduta daude taula batean erraz kontsultatu ahal izateko: Hasteko/Bukatzeko Aginduak eta Iruzkinak IN IC IA R -P R O G R A M A FIN A LIZ A R -P R O G R A M A IN IC IA -EJEC U C IO N TER M IN A -EJEC U C IO N { < iruzkin a> } (* < iru zkin a> *)

Oinarrizko Aginduak avan za

g ira-izq uierd a

ap ag ate

cog e-zu m b ad or d eja-zu m b ad or

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 ;

S I < b ald intza> EN TO N C ES IN IC IO < ag in d u A 1> ; < ag in d u A 2> ; ---------< ag in d u A N > ; FIN S IN O IN IC IO < ag in d u B 1> ; < ag in d u B 2> ; ---------< ag in d u B N > ; 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 ;

M IEN TR A S < b ald in tza> H A C ER IN IC IO < ag in d u 1> ; < ag in d u 2> ; --------< ag in d u N > ; FIN ;

Agindu Berriak Sortzeko D EFIN E-N U EVA -IN S TR U C C IO N < n om b re-n ueva-in stru cción > C O M O IN IC IO < ag in d u1> ; < ag in d u2> ; --------< ag in d uN > ; FIN ;