Top Banner
@andonisanz
95

Logo coding language

Jul 22, 2016

Download

Documents

Andoni Sanz

This is a complete manual to teach coding in secondary using Logo.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Logo coding language

@andonisanz

Page 2: Logo coding language

2

LEGE OHARRA

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION

OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS

INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION

PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.

License

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE

("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF

THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS

OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS

YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

a. "Adapta�on" means a work based upon the Work, or upon the Work and other pre-exis3ng works, such

as a transla3on, adapta3on, deriva3ve work, arrangement of music or other altera3ons of a literary or

ar3s3c work, or phonogram or performance and includes cinematographic adapta3ons or any other form

in which the Work may be recast, transformed, or adapted including in any form recognizably derived from

the original, except that a work that cons3tutes a Collec3on will not be considered an Adapta3on for the

purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or

phonogram, the synchroniza3on of the Work in 3med-rela3on with a moving image ("synching") will be

considered an Adapta3on for the purpose of this License.

b. "Collec�on" means a collec3on of literary or ar3s3c works, such as encyclopedias and anthologies, or

performances, phonograms or broadcasts, or other works or subject ma<er other than works listed in

Sec3on 1(g) below, which, by reason of the selec3on and arrangement of their contents, cons3tute

intellectual crea3ons, in which the Work is included in its en3rety in unmodified form along with one or

more other contribu3ons, each cons3tu3ng separate and independent works in themselves, which

together are assembled into a collec3ve whole. A work that cons3tutes a Collec3on will not be considered

an Adapta3on (as defined above) for the purposes of this License.

c. "Distribute" means to make available to the public the original and copies of the Work or Adapta3on, as

appropriate, through sale or other transfer of ownership.

d. "License Elements" means the following high-level license a<ributes as selected by Licensor and indicated

in the 3tle of this License: A<ribu3on, Noncommercial, ShareAlike.

e. "Licensor" means the individual, individuals, en3ty or en33es that offer(s) the Work under the terms of

this License.

f. "Original Author" means, in the case of a literary or ar3s3c work, the individual, individuals, en3ty or

en33es who created the Work or if no individual or en3ty can be iden3fied, the publisher; and in addi3on

(i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing,

deliver, declaim, play in, interpret or otherwise perform literary or ar3s3c works or expressions of folklore;

(ii) in the case of a phonogram the producer being the person or legal en3ty who first fixes the sounds of a

performance or other sounds; and, (iii) in the case of broadcasts, the organiza3on that transmits the

broadcast.

g. "Work" means the literary and/or ar3s3c work offered under the terms of this License including without

limita3on any produc3on in the literary, scien3fic and ar3s3c domain, whatever may be the mode or form

of its expression including digital form, such as a book, pamphlet and other wri3ng; a lecture, address,

sermon or other work of the same nature; a drama3c or drama3co-musical work; a choreographic work or

Page 3: Logo coding language

3

entertainment in dumb show; a musical composi3on with or without words; a cinematographic work to

which are assimilated works expressed by a process analogous to cinematography; a work of drawing,

pain3ng, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated

works expressed by a process analogous to photography; a work of applied art; an illustra3on, map, plan,

sketch or three-dimensional work rela3ve to geography, topography, architecture or science; a

performance; a broadcast; a phonogram; a compila3on of data to the extent it is protected as a

copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise

considered a literary or ar3s3c work.

h. "You" means an individual or en3ty exercising rights under this License who has not previously violated

the terms of this License with respect to the Work, or who has received express permission from the

Licensor to exercise rights under this License despite a previous viola3on.

i. "Publicly Perform" means to perform public recita3ons of the Work and to communicate to the public

those public recita3ons, by any means or process, including by wire or wireless means or public digital

performances; to make available to the public Works in such a way that members of the public may access

these Works from a place and at a place individually chosen by them; to perform the Work to the public by

any means or process and the communica3on to the public of the performances of the Work, including by

public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds

or images.

j. "Reproduce" means to make copies of the Work by any means including without limita3on by sound or

visual recordings and the right of fixa3on and reproducing fixa3ons of the Work, including storage of a

protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or

rights arising from limitations or exceptions that are provided for in connection with the copyright protection under

copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide,

royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in

the Work as stated below:

a. to Reproduce the Work, to incorporate the Work into one or more Collec3ons, and to Reproduce the Work

as incorporated in the Collec3ons;

b. to create and Reproduce Adapta3ons provided that any such Adapta3on, including any transla3on in any

medium, takes reasonable steps to clearly label, demarcate or otherwise iden3fy that changes were made

to the original Work. For example, a transla3on could be marked "The original work was translated from

English to Spanish," or a modifica3on could indicate "The original work has been modified.";

c. to Distribute and Publicly Perform the Work including as incorporated in Collec3ons; and,

d. to Distribute and Publicly Perform Adapta3ons.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above

rights include the right to make such modifications as are technically necessary to exercise the rights in other media

and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but

not limited to the rights described in Section 4(e).

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following

restrictions:

a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a

copy of, or the Uniform Resource Iden3fier (URI) for, this License with every copy of the Work You

Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms

of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient

under the terms of the License. You may not sublicense the Work. You must keep intact all no3ces that

refer to this License and to the disclaimer of warran3es with every copy of the Work You Distribute or

Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effec3ve

Page 4: Logo coding language

4

technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise

the rights granted to that recipient under the terms of the License. This Sec3on 4(a) applies to the Work as

incorporated in a Collec3on, but this does not require the Collec3on apart from the Work itself to be made

subject to the terms of this License. If You create a Collec3on, upon no3ce from any Licensor You must, to

the extent prac3cable, remove from the Collec3on any credit as required by Sec3on 4(d), as requested. If

You create an Adapta3on, upon no3ce from any Licensor You must, to the extent prac3cable, remove from

the Adapta3on any credit as required by Sec3on 4(d), as requested.

b. You may Distribute or Publicly Perform an Adapta3on only under: (i) the terms of this License; (ii) a later

version of this License with the same License Elements as this License; (iii) a Crea3ve Commons

jurisdic3on license (either this or a later license version) that contains the same License Elements as this

License (e.g., A<ribu3on-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). You must include a

copy of, or the URI, for Applicable License with every copy of each Adapta3on You Distribute or Publicly

Perform. You may not offer or impose any terms on the Adapta3on that restrict the terms of the

Applicable License or the ability of the recipient of the Adapta3on to exercise the rights granted to that

recipient under the terms of the Applicable License. You must keep intact all no3ces that refer to the

Applicable License and to the disclaimer of warran3es with every copy of the Work as included in the

Adapta3on You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Adapta3on,

You may not impose any effec3ve technological measures on the Adapta3on that restrict the ability of a

recipient of the Adapta3on from You to exercise the rights granted to that recipient under the terms of the

Applicable License. This Sec3on 4(b) applies to the Adapta3on as incorporated in a Collec3on, but this

does not require the Collec3on apart from the Adapta3on itself to be made subject to the terms of the

Applicable License.

c. You may not exercise any of the rights granted to You in Sec3on 3 above in any manner that is primarily

intended for or directed toward commercial advantage or private monetary compensa3on. The exchange

of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be

considered to be intended for or directed toward commercial advantage or private monetary

compensa3on, provided there is no payment of any monetary compensa3on in con-nec3on with the

exchange of copyrighted works.

d. If You Distribute, or Publicly Perform the Work or any Adapta3ons or Collec3ons, You must, unless a

request has been made pursuant to Sec3on 4(a), keep intact all copyright no3ces for the Work and

provide, reasonable to the medium or means You are u3lizing: (i) the name of the Original Author (or

pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another

party or par3es (e.g., a sponsor ins3tute, publishing en3ty, journal) for a<ribu3on ("A<ribu3on Par3es") in

Licensor's copyright no3ce, terms of service or by other reasonable means, the name of such party or

par3es; (ii) the 3tle of the Work if supplied; (iii) to the extent reasonably prac3cable, the URI, if any, that

Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright no3ce or

licensing informa3on for the Work; and, (iv) consistent with Sec3on 3(b), in the case of an Adapta3on, a

credit iden3fying the use of the Work in the Adapta3on (e.g., "French transla3on of the Work by Original

Author," or "Screenplay based on original Work by Original Author"). The credit required by this Sec3on

4(d) may be implemented in any reasonable manner; provided, however, that in the case of a Adapta3on

or Collec3on, at a minimum such credit will appear, if a credit for all contribu3ng authors of the

Adapta3on or Collec3on appears, then as part of these credits and in a manner at least as prominent as

the credits for the other contribu3ng authors. For the avoidance of doubt, You may only use the credit

required by this Sec3on for the purpose of a<ribu3on in the manner set out above and, by exercising Your

rights under this License, You may not implicitly or explicitly assert or imply any connec3on with,

sponsorship or endorsement by the Original Author, Licensor and/or A<ribu3on Par3es, as appropriate, of

You or Your use of the Work, without the separate, express prior wri<en permission of the Original Author,

Licensor and/or A<ribu3on Par3es.

e. For the avoidance of doubt:

i. Non-waivable Compulsory License Schemes. In those jurisdic3ons in which the right to collect

royal3es through any statutory or compulsory licensing scheme cannot be waived, the Licensor

reserves the exclusive right to collect such royal3es for any exercise by You of the rights granted

under this License;

ii. Waivable Compulsory License Schemes. In those jurisdic3ons in which the right to collect

royal3es through any statutory or compulsory licensing scheme can be waived, the Licensor

Page 5: Logo coding language

5

reserves the exclusive right to collect such royal3es for any exercise by You of the rights granted

under this License if Your exercise of such rights is for a purpose or use which is otherwise than

noncommercial as permi<ed under Sec3on 4(c) and otherwise waives the right to collect

royal3es through any statutory or compulsory licensing scheme; and,

iii. Voluntary License Schemes. The Licensor reserves the right to collect royal3es, whether

individually or, in the event that the Licensor is a member of a collec3ng society that administers

voluntary licensing schemes, via that society, from any exercise by You of the rights granted

under this License that is for a purpose or use which is otherwise than noncommercial as

permi<ed under Sec3on 4(c).

f. Except as otherwise agreed in wri3ng by the Licensor or as may be otherwise permi<ed by applicable law,

if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adapta3ons or

Collec3ons, You must not distort, mu3late, modify or take other derogatory ac3on in rela3on to the Work

which would be prejudicial to the Original Author's honor or reputa3on. Licensor agrees that in those

jurisdic3ons (e.g. Japan), in which any exercise of the right granted in Sec3on 3(b) of this License (the right

to make Adapta3ons) would be deemed to be a distor3on, mu3la3on, modifica3on or other derogatory

ac3on prejudicial to the Original Author's honor and reputa3on, the Licensor will waive or not assert, as

appropriate, this Sec3on, to the fullest extent permi<ed by the applicable na3onal law, to enable You to

reasonably exercise Your right under Sec3on 3(b) of this License (right to make Adapta3ons) but not

otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING AND TO THE FULLEST EXTENT PERMITTED

BY APPLICABLE LAW, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF

ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT

LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,

NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE

OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED

WARRANTIES, SO THIS EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE

LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY

DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE

POSSIBILITY OF SUCH DAMAGES.

7. Termination

a. This License and the rights granted hereunder will terminate automa3cally upon any breach by You of the

terms of this License. Individuals or en33es who have received Adapta3ons or Collec3ons from You under

this License, however, will not have their licenses terminated provided such individuals or en33es remain

in full compliance with those licenses. Sec3ons 1, 2, 5, 6, 7, and 8 will survive any termina3on of this

License.

b. Subject to the above terms and condi3ons, the license granted here is perpetual (for the dura3on of the

applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the

Work under different license terms or to stop distribu3ng the Work at any 3me; provided, however that

any such elec3on will not serve to withdraw this License (or any other license that has been, or is required

to be, granted under the terms of this License), and this License will con3nue in full force and effect unless

terminated as stated above.

8. Miscellaneous

a. Each 3me You Distribute or Publicly Perform the Work or a Collec3on, the Licensor offers to the recipient a

license to the Work on the same terms and condi3ons as the license granted to You under this License.

b. Each 3me You Distribute or Publicly Perform an Adapta3on, Licensor offers to the recipient a license to the

original Work on the same terms and condi3ons as the license granted to You under this License.

Page 6: Logo coding language

6

c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the

validity or enforceability of the remainder of the terms of this License, and without further ac3on by the

par3es to this agreement, such provision shall be reformed to the minimum extent necessary to make

such provision valid and enforceable.

d. No term or provision of this License shall be deemed waived and no breach consented to unless such

waiver or consent shall be in wri3ng and signed by the party to be charged with such waiver or consent.

e. This License cons3tutes the en3re agreement between the par3es with respect to the Work licensed here.

There are no understandings, agreements or representa3ons with respect to the Work not specified here.

Licensor shall not be bound by any addi3onal provisions that may appear in any communica3on from You.

This License may not be modified without the mutual wri<en agreement of the Licensor and You.

f. The rights granted under, and the subject ma<er referenced, in this License were draMed u3lizing the

terminology of the Berne Conven3on for the Protec3on of Literary and Ar3s3c Works (as amended on

September 28, 1979), the Rome Conven3on of 1961, the WIPO Copyright Treaty of 1996, the WIPO

Performances and Phonograms Treaty of 1996 and the Universal Copyright Conven3on (as revised on July

24, 1971). These rights and subject ma<er take effect in the relevant jurisdic3on in which the License

terms are sought to be enforced according to the corresponding provisions of the implementa3on of those

treaty provisions in the applicable na3onal law. If the standard suite of rights granted under applicable

copyright law includes addi3onal rights not granted under this License, such addi3onal rights are deemed

to be included in the License; this License is not intended to restrict the license of any rights under

applicable law.

Crea�ve Commons No�ce

Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work.

Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including

without limitation any general, special, incidental or consequential damages arising in connection to this license.

Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor

hereunder, it shall have all rights and obligations of Licensor.

Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative

Commons does not authorize the use by either party of the trademark "Creative Commons" or any related

trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use

will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its

website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark

restriction does not form part of this License.

Creative Commons may be contacted at http://creativecommons.org/.

Page 7: Logo coding language

7

EDUKIAK

ZER DA LOGO? ................................................................................................................ 12

ZEINTZUK GAITASUN IKASTEN DIRA? ............................................................................. 12

ETA ADIMENAK? ............................................................................................................. 13

NOLA DAGO ANTOLATUTA? ............................................................................................ 16

ZER DA PROGRAMAZIO EGITURATUA? ........................................................................... 18

LOGO TXARTO ERABILTZEN BADA ................................................................................... 19

NOLA DAGO ANTOLATUTA LIBURU HAU? ....................................................................... 19

JARRAITU AURRETIK: NOLA ADIERAZI FITXATEGI BATEN KOKAPENA ............................. 20

LEHEN BLOKEA: DORTOKAREN KONTROLA .................................................................... 21

OINARRIZKO MUGIMENDUAK ........................................................................................ 22

DORTOKAREN ARKATZA KONTROLATZEKO ..................................................................... 23

PERSPEKTIBAN LAN EGITEKO (3D) .................................................................................. 25

PERSPECTIVE ............................................................................................................... 25

PANTAILA KONTROLATZEKO ............................................................................................ 27

MULTIMEDIA ................................................................................................................... 28

SOINUAK...................................................................................................................... 28

CD BATETIK MUSIKA JOTZEKO ..................................................................................... 29

BIDEO BAT IKUSARAZTEKO .......................................................................................... 30

LEHEN BLOKEKO ARIKETAK ............................................................................................. 31

BIGARREN BLOKEA: DATU-EGITURAK ............................................................................. 33

ALDAGAIAK SORTZEKO ................................................................................................... 33

OROKORRAK ................................................................................................................ 33

FUNTZIO BARRUKOAK (LOKALAK) (ikusi funtzioak) .................................................... 35

BESTELAKOAK .............................................................................................................. 36

LIST / ITEM / COUNT / FPUT / LPUT / REMOVE / MEMBER (F) .............................. 36

ARRAY / ITEM (F) / SETITEM (P) ............................................................................... 39

PILAK: PUSH (P) / POP (F) ........................................................................................ 41

ILARAK: QUEUE / DEQUEUE (F) ............................................................................... 42

Page 8: Logo coding language

8

BIGARREN BLOKEKO ARIKETAK ....................................................................................... 43

HIRUGARREN BLOKEA: FUNTZIOAK/PROZEDURAK ........................................................ 44

FUNTZIOAK/PROZEDURAK SORTZEKO ............................................................................ 44

DEFINITZEKO (EDITOREAN) ......................................................................................... 46

ERABILTZEKO ............................................................................................................... 46

ERREKURTSIBITATEA ....................................................................................................... 47

HIRUGARREN BLOKEKO ARIKETAK .................................................................................. 49

LAUGARREN BLOKEA: FLUXUAK FLUXU KONTROLA ....................................................... 50

BALDINTZAK ................................................................................................................ 50

IF condi�on [instruc�ons if true] .............................................................................. 50

IFELSE condi�on [instruc�ons if true] ....................................................................... 51

NOT .......................................................................................................................... 51

OR (edo) eta AND (eta) ............................................................................................ 51

TEST condi3on ......................................................................................................... 52

NUMBER? (zenbaki bat da?) ................................................................................... 52

EMPTY? (hutsik dago?) ............................................................................................ 52

MEMBERP element set (elementua multzoaren barruan dago?) ........................... 53

EQUALP elem/list elem/list (biak berdinak dira?) ................................................... 53

WORDP (hitza/zenb?) / LISTP (zerrenda?) / ARRAYP (array-a?) .............................. 54

BEGIZTAK ..................................................................................................................... 54

REPEAT count [instruconlist] (1..n) ........................................................................ 54

FOR [controllist] [instruconlist] (0..n) .................................................................... 55

DO.WHILE [instruc�onlist] [condi�onlist] (1..n) ....................................................... 57

WHILE [condi�onlist] [instruc�onlist] (0..n) ............................................................. 57

DO.UNTIL [instruconlist] [condionlist] (1..n) ....................................................... 57

UNTIL [condionlist] [instruconlist] (0..n) ............................................................. 58

FOREACH # ? ?REST (iterazio elementua gainontzekoa) ......................................... 58

FOREVER .................................................................................................................. 59

STOP ........................................................................................................................ 59

BEGIZTEN ARTEKO BALIOKIDETASUNAK ..................................................................... 59

1..10 (1..n) ............................................................................................................... 59

0..10 (0..n) ............................................................................................................... 60

PAUSAK EZARTZEKO ETA ETETEKO .................................................................................. 60

Page 9: Logo coding language

9

PAUSE / CONTINUE ..................................................................................................... 60

LAUGARREN BLOKEKO ARIKETAK .................................................................................... 61

BOSTGARREN BLOKEA: ELKARRAKZIOA .......................................................................... 63

KONTSOLATIK BALIO BAT JASOTZEKO ETA INPRIMATZEKO ............................................. 63

READWORD (f) ............................................................................................................ 63

READLIST (f) ................................................................................................................. 63

READCHAR (f) .............................................................................................................. 64

YESNOBOX window3tle tex<oshow (f) ....................................................................... 64

PRINT / PR / SHOW (p) ................................................................................................ 64

SENTENCE (letrak eta aldagaiak konbinatzeko) (f) ...................................................... 65

FITXATEGIEKIN LAN EGITEKO .......................................................................................... 65

FITXATEGI BATEAN IDAZTEKO ..................................................................................... 66

OPENWRITE / OPENUPDATE / SETWRITE / CLOSE .................................................. 66

FITXATEGI BATETIK IRAKURTZEKO ............................................................................... 66

OPENREAD / SETREAD / READLIST / EOFP / CLOSE ................................................. 66

KONTSOLAN IDATZITAKOA FITXATEGI BATERA PASATZEKO ......................................... 67

DRIBBLE / NODRIBBLE ............................................................................................. 67

PANTAILAKO GUNEEKIN LAN EGITEKO ............................................................................ 67

BITLOAD / BITSAVE name (p) ...................................................................................... 67

BITCOPY / BITCUT width height / BITPASTE (p)........................................................... 67

SETBITINDEX number (p) ............................................................................................ 68

SETBITMODE number (p) ............................................................................................ 68

TESTU-KATEEKIN LAN EGITEKO ....................................................................................... 71

ASCII character / CHAR number (f) ............................................................................. 71

FIRST / LAST / BUTFIRST / BUTLAST string (f) ............................................................. 71

LOWERCASE / UPPERCASE word (f) ............................................................................ 71

MEMBER string1 string2/list (f) .................................................................................. 72

LANA GORDETZEKO ETA KARGATZEKO ........................................................................... 73

SAVE name .................................................................................................................. 73

LOAD name ................................................................................................................. 73

MAKE "STARTUP [funconname] ................................................................................ 73

SAGUA KONTROLATZEKO ................................................................................................ 74

MOUSEON leMbu<ondown leMbu<onup rightbu<ondown rightbu<onup move ..... 74

Page 10: Logo coding language

10

MOUSEON [SETPOS MOUSEPOS PENDOWN] [PENUP] [] [] [SETPOS MOUSEPOS] .... 74

MOUSEOFF .................................................................................................................. 74

MOUSEPOS.................................................................................................................. 74

SAREA KONTROLATZEKO ................................................................................................. 74

OINARRIZKO INSTRUKZIOAK BIRDEFINITZEKO ............................................................... 74

COPYDEF / ERASE (P)................................................................................................... 74

PAUSA BAT EZARTZEKO: WAIT duraon (p) .................................................................... 75

BOSTGARREN BLOKEKO ARIKETAK .................................................................................. 76

SEIGARREN BLOKEA: MATEMATIKA ................................................................................ 77

ARITMETIKA .................................................................................................................... 77

Dezimalak eta notazio zien3fikoa: .............................................................................. 77

Bestelako eragiketa matema3koak: ............................................................................ 77

SUM / DIFFERENCE / PRODUCT / QUOTIENT / MODULO (hondarra) ..................... 77

MINUS / INT / ROUND / SQRT / POWER ................................................................. 78

EXP (e zenbakia) / LN (LOGARITMO NEPERIANOA) / LOG10 (10EKO LOGARITMOA)

................................................................................................................................. 78

SIN (SINUA GRADUTAN) / RADSIN (SINUA RADIANETAN) / COS (KOSENOA

GRADUTAN) / RADCOS (KOSENOA RADIANETAN) / TAN (TANGENTEA) / ARCTAN

(ARKOTANGENTEA GRADUTAN) .............................................................................. 79

OINARRIZKO GEOMETRIA ............................................................................................... 79

CIRCLE radius ............................................................................................................... 79

ARC angle radius ......................................................................................................... 79

ELLIPSE crosswise.semiaxis inline.semiaxis ................................................................ 79

ELLIPSEARC angle crosswise.semiaxis inline.semiaxis startangle ............................... 79

AUSAZKO BALIOAK .......................................................................................................... 79

RANDOM value (f) ....................................................................................................... 79

RERANDOM (p) ........................................................................................................... 80

PICK (f) ......................................................................................................................... 80

KONSTANTEAK ................................................................................................................ 81

GOLDENRATIO ............................................................................................................. 81

PI ................................................................................................................................. 81

SEIGARREN BLOKEKO ARIKETAK ..................................................................................... 82

PROGRAMATZEKO ESTRATEGIAK .................................................................................... 83

EIK PARADIGMA .............................................................................................................. 87

Page 11: Logo coding language

11

ADIBIDE BATZUK ............................................................................................................. 88

PROPOSATURIKO PROIEKTUAK ....................................................................................... 92

Page 12: Logo coding language

12

ZER DA LOGO?

LOGO ordenagailuan programatzeko mintzaira egituratua dugu. Egituratua da egitura

zehatzak erabiltzen dituelako (sekuentzia, baldintza eta errepikapenak), eta mintzaira

da ordenagailuak uler dezakeen grama3ka zehatza erabiltzen duelako.

Garai batean benetako dortoka-robota asmatu zuten. Urruneko kontrol baten bitartez

marrazkiak egiteko gai zen. Modu berean jolastuko gara LOGOrekin.

Ezaugarri hauek ditu:

1. Oso erraz ikasten da, eta emaitzak

oso azkar ikusten dira.

2. Gauza sinple zein korapilotsuak egin

daitezke.

3. Marrazki- eta testu-kontsolak ditu.

4. Hainbeste adimen garatzen dira

(ikusi hurrengoko puntuak).

5. Ikasleak:

a. Arazoak argitzeko ahalmena

indartzen du.

b. Bere burua hobeto kudeatzen du (autonomia).

c. Planifikatzeko gaitasuna garatzen du.

ZEINTZUK GAITASUN IKASTEN DIRA?

LOGOrekin hainbeste gai jorratzen dira, be3ere modu jostagarri batean:

1. Matema�kan: es3mazioa, poligonoak, perimetro eta azalerak, simetria,

koordenatuak, probabilitateak, funtzioak, algebra, trigonometria, fraktalak

(grafiko errekurtsiboak), mosaikoak eta abar.

2. Informa�kan: programazio teknikak, kode-diseinua, datu-fluxuak, aldagaiak eta

errekurtsioa.

3. Lengoaian: esaldien egiturak, ordenagailu-mintzaira, testuen prozesatzea,

programazio-lengoaiaren birdefinitzea (euskaraz jarri ahal da), atzerriko

hizkuntza (ingelesez).

4. Gizarte-zientzian: kokapen geografikoak, kartografia.

5. Zientzian: robo3ka, sentsoreak, simulazio teknologikoak, sistema biologikoen

simulazioak, sistema adimentsuak.

6. Artean: dortokarekin eginiko grafikoak, musika, dantza, mul3media.

Page 13: Logo coding language

13

ETA ADIMENAK?

1. Logiko matema�koa: logikaren garapena hainbat mailatan gertatzen da. Alde

bate3k, arazo ba3 konponbidea emateko behar den logikaren parte3k; beste

alde bate3k, kode-fluxuen kontrolerako behar den logika3k.

2. Espaziala: dortokarekin eginiko marrazkiak plano kartesiar batean egiten dira, bi

edo hiru dimentsiotan. Gainera, espazio horretan eginiko lana erla3boa zein

absolutua izan daiteke.

3. Linguis�koa: dortoka kontrolatzeko zein LOGOrekin programatzeko bere

lengoaiaren grama3ka ondo jakin behar da erabiltzen.

Page 14: Logo coding language

14

4. Musikala: musika garatzeko aukerak izateaz gain aukera anitz daude dortokaren

ekintzak eta musika elkarrekin koordinatzeko.

5. Gorputz-kinestesikoa: marrazki-kontsolan eginiko akzioak dortokaren

mugimenduen bitartez gertatzen da. Horiek azkartu edo moteldu ahal dira eta

dortokarekin dantzak prestatu. Gainera animazio tekniken bitartez

mugimenduak simulatu ahal ditugu.

6. Naturalista: marrazkien bitartez naturako hainbat izaki bizidunen talde-joeren

simulazioak egin daitezke (bakterioen ugalketa zikloak), naturako zenbait

egitura geometrikoen sorburu matema3koa imita daiteke (oskolak, hostoak…),

beste egitura batzuen natura fraktala (zuhaitzak…).

7. Intrapertsonala: hausnarketa, planifikazioa, logika pertsonala, norberaren

burua gainditzea, hainbat estrategien garapena, esperimentazioa, barne-

bisualizazioa, eta abar garatzen dira.

Page 15: Logo coding language

15

8. Interpertsonala: talde-lana, talde-proiektuak, lankideen arteko koordinazioa,

besteenganako ardura, besteekiko komunikazioa, lan-banaketa, akordioak…

Page 16: Logo coding language

16

NOLA DAGO ANTOLATUTA?

LOGOn bi lan-gune dituzu: grafikoa eta testukoa.

1) GRAFIKOA:

Berton DORTOKA bat topa dezakezu (triangelu itxurakoa, zeina alda daitekeen beste

edozein irudiaga3k), eta bere mugimenduak aginduen bitartez kontrolatu ahal dira.

Dortokak, gainera, marraztu eta beste hainbat eragiketa egin ditzake. Pentsatu

dortoka zuk kontrolatuko duzun robota dela.

2) TESTUZKOA:

Testu-kontsola deritzon lan-gunea da, eta berton aginduak idazten dira, LOGOk

itzulitako mezuak irakurri eta abar. Kontsolan lerroak BANAN-BANAN idazten dira,

eta hainbat agindu idatzi daitezke bata bestearen atze3k. Halere, eta kodearen

irakurgarritasunaren onuran, hobe da aginduak hainbat lerrotan antolatzea,

funtzioak idazteko, esaterako.

Editore hori EDALL botoiaren bitartez irekitzen da, edo kontsolaren barruan EDALL

idatzita. Beraren barne aurreko saialdietan idatzitakoa mantenduko da, eta diskoan

gorde zein berta3k berreskura daiteke.

3) BOTOIAK:

a. HALT: unean exekutatzen ari den programa geldiarazten du. Hau oso

baliagarria da begizta luzeetan (iterazio lar daudenean, ordenagailua

moteltzen baita), edota amaigabeko egituretan (akatsez begizta infinitu

baten barruan sartzen garenean).

b. TRACE: kodearen arazketa egiteko bere biziko garrantzizko tekla dugu

hau. Programaren barruan zein puntutan gauden kokatuta agerrarazten

Page 17: Logo coding language

17

du kontsola3k, horrela jakin dezakegu zer ari den gertatzen kodearen

barruan, akatsak edo funtzionamendu okerrak zuzendu ahal izateko.

c. PAUSE: halt-en antzekoa, baina geldiunea ezartzen du. Klikatzerakoan

leiho bat agertuko zaigu. Exekuzioarekin jarraitzeko leiho horretan

teklatu behar da CONTINUE.

d. STATUS: leiho bat irekitzen da unean dagoen konfigurazioaren balioekin

(dortokaren kokapena, orientazioa, koloreak, eta abar).

e. STEP: exekuzioan dagoen kodea LERROZ LERRO exekutatzen du eta lerro

bakoitzaren informazioa ematen digu kontsola3k.

f. RESET: berrabiarazten du marrazki-gunea.

g. EXECUTE: kontsolako lerroan idatzitakoa exekutatzen du (efektu bera

lortuko duzu ENTER/RETURN teklari sakatuz gero).

h. EDALL: editorea irekitzen da.

Page 18: Logo coding language

=C��

>����&� ���8�>= ��=6;��6;�?�

�$)$�"64()2/#("*��*(.-)-�#-4"/-*(�"42%,-:�(&"/-/"*( �.)(4)"#"��02)-�$42/-)"�:$0"/:$/"%�(2%"))2/:$%�,2/-$%"?�

=�� 0�$�������$ ?�"42%,-"*�+"/"�+$&/$")$%�"/:$3*�,(":$%$"%��

��� � A��������$ ?�"6,"4"2�+"/$%�+"62(")$%�")"+$)"�"42%,-�+"/�"6"�+$&/$�$1$*-/"/:$*(�

"-*$)"��

�B�� A�!����$ ?�$))$.2*".$%�$42/-)"*��

�-))$*(�$42/-)"*�$-)$%�")/$"%�*(%+2%"�,"2/$:*$��2*-&2�",2+2,$�+"/?�

Page 19: Logo coding language

=N��

� 6B��6 ���A=6>�,A����

=�� $*-$%/:2"*�+"2%(�$:�,2)"�$)"+26/:$%���� � �(42*"�$:�,"�".62*"/:$%��$/"�*(,$"�-6$)/-�+")2*�$)" +26/:$%�,"��B�� �6"%2>*":2("��,$&*(%.(&2:2("�$/"�")":*$/"�$:�,"�".6 2*"/:$%��

, ���� �,6 �6;6�=A;�;��;?�

�:"6.$%"*�+6(*$*"�"-)*2/-*(�,2/-:-��$/"�+"*(2/:")$% �+"))-"%�"/"6$:�"/"6�"%/(6"/:$%�,"�2%8()#":2("��+$3$)$�",2+2,$�%"02*(�$/"�6")�$#"%,"��

�,2+2,$"*�4)2&�+$),$/"%�,"-,$�#")*"/-/"��$/"�*(,$"� :-:$%$"%�*(.2"/-�$/"�2/&"&2�,"2/$*$���)$%�$,2/()$"%��$,(�*(%/&(6"%��6$))(�+"/ $*("*�2:"%$:�4$)(��$1$*-:2("�2*-&/$*(���(%/&(6"3*�2)/$%�+$0")�,$%�2%8()#":2("�C�&2%+(6(")$%�(&/$"%�",2$)":/$%�,"���,2+2,$�+"/�+"2%(�4$02"4(�+","-,$�6"-*2�4)2&�$:+$),2%$/"%�2*-&2*(�,2/-:-��

�(,$)$%�+"/$"%�"*"/&2*�/(."/:$%�+",-:-�$,(/"�:-)$�" ,2+2,$"*�62+-)-�0(%$/"%�"4$)/:$"�4-)"�+",-:-��:-)$�2:$%"�2*-&2*(�,"��;"*2%")":2�%2)2�$�.(&/":�� "%,(%2�&"%:U4#"26�5(#���

��!������� ?�"42%,-"*�$#"/$*(�6$))(�+$)$"%�2,"/:2�,"2/$:*$�+"/"�+$&/$")$%�"/:$3*��+"2%"�*(,$"�$))":"4(�2)"*-))2�"0"6�2:"/$*(�0"2%+"/�6$))(/"%�"%/(6"/:$*(�4(#$%,"/:$%�,"��",2+2,$:�$,2/()$")$%�+"))-"%��������/$*6"/-��$, (�+(/(2")2�&"*"/-���

A��$���$�������"���!����!� ����������9

=�� �,2+2,$"*�.)(+"/-��"6,"/-�$/"�:-)$�$&.$)2#$%/-"*�$4 2%���� � �6(*$�+"*(2/:")$%�"#"2$)"*(�")2*$/"*�$42%��B�� ()�,"*2:*2:-*$$%�:"6"%/:"*�".-%/"/-�$/"?�

"� � �&.$)2#$%/":2(")$%�+2/")/$:�")42/:$%�&"2"/-��+�� �(*-#$%/-�0(%$%�6"4-%/:")$%�+2/")/$:�*(%.(%/:$%�&"2"/-��5�� �)"*"&6$")2�4"6,$/-��

A��$��$"���$������9

=�� ������������������� � ���������������B�� ���� �����D�� ���!������������H�� �������� ����K�� ������������

Page 20: Logo coding language

�F��

D����=6;�;���6=<9, ���=���>=)=6B�6��=A�6�,< <�&�,�

��)$%�"42%,-�+"/:-$*�>/1"/$42$%�*(*".$%$%�+2,$"�$&*"/:$%�,2:*24-/$���2,$�0()2�$))":"�,"��+"2%"�;"*2%�+$0")�,"�:$0"/:�#$0"/:�;")/: $%���-))$%4(�",2+2,$"%�#"))":*2�+"/$%�,2&*(�+2,$"�:$2%�,$%�2*-&2*(�,-4-������������ ���+"))-"%��$/"�4$)(������*").$/"%���

�)-,2")$%�*").$/"�",2$)":/$*(�0-))$%4(*("�$42%�+$0" )�,"?��

�$#"4-%������*").$/"%�,"-*","6"�%2)$�")4":*2"���* -&2�*").$/$%�������4(2*(�+"))"%�2*-&�,"2/$*$6"���"))"�0())$/"%�*62*"/-:�4$)(���*� +$0")�,-$%�8()#"/-"%�;"))2*(�,"?�

�()/":��4-)$�2)-,2")$%�2:$%"���� ��������+"6,2%�+", "�+2,$�(&("�0(%$6"�",2$)":2*(�,"?�

�9E;����E������E&�������E/�����E��������� �

����������� �*")"*/$)$�+$)$:2"�,$%$:�+2*(2:/-�+$0")�,-4-���)2 �",2$)":/$*(�+"))"�%()#"6�#(,-"%�$)"+262�%"02�,-4-6"��+$)":������)$%�" :*$%�8()#"/-"�0"-�2:"%4(�,"?�

�9EE;����EE������EE&�������EE/�����EE��������� � �

Page 21: Logo coding language

21

LEHEN BLOKEA: DORTOKAREN KONTROLA

Dortoka kartesiar espazio baten mugitzen den triangelu txikia da, bere atze3k arrasto

bat utzita. Arrasto horren itxura (gogortasuna, kolorea, efektua eta abar) eralda

daiteke, baita dortokaren forma zein espazio3k mugitzeko modua ere.

Page 22: Logo coding language

22

OINARRIZKO MUGIMENDUAK

FORWARD distance / FD distance (P) FD 100 ;aurrera egiten du 100 unitate FD -100 ;atzera egingo du zenbaki negatiboa delako

BACK distance / BK distance (P) BK 50 ;atzera egingo du 50 unitate

LEFT angle / LT angle (P) LEFT 45 ;ezkerrera jiratzen da 45 gradu

RIGHT angle / RT angle (P) RT 360 ;eskumara jiratzen da 360 gradu, buelta osoa

HOME (P) HOME ;hasierako puntura mugitzen da

SHOWTURTLE / ST / HIDETURTLE / HT (P) ST ;dortoka agerrarazten du HT ;dortoka ezkutatzen du

SLOWDRAW slowness (P) SLOWDRAW 1 ;dortoka motelago mugitzen da

SETXY x y / SETPOS [x y] (P) SETXY 100 150 ;dortokaren hasierako posiziotik (0,0) X,Y ardatzeko posizio berrira mugitzen du SETPOS [-25 0]

XCOR / YCOR (F) PRINT XCOR ;dortokaren X edo Y posizioa itzultzen du

SETTURTLE number (P) SETTURTLE 0 LT RANDOM 360 FD 100 SETTURTLE 1 LT RANDOM 360 FD 100 SETTURTLE 2 LT RANDOM 360 FD 100 ;LOGOK 1024 dortoka dauzka erabiltzeko, 0tik 1023ra.

CS REPEAT 100 [SETTURTLE REPCOUNT SETPC RANDOM 16 LT RANDOM 360 SETPENSIZE RANDOM 5 FD RANDOM 200]

Page 23: Logo coding language

23

DORTOKAREN ARKATZA KONTROLATZEKO

PENDOWN / PD (P) PD FD 100 ;dortokak marrazten du

PENUP / PU (P) PU FD 500 ;dortokak arkatza altxatu eta mugitzen da marraztu barik

PENPAINT / PPT (P) PPT FD 10 ;dortokak margotze moduan funtzionatzen du

PENERASE / PE (P) PE FD 10 ;dortokak ezabatze moduan funtzionatzen du

PENREVERSE / PX (P) PX ;dortoka PPT-tik PE-ra pasatzen da, edota alderantziz

SETPENCOLOR color / SETPC color (P)

Oinarrizko koloreak hauek dira:

Index Color Vector Color

0 [0 0 0] Black

1 [0 0 255] Blue

2 [0 255 0] Lime

3 [0 255 255] Cyan (Aqua)

4 [255 0 0] Red

5 [255 0 255] Magenta (Fuchsia)

6 [255 255 0] Yellow

7 [255 255 255] White

8 [155 96 59] Brown

9 [197 136 18] Tan

10 [100 162 64] Olive

11 [120 187 187] Sky Blue

12 [255 149 119] Salmon

13 [144 113 208] Medium Purple

14 [255 163 0] Orange

15 [183 183 183] Dark Gray

Page 24: Logo coding language

24

SETPC RANDOM 16 FD 100 ;arkatzaren kolorea aldatzen du

Eta hauek dira beste kolore batzuk, definitu barik daudenak baina edozein

momentutan definitu eta erabili ahal direnak:

Color Name Color vector

AliceBlue [240 248 255]

AntiqueWhite [250 235 215]

Aqua [0 255 255]

Aquamarine [127 255 212]

Azure [240 255 255]

Beige [245 245 220]

Bisque [255 228 196]

Black [0 0 0]

BlanchedAlmond [255 235 205]

Blue [0 0 255]

BlueViolet [138 43 226]

Brown [165 42 42]

BurlyWood [222 184 135]

CadetBlue [95 158 160]

Chartreuse [127 255 0]

Chocolate [210 105 30]

Coral [255 127 80]

CornflowerBlue [100 149 237]

Cornsilk [255 248 220]

Crimson [220 20 60]

Cyan [0 255 255]

DarkBlue [0 0 139]

DarkCyan [0 139 139]

DarkGoldenRod [184 134 11]

DarkGray [169 169 169]

DarkGreen [0 100 0]

DarkGrey [169 169 169]

DarkKhaki [189 183 107]

DarkMagenta [139 0 139]

DarkOliveGreen [85 107 47]

DarkOrange [255 140 0]

DarkOrchid [153 50 204]

DarkRed [139 0 0]

DarkSalmon [233 150 122]

DarkSeaGreen [143 188 143]

DarkSlateBlue [72 61 139]

DarkSlateGray [47 79 79]

DarkSlateGrey [47 79 79]

DarkTurquoise [0 206 209]

DarkViolet [148 0 211]

DeepPink [255 20 147]

DeepSkyBlue [0 191 255]

DimGray [105 105 105]

DimGrey [105 105 105]

DodgerBlue [30 144 255]

FireBrick [178 34 34]

FloralWhite [255 250 240]

ForestGreen [34 139 34]

Fuchsia [255 0 255]

Gainsboro [220 220 220]

GhostWhite [248 248 255]

Gold [255 215 0]

GoldenRod [218 165 32]

Gray [128 128 128]

Green [0 128 0]

GreenYellow [173 255 47]

Grey [128 128 128]

HoneyDew [240 255 240]

HotPink [255 105 180]

IndianRed [205 92 92]

Indigo [75 0 130]

Ivory [255 255 240]

Khaki [240 230 140]

Lavender [230 230 250]

LavenderBlush [255 240 245]

LawnGreen [124 252 0]

LemonChiffon [255 250 205]

LightBlue [173 216 230]

LightCoral [240 128 128]

LightCyan [224 255 255]

LightGoldenRodYellow [250 250 210]

LightGray [211 211 211]

LightGreen [144 238 144]

LightGrey [211 211 211]

LightPink [255 182 193]

LightSalmon [255 160 122]

LightSeaGreen [32 178 170]

LightSkyBlue [135 206 250]

LightSlateGray [119 136 153]

LightSlateGrey [119 136 153]

LightSteelBlue [176 196 222]

LightYellow [255 255 224]

Lime [0 255 0]

LimeGreen [50 205 50]

Linen [250 240 230]

Magenta [255 0 255]

Maroon [128 0 0]

MediumAquaMarine [102 205 170]

MediumBlue [0 0 205]

MediumOrchid [186 85 211]

MediumPurple [147 112 216]

MediumSeaGreen [60 179 113]

MediumSlateBlue [123 104 238]

MediumSpringGreen [0 250 154]

MediumTurquoise [72 209 204]

MediumVioletRed [199 21 133]

MidnightBlue [25 25 112]

MintCream [245 255 250]

MistyRose [255 228 225]

Moccasin [255 228 181]

NavajoWhite [255 222 173]

Navy [0 0 128]

OldLace [253 245 230]

Olive [128 128 0]

OliveDrab [107 142 35]

Orange [255 165 0]

OrangeRed [255 69 0]

Orchid [218 112 214]

PaleGoldenRod [238 232 170]

PaleGreen [152 251 152]

PaleTurquoise [175 238 238]

PaleVioletRed [216 112 147]

PapayaWhip [255 239 213]

PeachPuff [255 218 185]

Peru [205 133 63]

Pink [255 192 203]

Plum [221 160 221]

PowderBlue [176 224 230]

Purple [128 0 128]

Page 25: Logo coding language

25

Red [255 0 0]

RosyBrown [188 143 143]

RoyalBlue [65 105 225]

SaddleBrown [139 69 19]

Salmon [250 128 114]

SandyBrown [244 164 96]

SeaGreen [46 139 87]

SeaShell [255 245 238]

Sienna [160 82 45]

Silver [192 192 192]

SkyBlue [135 206 235]

SlateBlue [106 90 205]

SlateGray [112 128 144]

SlateGrey [112 128 144]

Snow [255 250 250]

SpringGreen [0 255 127]

SteelBlue [70 130 180]

Tan [210 180 140]

Teal [0 128 128]

Thistle [216 191 216]

Tomato [255 99 71]

Turquoise [64 224 208]

Violet [238 130 238]

Wheat [245 222 179]

White [255 255 255]

WhiteSmoke [245 245 245]

Yellow [255 255 0]

YellowGreen [154 205 50]

SETPENSIZE size (P) REPEAT 5 [SETPENSIZE REPCOUNT FD 20] ;arkatzaren puntaren tamaina aldatzen du

FILL / SETFLOODCOLOR color (P) SETFLOODCOLOR 14 ;margozteko kolorea HORIAN ezartzen da FILL ;dortoka inguruko gunea aurreko kolorearekin betetzen da

PERSPEKTIBAN LAN EGITEKO (3D)

PERSPECTIVE Logo 2Dn lan egiteko konfiguratuta dago. 3Dn jarri nahi izanez gero PERSPECTIVE

komandoa erabili, eta koordinatu bat gehiago gehituko zaio marrazketa guneari (Z).

Aurrerago adierazten da nola aldatzen diren oinarrizko instrukzio batzuk 3Dn, eta

zeintzuk diren berriak.

2D Command 3D Command

SETXY SETXY (does not change z-coordinate)

SETX (does not change y-

coordinate)

SETX (does not change y-coordinate or z-

coordinate)

SETY (does not change x-

coordinate)

SETY (does not change x-coordinate or z-

coordinate)

SETZ (does not change x-coordinate or y-

coordinate)

XCOR XCOR

YCOR YCOR

ZCOR

POS POS (z-coordinate is ignored)

Page 26: Logo coding language

26

POSXYZ

SETPOS SETPOS (does not change z-coordinate)

TOWARDS TOWARDS

TOWARDSXYZ

DISTANCE DISTANCE

DISTANCEXYZ

HEADING HEADING

ROLL

PITCH

ORIENTATION

SETHEADING SETHEADING

SETROLL

SETPITCH

SETORIENTATION

RIGHT RIGHT (on current plane)

RIGHTROLL

UPPITCH

LEFT LEFT (on current plane)

LEFTROLL

DOWNPITCH

WINDOW PERSPECTIVE

WRAP

FENCE

SETTURTLE 0-1023 SETTURTLE 0-1023

SETTURTLE -1 (the eye position)

SETTURTLE -2 (where the eye is looking)

ELLIPSEARC ELLIPSEARC (great for spheres)

Page 27: Logo coding language

27

PANTAILA KONTROLATZEKO

CLEARSCREEN / CS (P) CS ;dortokaren marrazte-pantaila garbitzen du, dortoka mugitu barik

SETSCREENCOLOR color / SETSC color (P) SETSC 1 ; dortokaren marrazte-pantaila koloretan jartzen du, kasu honetan urdinez

WRAP (P) WRAP ;pantaila konfiguratzen du dortokak ihes eginez gero kontrako mugatik agertzeko

WINDOW (P) WINDOW ;aurrekoaren kontrakoa, dortokak ihes egingo du

FENCE (P) FENCE ;dortokak ezin izango du ihes egin mugetatik harago

FULLSCREEN / FS (P) FS ;marrazte-gunea pantaila guztira zabaltzen da, eta kontsola leiho flotagarri batean geratzen da

ZOOM scale (P) ZOOM 1 ;berezko eskalan ixten du ZOOM 2 ;gertuago ikusten da REPEAT 10 [ZOOM REPCOUNT WAIT 5] ZOOM 1

CLEARTEXT / CS (P) CS ;kontsolako testu guztia garbitzen du

SETLABELFONT / LABEL (P) SETLABELFONT [[HELV] 24 16] LABEL [E! Txo!] ;dortokaren alboan idazten du

CS RT 75 REPEAT 12 [ RT 360/12 FD 75 LABEL REPCOUNT] ;erlojua

Page 28: Logo coding language

28

MULTIMEDIA

SOINUAK

SOUND frecuency duration (P)

WAIT duration (P)

TO SAINTS ;oh when the saints go marching in SOUND [262 600] SOUND [330 600] SOUND [349 600] SOUND [392 1800] WAIT 50 SOUND [262 600] SOUND [330 600] SOUND [349 600] SOUND [392 1800] WAIT 50 SOUND [262 600] SOUND [330 600] SOUND [349 600] SOUND [392 1800] SOUND [330 1800] SOUND [262 1800] SOUND [330 1800] SOUND [294 1800] END

PLAYWAVE wavefile flags (P)

PLAYWAVE "c:\\windows\\tada.wav 1+8 ;c:\windows\tada.wav fitxategia ireki eta barruan

Page 29: Logo coding language

29

dauzkan soinuak jotzen ditu beheko FLAG bi erabilita (1 eta 8). Gehiago erabili nahi izanez gero batuketa moduan jartzen dira. Adib: 0+2+16, edo 2+4+8

Flag

Band

Behavior

Jokabidea

0 Synchronous does not stop until completed.

Dena gelditzen da soinua jotzen duen bitartean.

1 Asynchronous returns immediately while sound is still playing.

Dena jarraitzen du, eta aldi berean soinua jotzen da.

2 Don't use the default sound if the specified one cannot be found.

Ez erabili berezko soinua baldin eta fitxategia ez bada topatzen

4 In memory sound (not supported).

Hau ezin da erabili

8 Continue to loop the sound until another PLAYWAVE instruction is run.

Eten barik jo soinua, playwave-eri berriz deitu arte.

16 Don't stop an already playing sound.

Jotzen egongo den soinua ezin da gelditu.

CD BATETIK MUSIKA JOTZEKO

Ikusi adibideak:

;oinarrizko aginduak hasteko IGNORE MCI [open cdaudio] MCI [set cdaudio time format tmsf]

;jotzeko modu ASINKRONOAN (jotzen den bitartean LOGOk jarraitzen du bestelako edozein gauzak egiten) MCI [play cdaudio from 1 to 2] ;edo, CD guztia jotzeko MCI [play cdaudio from 1] ;edo zati bat bakarrik MCI [play cdaudio from 1 to 1:00:15]

;jotzeko modu SINKRONOAN (jo bitartean gainontzeko guztia blokeatuta geratzen da) WAIT gehitzen da. MCI [play cdaudio from 1 to 2 wait]

Page 30: Logo coding language

30

;oinarrizko aginduak jotzea amaitzeko MCI [stop cdaudio] MCI [close cdaudio]

BIDEO BAT IKUSARAZTEKO

Ikusi adibidea:

;bideo irekitzeko IGNORE MCI [open c:\\windows\\clock.avi alias myvid] ;martxan jartzeko MCI [play myvid] ;hurrengoko WAIT-ak adibidezkoak baino ez dira, eta pausa esanguratsuak ezartzeko baino ez dira erabiltzen WAIT 120 ;pausa batean gelditzeko MCI [pause myvid] WAIT 120 ;berrabiarazteko MCI [resume myvid] WAIT 720 ;bideo ixteko MCI [close myvid]

Page 31: Logo coding language

31

LEHEN BLOKEKO ARIKETAK

OHARRA: hauek egiteko REPEAT egitura ezagutu behar da, hortaz joan FLUXUEN

blokera ikusteko.

1. Hurrengo figurak egiteko kodea idatzi (ez erabili SETXY edo SETPOS):

Page 32: Logo coding language

32

2. Aurreko lehen 7 figurak SETXY eta SETPOS aginduekin marrazteko kodea idatzi.

3. Aukeratu aurreko edozein 5 figura eta txertatu soinua dortokaren

mugimenduan. Adibidez, zirkunferentzia baten marrazketan graduaren balioa

soinu moduan erabil daiteke.

4. Honako abes3 hau jo: DO DO DO SI DO RE RE RE SI DO RE SI DO SOL

5. Aurreko abes3a jo ahala edozelako figura marraztu. Nahi izanez gero ausazkoa

egin (RANDOM erabili beharko duzu), alegia, notaren balioak markatu ahal du

dortokaren biraketa edo aurrera egiteko distantzia. Esperimentatu proposamen

ezberdinekin.

6. Marrazketa gune3k irtengo den espiral bat marraztu (13. edo 14. espiralak

erabili ahal dira) LEIHO modu guz3etan: window, fence… Ikusi ezberdintasuna.

Modu batzuetan espiralaren kurbak nahastu beharko dira.

7. Topatu WAV fitxategi bat, edo zuk grabatutako bat erabili (Audacity erabili,

esaterako), eta modu honetan ireki: eten barik egongo da jotzen, eta bien

bitartean bestelako gauzak egiterik izango da.

Ondoren txertatu kodea aurreko figuraren bat marrazteko beste kodean eta

moteldu dortokaren marrazteko abiadura. Ikusi beharko da dortoka lasai

marrazten musikak jotzen duen bitartean.

Page 33: Logo coding language

33

BIGARREN BLOKEA: DATU-EGITURAK

ALDAGAIAK SORTZEKO

OROKORRAK

MAKE varname value (P)

Gakoen erabilera nahasia eman dezake hasieran, hortaz kontuan izan aholku hauek:

1. Aldagai bat IZENDATZERAKOAN be3 eramango ditu kakotxak aurre3k.

2. Aldagai hori ERABILTZERAKOAN be3 eramango ditu bi puntuak aurre3k.

3. Testuek kakotxak eramango dituzte aurre3k.

4. Zenbakiak kakotx edo kakotx barik jarri ahal izango dira.

;aldagaiak izendatzean aurreko gakoekin adierazi ;erabiltzeko bere aurretik bi puntu jarri MAKE "nireadina 39 ;zenbakiak gako barik MAKE "zureadina "11 ;edo gakoekin PRINT :nireadina + :zureadina >50 PRINT (SENTENCE "Gure "adinak :nireadina "eta :zureadina "dira) >Gure adinak 39 eta 11 dira

MAKE "izena "Eguzki ;testuak gakoekin PRINT :izena >Eguzki PRINT "izena ;kontuz! >izena PRINT izena ;kontuz! funtzio bati deitzen gaude, eta ez bada existitzen hurrengoko akatsa agertuko da >I don’t know how to izena

MAKE "izena ""Eguzki ;kakotxak agerrarazteko PRINT :izena >"Eguzki

MAKE "izena ""Eguzki" ;amaieran gako bakarra! PRINT :izena >"Eguzki"

MAKE "izenabizenak [Eguzki Perry] ;esaldiak taketekin PRINT :izenabizenak >Eguzki Perry

Page 34: Logo coding language

34

MAKE "izenabizenak ["Eguzki "Perry"] ;gako eta taket PRINT :izenabizenak >"Eguzki "Perry"

MAKE "izenabizenak "Eguzki "Perry ;kontuz! >I don’t know what to do with Perry

NOLA HANDITU ALDAGAI BATEN BALIOA? MAKE "zbk 0 ;hasierako balioa

MAKE "zbk :zbk+1 ;aurrekoa plus 1 PRINT :zbk >1

MAKE "zbk :zbk*5 ;aurrekoa bider 5 PRINT :zbk >5

MAKE "zbk "zbk*10 ;kontuz! Testua adierazten gaude PRINT :zbk >zbk*10

NOLA PASATU ALDAGAI BATEN BALIO BESTE ALDAGAI EZBERDIN BATERA? MAKE "iturria 0 MAKE "helmuga [hamen gauz] PRINT SENTENCE :iturria :helmuga >0 hamen gauz

MAKE "helmuga :iturria ;helmugaren hasierako balioa suntsitzen da PRINT :helmuga >0

MAKE "helmuga "iturria ;kontuz! Gakoek testua adierazten dute, eta ez aldagaiaren izena! PRINT :helmuga >iturria

MAKE "helmuga iturria ;akatsa! Pentsatzen du iturria funtzio bat dela, baina ez da existitzen >I don’t know how to iturria

MAKE "helmuga [:iturria] ;kontuz! taketen barruan testu moduan hartzen da dena

Page 35: Logo coding language

35

PRINT :helmuga >:iturria

Zerrendan kanpoko aldagai baten balioa sartzeko modua: MAKE "helmuga (LIST :iturria) PRINT :helmuga >0

ERASE / ER func�on name (P) ERASE "nirefuntzioa ;ezabatzen du funtzioa nirefuntzioa >I don’t know how to nirefuntzioa

FUNTZIO BARRUKOAK (LOKALAK) (ikusi funtzioak)

LOCAL name

1)ALDAGAI LOKALA

Funtzioen barruan izendatu eta erabiltzen dira SOILIK, eta funtzio3k irten ostean

aldagaia suntsitzen da eta ezin da gehiago erabili.

TO FUNTZIOLOKALA LOCAL "katea MAKE "katea "danadalakue ;edo LOCALMAKE "Katea "danadalakue PRINT :katea END FUNTZIOLOKALA ;katea aldagaia funtzio barruan izendatzen da, balioa eman eta erabili >danadalakue PRINT :katea ;baina funtzioa exekutatu ostean desagertzen da. >katea has no value

2)ALDAGAI OROKORRA

Edozein tokitan izendatu zein erabil daitezke, eta be3 gordeko dute ezarritako azken

balioa, edonon aldatu bazaion ere.

Page 36: Logo coding language

36

MAKE "katea "hasierakue TO FUNTZIOLOKALA MAKE "katea "danadalakue PRINT :katea END PRINT :katea ;aldagai orokorra da, eta hasierako balioa hurrengokoa da >hasierakue FUNTZIOLOKALA ;funtzioari deitzerakoan hasierako balioa aldatzen zaio >danadalakue PRINT :katea ;berriz deituz gero azken balioarekin geratu da >danadalakue

BESTELAKOAK

LIST / ITEM / COUNT / FPUT / LPUT / REMOVE / MEMBER (F)

Zerrendak elementuen bildumak dira, testuak zein zenbakiak izan. Sortu ostean

elementu berriak txertatu ahal dira, elementuen hasierako kokapena aldatuta.

SORTZEKO

MAKE "listname (LIST el1 el2 eln)

Kontuan izan elementuak edozelakoak izan daitezkeela: zenbakiak, testuak, beste

zerrenda batzuk edota array-ak.

MAKE "fib (LIST 1 1 2 3 5 8 "Fibonacci "da "hau ".) PRINT :fib >[1 1 2 3 5 8 Fibonacci da hau] ;zerrenda hori dimentsio bakarrekoa da []

PRINT LIST ["Haudahau "zerrenda] [24 10 95] ;inprimatu baino beste eragiketarik ezin da egin, ez baita gorde aldagai baten barruan ;zerrendaren dimentsioa 2koa da [][] >["Haudahau "zerrenda] [24 10 95]

Page 37: Logo coding language

37

MAKE "hellish (list [[x y] b c][d e][g [h [i j]]]) ;zerrendak bata besteen barruan sar daitezke ;ikusi nola antolatzen diren itemak print count :hellish ;zenbatzeko kanpoen dauden taketak hartzen ditu kontuan >3 print count item 3 :hellish ;azken taketen elementuak 2 dira: g eta [h [i j]] >2 print item 1 :hellish >[x y] b c print item 2 item 3 :hellish >h [i j] print item 2 item 2 item 2 item 3 :hellish >j

ERABILTZEKO

ITEM n :list PRINT ITEM 8 :fib ;8. elementua itzultzen du >da

MAKE "bestebat LIST ["Haudahau "zerrenda] [24 4] PRINT :bestebat >["Haudahau "zerrenda] [24 4]

PRINT ITEM 3 ITEM 2 :bestebat ;irakurri eskoitik ezkerrera. Lehendabizi zerrendako 2. elementua hartzen du [24 4], eta horretatik 3. Elementua hartzen du, 95. >95

PRINT ITEM 1 ITEM 3 ITEM 2 :bestebat >9

COUNT :list PRINT COUNT :fib ;elementuen kopurua itzultzen du >9

Page 38: Logo coding language

38

PRINT COUNT ITEM 2 :bestebat ;zerrendako bigarren elementuaren elementuen kopurua >2

PRINT ITEM 2 ITEM (COUNT ITEM 2 :bestebat) :bestebat ;ez beldurtu, filosofia berdina aplikatu dugu, hots, irakurri eskoitik ezkerrera eta gakorik sakonenetik kanpora Gakoa ezkutatuta, ITEM 2 ITEM X :bestebat Kalkulatu behar da lehendabizi zer den X hori, eta adierazpen honek emango digu azalpena: COUNT ITEM 2 :bestebat, alegia zerrendaren bigarren elementuaren, [24, 4] elementu kopurua (count), 2. Atzera joanez gero, eta aurreko balioa ordezkatuta, hau daukagu: ITEM 2 ITEM 2 :bestebat, hortaz zerrendaren bigarren elementuaren bigarren elementua: [24, 4] >4

FPUT / LPUT thing list MAKE "fib FPUT 0 :fib ;eskoitik txertatzen du PRINT :fib >0 1 1 2 3 5 8 Fibonacci da hau .

MAKE "fib LPUT "! :fib ;ezkerretik txertatzen du PRINT :fib >0 1 1 2 3 5 8 Fibonacci da hau . !

REMOVE thing list MAKE "fib REMOVE 1 :fib ;elementua ezabatzen du PRINT :fib >0 2 3 5 8 Fibonacci da hau .

MAKE "fib REMOVE hau :fib ;kontuz! testuak "-ekin >I don’t know how to fib

MAKE "fib REMOVE "hau :fib PRINT :fib >0 2 3 5 8 Fibonacci da .

Page 39: Logo coding language

39

MEMBER thing list

PRINT MEMBER "b [a b c d] >b c d PRINT MEMBER "d [a b c d] >d PRINT MEMBER "x [a b c d] >

ARRAY / ITEM (F) / SETITEM (P)

Zerrenden antzekoak dira, baina elementuak posizio finkoetan kokatzen dira, eta ezin

dira mugitu, ezta array-a birdimentsionatu ere, hau da, 5 elementutakoa izango bada 6

ezin izango zaizkio sartu.

SORTZEKO

MAKE arrayname (ARRAY top startpoint) MAKE "myarray (ARRAY 3) ;izendatzen da, baina balio barik PRINT :myarray >{[] [] []}

MAKE "myarray (ARRAY 3 2) ;aurkibidea 2tik hasten da, orduan elementuen ordena izango da 2, 3 eta 4 SETITEM 1 :myarray "zerbait >setitem doesn’t like 1 as input

MAKE "bestebat {a b c}@0 ;izendatu eta balioak sartzen zaizkio, azken zenbakiak adierazten du zein den lehen aurkibidea PRINT :bestebat >{a b c} PRINT ITEM 0 :bestebat >a PRINT ITEM 3 :bestebat >item doesn’t like 3 as input

ERABILTZEKO

SETITEM position arrayname value MAKE "myarray (ARRAY 3) SETITEM 1 :myarray 24 ;edozein ordenetan

Page 40: Logo coding language

40

SETITEM 3 :myarray "Perry SETITEM 2 :myarray "" PRINT :myarray >{24 " Perry} ;gerora ordenatuta agertuko da aurkibidearen arabera

PRINT ITEM 2 :myarray ;Kontuz! 0tik Nra zenbatzen du, beraz 0->24, 1->", 2->Perry >Perry

PRINT ITEM 4 :myarray ;tartetik irten gara! >item doesn’t like 4 as input

SETITEM 4 :myarray "ezinezkue ;topea gaindituta >SETITEM doesn't like ezinezkue as input

LISTTOARRAY arrayname

Zerrenda bat array bihurtzen du, hortaz bakarrik zerrendari aplikatu dakizkiokeen

funtzioak ez dira erabilgarri egongo array-arentzat.

MAKE "aditzak [sum es est] ;zerrenda bat sortzen da PRINT :aditzak >sum es est MAKE "aditzak LPUT "sumus ;amaieran txertatu PRINT :aditzak >sum es est sumus MAKE "aditzak LISTTOARRAY :aditzak ;zerrenda array bilakatzen da MAKE "aditzak FPUT "latin ;array-ak ez du ulertzen zerrenden FPUT funtzioa >fput doesn’t like {sum es est sumus} as input ;nola sartu elementu hori eskoitik? Ezin da, array-aren neurria finkoa delako.

KONPONBIDEA:KONPONBIDEA:KONPONBIDEA:KONPONBIDEA: 1)Beste array bat sortu, aurrekoak duen baino elementu bat gehiagorekin. 2)Kopiatu array zaharra array berrira. 3)Txertatu elementu berria array-aren amaieran.

Page 41: Logo coding language

41

MAKE "aditzak [sum es est] MAKE "aditzak LISTTOARRAY :aditzak MAKE "aditzakberria (ARRAY (count :aditzak)+1) ;sortzen dugu array berria, zaharrak baino posizio bat gehiagorekin MAKE "aditzakberria :aditzak ;kopiatzen da batetik bestera SETITEM (COUNT :aditzakberria) :aditzakberria "sumus ;array-aren amaieran sartzen du elementua

PRINT ITEM (COUNT :aditzakberria) :aditzakberria >sumus PRINT :aditzakberria >{sum es est sumus}

PILAK: PUSH (P) / POP (F)

Pilak pilatuta dauden objektuen egitura da. Pentsatu mahai gainean jartzen den liburu

multzoa, bata bestearen gainean. Jarritako azkena goian geratzen da, hortaz pilo3k

elementu bat hartzekotan goikoa izango da, hots, piloan sartzen azkena lehen irteten

da.

SORTZEKO

MAKE name [val]

MAKE "pilie [] PRINT :pilie >

MAKE "liburuek [teknologia literature ingelesa] PRINT :liburuek >teknologia literature ingelesa

ERABILTZEKO

PUSH name value MAKE "dump [5 3 9 0] PUSH "dump -7 PRINT :dump >-7 5 3 9 0

Page 42: Logo coding language

42

PUSH "dump "hitza PRINT :dump >hitza -7 5 3 9 0

POP name PRINT POP :dump >hitza PRINT POP :dump >hitza

ILARAK: QUEUE / DEQUEUE (F)

Aurreko egituraren antzekoa da, baina kasu honetan benetako ilara baten moduan

funtzionatzen du: lehena sartzen, lehena irteten.

SORTZEKO

MAKE name [vals] MAKE "erreskada [] MAKE "erreskada [hura zu ni haiek]

ERABILTZEKO

QUEUE name val MAKE "erreskada [] QUEUE "erreskada "Three QUEUE "erreskada "Two QUEUE "erreskada "One PRINT :erreskada >Three Two One PRINT DEQUEUE "erreskada >Three PRINT DEQUEUE "erreskada >Two PRINT DEQUEUE "erreskada >One PRINT DEQUEUE "erreskada >first doesn't like [] as input in DEQUEUE

Page 43: Logo coding language

43

BIGARREN BLOKEKO ARIKETAK

1. Sortu hurrengo aldagaiak: testuzko bat, zenbakizko beste bat, eta array bat.

Horren ostean sartu denak zerrenda baten barruan eta inprimatu.

2. Sortu zenbakizko bi aldagai. Ondoren bien arteko balioak trukatu (a=3 b=5,

orduan a=5 b=3).

3. Honen antzeko zerrendak (matrizeak) sortu, hainbeste elementu sartu eta

azpitaldeak banaka-banaka inprimatu, baita euren elementuen kopurua ere

(COUNT):

[][], adibidea hau izan daiteke [1 2 3][4 5] COUNT ITEM = 2 COUNT ITEM 1 = 3 COUNT ITEM 2 = 2 Gauza bera egin hurrengo zerrendekin: [[][]] [[][[][]]] [[][[]]] [[[[[][]][]]]]

4. Honako zerrenda hau ikusita [a -5 ur 3.14] elementuei buelta emateko kodea

sortu [3.14 ur -5 a] moduan geratzeko (LPUT eta antzekoak erabili).

5. Aurreko gauza bera egin baina ARRAY bat erabilita.

6. Hurrengo zerrenda [me you them] ARRAY batera pasa, eta ondoren beste

zerrenda batera.

7. Zerrenda honi buelta eman [2 4 6 8 10] PILA bat erabilita.

8. Bi zerrenda hauek sortu [1 4 6 8] eta [-3 -6 4 1e10] eta ILARAK erabilita

elementuak binan binaka batu (1+-3, 4+-6 6+4 8+1e10).

9. Zerrenda hau kontuan edukita [a b c d], ARRAY batera pasa eta piramide

moduan inprimatu:

abcd abc ab a

10. Lauki bat marraztuko dugu, baina bere koordenatuak zerrenda baten barruan

egongo dira, honelako formatuan: [[0 0][100 0][100 100][0 100]]. Sortu

zerrenda hori eta SETXY/SETPOS erabilita egin laukia.

11. Gorde zerrenda baten aurreko blokeko melodia (DO DO DO SI DO RE RE RE SI

DO RE SI DO SOL) eta jo elementuak zerrenda3k aterata. Ondoren PILA batean

sartu eta jo berriz ere atzekoz aurrera.

Page 44: Logo coding language

44

HIRUGARREN BLOKEA: FUNTZIOAK/PROZEDURAK

FUNTZIOAK/PROZEDURAK SORTZEKO

FUNTZIOA: balio bat itzultzen du OUTPUT erabilita. Balio horrekin zerbait egin behar

da, bestela akats bat jasoko dugu. MAKE "nirekatea "1234567890 ITEM 3 :nirekatea ;3. posizioa itzultzen du >You don’t say what to do with 3 PRINT ITEM 3 :nirekatea ;orain balioa atzeko prozedurari pasatzen dio, berak hartu eta inprimatzeko >3

Matema3kako funtzioen modura funtzionatzen dute: y = x + 1, non eskumako x-ari

balioak eman eta ezkerreko y-3k sortzen diren. Modu berean hainbat funtzio kateatu

ahal dira bata bestearen atze3k. PRINT ITEM 5 FPUT 0 [1 2 3 4] >4 ;konturatu adierazpen honek 2 funtzio dituela (eta inprimatzeko prozedura bat). Hasieran zerrendak 4 elementu baino ez ditu, beraz 5. ezin du inprimatu. Orduan, irakurri eskoitik ezkerrera: lehendabizi zerrenda bat sortzen dugu (4 elementukoa), gero bostgarren elementua sartzen diogu ezkerretik (5era ailegatuta), eta horren ostean 5. elementua hartzen da, eta PRINT-eri pasatzen zaio inprimatzeko.

MAKE "pilie [5 6 3] PRINT SUM ITEM 3 "3487 POP "pilie >11 PRINT SUM ITEM 3 "3487 POP "pilie >14 MAKE "pilie [5 6 3] ;pila bat sortzen dugu (elementuak pilatuta agertzen diren egitura da), non sartzen dugun azken elementua beti den lehena irteten, kasu honetan 3 zenbakia.

Page 45: Logo coding language

45

PRINT SUM ITEM 3 "3487 POP "PILIE ;konturatu lerro bakar batean 3 funtzio eta prozedura 1 daudela. Azter dezagun jokaldia:

1.) SUM da funtzio nagusia, eta berak bi parametro behar ditu, batugaiak: SUM a b, euren arteko batuketaren emaitza itzultzeko.

2.) SUM-ek lehen parametro hartzen du: "3487, baina horri funtzio bat aplikatzen zaio ITEM. Beraz lehen parametroa honela geratuko da "3487-ren 3. elementua: 8

3.) SUM-en bigarren parametroa pilatik ateratako elementua izango da. Hori egiteko POP funtzioari deitzen zaio, "PILIE-tik 3 balioa atera eta SUM-eri pasako diona.

4.) Puntu honetan SUM-ek bi parametroak ditu (orain arte ezin izan du ezer egin, eta zain egon da beste bi funtzioek bukatu arte): 8 + 3. Emaitza kalkulatu eta PRINT-eri pasako dio, zeinek 11 emaitza kontsolan inprimatuko duen.

>11 Bigarren aldian egiterakoan pilatik hurrengoko balioa hartuko du (erdian ikusten dena, eta orain pilaren goikaldean dagoena). >14

PROZEDURA: ez du baliorik itzultzen, beraz prozedurari zuzenean deitu eta besterik ez

dugu egin behar. Prozedura ba3 ezin zaio kateatu beste prozedura bat, baliorik itzultzen

ez duenez atzeko prozedurak ez baitu jakingo zer egin. FD 50 ;dortoka aurrera mugitzen du 50 puntu, baina ez du baliorik itzultzen, hortaz PRINT FD 50 >FD DIDN’T OUTPUT TO PRINT PRINT "mugitu! FD 50 ;orain print-ek behar duen parametro hartzen du, eta horren ostean dortoka aurrera doa 50 puntu. Konturatu BI ADIERAZPEN direla, bat marrazketa-arean islatu eta bestea kontsolan ikusiko dena. >mugitu!

Page 46: Logo coding language

46

DEFINITZEKO (EDITOREAN)

EDALL (P)

Editorea zuzenean irekitzeko (botoari sakatu barik).

EDALL

TO name :param1 :param2 :paramN

OUTPUT val

END

Prozedimendua:

TO ESANIZENA :izena :zenbat REPEAT :zenbat [PRINT :izena] END

Funtzioa:

TO BATUKETA :lehenzenbakia :bigarrenzenbakia OUTPUT :lehenzenbakia + :bigarrenzenbakia END

ERABILTZEKO ESANIZENA "Andoni 3 >Andoni >Andoni >Andoni PRINT ESANIZENA "Andoni 3 ;gogoratu prozedura dela >REPEAT didn't output to print

BATUKETA 3 5 ;gogoratu funtzioa dela >I don’t know what to do with 8 PRINT BATUKETA 3 5 >8

Page 47: Logo coding language

47

ERREKURTSIBITATEA

Gaitasun honen bitartez funtzio batek bere buruari deituko dio. Adibidez, zenbaki

zehatz bate3k 10 arte zenbatuko duen prozedura hau da:

TO zenbatu :zbk PRINT (SENTENCE "Hau "da "zenbakia :zbk) IF :zbk<10 [zenbatu :zbk+1] END

Barruko IF hori ez balego… prozedurak infinitura arte zenbatuko luke:

TO zenbatu :zbk PRINT (SENTENCE "Hau "da "zenbakia :zbk) zenbatu :zbk+1 END

Zenbakia parametro moduan pasatzen ez bada:

TO zenbatu MAKE "zbk 1 PRINT (SENTENCE "Hau "da "zenbakia :zbk) MAKE "zbk :zbk+1 IF :zbk<10 [zenbatu] END ;prozedura hasieran aldagaia 1 balioan ezartzen da beti, beraz 1 inprimatzen du. Gero 2 balion jarri eta IFa konprobatzen da, beti izango dena 10 baino txikiagoa. ;hurrengo deialdian 1 balioan jarriko da, eta zikloa errepikatuko da eten barik horrela.

Hortaz prozedura errekurtsibo baten eskema be3 izango da honen antzekoa: TO prozedura :param ;param horrekin zerbait egin: PROZESU NAGUSIA ;baldintzan konprobatu prozedurari deituko bazaion IF param BALDINTZA [prozedura :param] ;bestela amaitu eta prozedura gelditzen da END ;ESKEMA MODUAN PROZESUA :param

Page 48: Logo coding language

48

BALDINTZA :param DEITU PROZESUA AMAITU

Page 49: Logo coding language

49

HIRUGARREN BLOKEKO ARIKETAK

1. Edozein poligono marrazteko prozedura bat prestatu, zeinak alde kopurua, eta

aldearen neurria jasoko dituena. Poligono ezberdinak marraztu. Moldatu

aurreko prozedura marraren loditasuna eta koloreen parametroak pasatu ahal

izateko. 2. Bost elementuko sekuentziak sortzen dituen funtzioa prestatu. Hasierako

zenbakia eta jauzia (elementu bate3k beste batera pasatzeko gehiketa) jasoko

ditu. Inprimatu kontsola3k. Adibidez: 5 eta 3 jasoz, itzuliko du 5 8 11 14 17.

Edota -4 eta 0.5 jasoz: -4 -3.5 -3 -2.5 -2 3. Bi zenbaki-zerrenda jasoko dituen funtzioa sortu, bi zerrenden arteko zenbakien

arteko baturen zerrenda itzuliko dituena (batuketak binan-binan egingo dira):

Adib: [1 2 4] eta [3 2 1] = [4 4 5] 4. Edozein zerrenda jasoko duen prozedura prestatu, eta kontsola3k inprimatuko

du zerrendaren informazioa: elementuak eta kopurua. Adibidez: [5 a p 3 -1], 5,

a, p, 3, -1 eta kopurua 5 da. 5. Funtzio eta prozedura bat prestatu. Lehenak 1e3k 5erako zenbaki zerrenda

itzuliko du (erabili OUTPUT), eta bigarrenak kontsola3k inprimatuko du

lehenaren erantzuna. 6. Kontsola3k edozein esaldi inprimatuko duen prozedura prestatu, zeinak bere

buruari deituko dion. Adibidez:

to proba print "edozer proba end

Zer gertatu da? Nola eraldatuko zenuke? 7. Kokapen kartesiar bat, erradioa, lapitzaren tamaina eta kolorea jasoko duen

prozedura prestatu, eta datu horiekin zirkunferentzia bat marraztu. 8. Aurreko ariketako datuak zerrenda batean jasoko dituen prozedura prestatu,

eta horrek aurreko puntukoari deituko dio horiek datuak erabilita

zirkunferentzia ezberdinak marrazteko. Adib: marraztu [0 100 50 1 5][50 75 20 2

3] (MARRAZTUk 7.ariketako prozedurari deituko dio zerrendako datuak pasatuz

parametro moduan). 9. Errekurtsibitatea erabilita 10e3k 1era zenbatuko duen prozedura prestatu. 10. Errekurtsibitatea erabilita letra guz3ak inprimatuko dituen prozedura prestatu,

A3k Zra.

Page 50: Logo coding language

50

LAUGARREN BLOKEA: FLUXUAK

FLUXU KONTROLA

BALDINTZAK

IF condi�oncondi�oncondi�oncondi�on [instruc�ons if true][instruc�ons if true][instruc�ons if true][instruc�ons if true] Baldintzak aztertzeko balio du. Bakarra edo bikoa bada kakotxak ez dira nahitaezkoak,

aldiz, hiru edo gehiago edukiz gero kakotxak jarri behar dira. Edozein kasutan

KAKOTXAK BETI JARRI ahal dira (beharbada errazago suertatuko zaizu horrela).

IF 2>1 [PRINT "Handiagoa!] >Handiagoa!

IF (2>1) [PRINT "Handiagoa!] >Handiagoa!

IF AND 2>1 4<5 [PRINT "Egixe!] >Egixe! ;AND aurrerago ikusiko da, baina esan nahi du ETA, hau da, baldintza biak bete behar direla.

IF AND 2>1 4<5 2*5=10 [PRINT "Egixe!] >I don’t know how to true ;hiru baldintza daude gako barik, horregatik akatsa.

IF (AND 2>1 4<5 2*5=10) [PRINT "Egixe!] >Egixe!

;baina IF (AND 1>2 4<5) [PRINT "Egixe!] >

;baldintzen barruan funtzioak sartu ahal dira MAKE "katea "Edozelakue IF COUNT :katea = 10 [PRINT [10 neurtzen du]] >If doesn’t like 10 as input ;gauza lar daude IFaren ostean, hortaz gakoekin sinplifikatuko dugu adierazpena IF (COUNT :katea) = 10 [PRINT [10 neurtzen du]]

>10 neurtzen du

Page 51: Logo coding language

51

IFELSE condi�oncondi�oncondi�oncondi�on [instruc�ons if true] [instruc�ons if true] [instruc�ons if true] [instruc�ons if true] Aurrekoaren berdin-berdina, baina gezurra deneko zerbait egiteko aukera ematen du.

IFELSE 1>1 [PRINT "Handiagoa!][PRINT "Auskalo!] >Auskalo!

MAKE "bat "testu1 MAKE "bi "testu1 IFELSE :bat=:bi [PRINT "Berdinak][PRINT "Ezberdinak] >Berdinak MAKE "bi "testu2 IFELSE :bat=:bi [PRINT "Berdinak][PRINT "Ezberdinak] >Ezberdinak

;ez nahastu IF eta IFELSE IFELSE 1>1 [PRINT "Handiagoa!] >not enough inputs to ifelse IF 1>1 [PRINT "Handiagoa!][PRINT "Auskalo!] >Assuming you mean IFELSE and not IF >Auskalo!

NOT Baldintzaren kontrakoa kalkulatzen du. Bata bestearen barruan egon daitezke.

IFELSE NOT 2>1 [PRINT "Handiagoa!][PRINT "Txikiagoa!] >Txikiagoa IFELSE NOT AND 2>1 NOT 3<5 [PRINT "Handiagoa!][PRINT "Txikiagoa!] >Handiagoa!

OR (edo) eta AND (eta) IFELSE OR 1>5 5=5 [PRINT [Bietako bat egia da]][PRINT [Biak gezur dira]] >Bietako bat egia da IFELSE AND 1>5 5=5 [PRINT [Biak egi dira]][PRINT [Bietako bat edo biak gezur dira]] >Bietako bat edo biak gezur dira

Page 52: Logo coding language

52

TEST condi�on

Aurreko IF/IFELSE-etan egiten denaren berdina egiteko aukera ematen du, baina bi

lerrotan. Eragina berdina da.

TEST condition

IFTRUE [instructionlist]

IFFALSE [instructionlist] make "putzue [5 a -0.5] test numberp pop "putzue ;ateratakoa zenbakia da? iftrue [print [Zenbakixe da!]] ;baden iffalse [print [Ez da zenbakixe!]] ;ez baden >Zenbakixe da! test numberp pop "putzue ;berdin egingo da iftrue [print [Zenbakixe da!]] ;baden iffalse [print [Ez da zenbakixe!]] ;ez baden >Ez da zenbakixe!

NUMBER? (zenbaki bat da?) PRINT NUMBER? -5.34 >true PRINT NUMBER? [40 urte dakotez] >false PRINT NUMBER? [40] ;zerrenda bat da, ez zenbakia >false

PRINT NUMBER? ITEM 1 [40 urte dakotez] ;40 hartuko du >true IF NUMBER? READWORD [PRINT [Zenbakixe idatzizu]] >(idazten duzunaren arabera)

EMPTY? (hutsik dago?) PRINT EMPTY? 50 false PRINT EMPTY? " true PRINT EMPTY? [] true

Page 53: Logo coding language

53

MAKE "seguruhutsik [] MAKE "iaba " PRINT SENTENCE EMPTY? :seguruhutsik EMPTY? :iaba >true true

MEMBERP element set (elementua multzoaren barruan dago?) PRINT MEMBERP 5 [1 3 5] >true PRINT MEMBERP "p "Perry ;letra-larriak gora-behera >true PRINT MEMBERP "cat [dog cat bird] >true

EQUALP elem/list elem/list (biak berdinak dira?) PRINT EQUALP 5 3 >false

PRINT EQUALP "perry "PERRY >true

MAKE "obj1 [] ;zerrenda hutsik MAKE "obj2 " ;esaldia hutsik PRINT EQUALP :obj1 :obj2 >false

MAKE "obj1 LPUT "iahonela :obj1 MAKE "obj2 "iahonela PRINT EQUALP :obj1 :obj2 >false PRINT SENTENCE :obj1 :obj2 ;begiz jota berdinak dira, baina lehenengokoak jarraitzen du ZERRENDA izaten, eta bigarrena ESALDIA >iahonela iahonela

MAKE "obj1 [cat dog mouse] MAKE "obj2 [dog mouse cat] PRINT EQUALP :obj1 :obj2 ;berdinak izateko elementuak berdinak izan eta orden berdinean egon behar dira >false

Page 54: Logo coding language

54

MAKE "obj2 [cat dog mouse] PRINT EQUALP :obj1 :obj2 >true

MAKE "obj1 [ace heart diamond] MAKE "obj2 :obj1 ;berdintzen dira PRINT EQUALP :obj1 :obj2 >true

MAKE "obj1 [a b c][d e f] MAKE "obj2 [a b c d e f] PRINT EQUALP :obj1 :obj2 ;eta zerrendek egitura berdina eduki behar dute >false

WORDP (hitza/zenb?) / LISTP (zerrenda?) / ARRAYP (array-a?) Egitura hauek (WORD/LIST/ARRAY) ordenagailuko memoriaren barruan informazioa

nola organizatzen den adierazten dute. Hortaz testu eta zenbakiak WORD izango dira,

zerrendak LIST (bilduma dinamikoak) eta array-ak ARRAY (bilduma esta3koak).

MAKE "obj1 [hitza1 hitza2] MAKE "obj2 "hitza3 MAKE "obj3 12.5 PRINT sentence WORDP :obj1 WORDP :obj2 ;lehena zerrenda da, eta bigarrena hitza >false true PRINT WORDP ITEM 1 :obj1 WORDP :obj3 ;lehena zerrendako hitz bat da, eta bigarrena zenbakia >true true

BEGIZTAK Egitura hauek ERREPIKAPENA egiteko balio dute (0tik Nra arte, edota 1etik Nra arte).

Normalean bi bloke dauzkate:

1. Begiztaren barruan jarraitzeko edo irteteko ezartzen dituzten baldintzena.

2. Baldintzak bete bitartean zeintzuk agindu beteko diren.

REPEAT count [instruc�onlist] (1..n) REPEAT 3 [PRINT [Iep txo!]] >Iep txo!

>Iep txo!

>Iep txo!

Page 55: Logo coding language

55

PRINT [Zenbatuku 1etik 10era] REPEAT 10 [PRINT repcount] ;REPCOUNT aldagaiak uneko iterazioaren balioa gordetzen du

PRINT [Eta orain 0tik 10era] REPEAT 11 [PRINT repcount-1]

repeat 10 [if (modulo repcount 2)=0 [print repcount]] ;1etik 10era zenbaki bikoitiak inprimatzeko >2 >4 >6 >8 >10

;honela ere antolatu ahal da goikoa repeat 10 [ if (modulo repcount 2)=0 [print repcount] ]

;edo honela, bloke bakoitza identazio batekin repeat 10 [ if (modulo repcount 2)=0 [ print repcount ] ]

FOR [controllist] [instruc�onlist] (0..n)

CONTROL LIST: [1 2 3 4]

1) Zenbatgarren bueltan gauden jakiteko erabiliko den aldagaia. Bertotik hartuko

da balioa lan egiteko.

2) Iterazio tartearen HASIERAKO zenbakia.

3) Iterazio tartearen AMAIERAKO zenbakia.

4) Zenbakirik zenbaki emango den jauzia. Jartzen ez bada, 1ekoa izango da.

;0tik 100era arteko zenbaki primoak kalkulatzeko PRINT [1 2 3] ;Aurrekoak fijo idazten ditugu, 2 eta 3 erabiliko baitira primoak kalkulatzeko FOR [zenb 4 100 1] [ ;4tik 100era 1eko jauzietan ZENB aldagaian utziko dira

Page 56: Logo coding language

56

if NOT OR (modulo :zenb 2)=0 (modulo :zenb 3)=0 [ ;ez bada /2 edo /3 orduan inprimatu PRINT :zenb ] ]

;Fibonacci handiaren sekuentzia, eta urrezko zenbakia MAKE "aurrekoa 1 MAKE "aurrekoarenaurrekoa 0 ; 0 eta 1 zenbakiak dira hasierakoak FOR [zenb 1 10 1] [ ;lehenengo 10ak kalkulatuko dira MAKE "unekoa :aurrekoa + :aurrekoarenaurrekoa ;edozein zenbaki aurreko bien batuera da PRINT :unekoa MAKE "aurrekoarenaurrekoa :aurrekoa MAKE "aurrekoa :unekoa ;gaurkotzen ditugu aldagaiak, ikusi zergatik ;lehenengo bueltan: ;0 1 1 ;aa au un ;bigarrenean ;0 1 1 2 ;x aa au un (ORAIN aa=aurreko au, eta au=un) ;hirugarrenean ;0 1 1 2 3 ;x x aa au un ]

;Urrezko zenbakia (1.61803398874989…) Fibonacciren urrenez urreneko bi zenbakien arteko zatiketatik sortzen da sekuentziak infinitura jotzen duenean. Logok bere mugak ditu, hortaz aurreko zenbaki murriztua ikusita zenbatgarren iterazioan topatzen da? MAKE "aurrekoa 1 MAKE "aurrekoarenaurrekoa 0 FOR [zenb 1 READWORD 1] [ MAKE "unekoa :aurrekoa + :aurrekoarenaurrekoa MAKE "urrezkozenbakia :unekoa / :aurrekoa PRINT (sentence :zenb "Iterazioa " urrezkozenbakia) MAKE "aurrekoarenaurrekoa :aurrekoa MAKE "aurrekoa :unekoa ]

Page 57: Logo coding language

57

;Eta atzera kontatzeko? FOR [zenb 10 1 -0.5] [PRINT :zenb]

DO.WHILE [insinsinsinstruc�onlisttruc�onlisttruc�onlisttruc�onlist]]]] [condi�onlistcondi�onlistcondi�onlistcondi�onlist] (1..n)] (1..n)] (1..n)] (1..n) Honek esan nahi du: EGIN BALDINTZA BETETZEN DEN BITARTEAN. Hortaz, gutxienez

aldi baten exekutatuko da, horregatik esaten da 1etik Nra doala. ;hainbat alditan aterako ditugu ausaz elementuak zerrenda batetik MAKE "zenb 1 MAKE "letrak [alfa beta delta zeta iota pi] MAKE "guztira READWORD DO.WHILE [ PRINT ITEM (RANDOM (COUNT :letrak))+1 :letrak MAKE "zenb :zenb + 1 ][:zenb < :guztira +1]

WHILE [condi�onlistcondi�onlistcondi�onlistcondi�onlist]]]] [instruc�onlistinstruc�onlistinstruc�onlistinstruc�onlist] (0..n)] (0..n)] (0..n)] (0..n) Aurrekoaren berdina, baina baldintza betetzen ez bada hasiera batean begiztan ez da

sartzen ezta behin ere.

;abecedarioa inprimatuko dugu ;horretarako ASCII eta CHAR funtzioak erabiliko dira ;letra bakoitzak zenbaki-kode bat dauka: a-k 97, eta z-k 122, hortaz zenbatuko dugu 97, 98, 99... 121, 122 MAKE "letra ascii("a) ;gordetako balioa 97 ;aukeran hau ere egin ahal da: ;MAKE "letra 97 MAKE "tope ascii("z) ;hemen 122 WHILE [:letra<=:tope][ PRINT char(:letra) ;inprimatu kodearekiko letra MAKE "letra :letra + 1 ]

DO.UNTIL [instruc�onlist] [condi�onlist] (1..n) Kasu honetan begiztaren barruan jardungo da BALDINTZA BETE ARTE (ez aurreko

kasuetan bezala, non BETETZEN ZEN bitartean egoten zen begiztan).

;tilin tolon tilin tolon egingo dugu. MAKE "kanpaia "tilin DO.UNTIL [ PRINT :kanpaia IFELSE :kanpaia="tilin [MAKE "kanpaia

Page 58: Logo coding language

58

"tolon][MAKE "kanpaia "tilin] ;kanpaiaren hotsaren balioa aldatzen dugu: tilin bazen tolon jarriko dugu, eta alderantziz MAKE "erantzuna yesnobox "Galdera [Jarraitu nahi duzu kanpaia mugitzen ?] ;yesnobox funtzioak erantzun-leiho bat irekitzen du. BAI botoiari sakatuz gero TRUE itzuliko du, bestela FALSE. ][NOT :erantzuna] ;galdera izan da "Jarraitu nahi duzu" beraz jarraitzeko TRUE denez DO UNTIL honetan FALSE behar dugu (jarraitu bete arte), horregatik NOT bat jarri diogu baldintzari. ;Kontrako galdera izango bazen "Gelditu nahi duzu ", NOT-ik ez lukeen hartuko, berez FALSE izango litzatekeelako, hots, baldintza beteko lukeena. ;Ikusi nola geratuko litzatekeen: MAKE "kanpaia "tilin DO.UNTIL [ PRINT :kanpaia IFELSE :kanpaia="tilin [MAKE "kanpaia "tolon][MAKE "kanpaia "tilin] MAKE "erantzuna yesnobox "Galdera [Gelditu nahi duzu kanpaia mugitzen?]] [:erantzuna]

UNTIL [condi�onlist] [instruc�onlist] (0..n) Aurrekoaren berdina, baina baldintza hasiera3k betetzen bada begiztan ez da sartuko.

MAKE "kurtsorea 1 MAKE "esaldia [Izarrontzia 10 segundutan suntsituko da! 10 9 8 7 6 5 4 3 2 1. Agur! BOOOOOOOOOM!] MAKE "aurreesaldia [] UNTIL [:kurtsorea> COUNT :esaldia][ CT MAKE "aurreesaldia LPUT (ITEM :kurtsorea :esaldia) :aurreesaldia PRINT :aurreesaldia MAKE "kurtsorea :kurtsorea +1 WAIT 30 ]

FOREACH # ? ?REST (iterazio elementua gainontzekoa) Instrukzio hau zerrendekin erabiltzen da normalean, eta aurrekoen antzekoa da, baina

zuzenean erabili daitezke zerrendaren elementuak hurrengoko sinboloen bitartez:

Page 59: Logo coding language

59

1) # errepikapen zenbakia da, REPEAT-aren REPCOUNT-a bezalakoa.

2) ? zerrendaren unean uneko elementua da.

3) ?REST zerrenda3k ateratzeko falta diren gainontzeko elementuak dira.

FOREACH [a b c d] [PRINT (SENTENCE # "/ ? "/ ?REST)] >1 / a / b c d >2 / b / c d >3 / c / d >4 / d /

FOREVER Etengabeko begizta batean sartzen da. Barru3k irteteko modu bakarra STOP baten

bitartez izango litzateke, bestela infinitorarte jarraituko luke.

PRINT [Sotina dakozu?] FOREVER [PRINT "Jik!]

;txanpona botako dugu infinitura arte, baina gurutzea irteten denean jolasa amaituko da ;txanponaren botaldia kalkulatzeko ausazko zenbaki bat kalkulatuko dugu 0tik 9ra. 0tik 4ra aurpegia izango da, eta 6tik 9ra gurutzea. FOREVER [ IFELSE (RANDOM 10)<5 [MAKE "txanpona "aurpegia][MAKE "txanpona "gurutzea] PRINT :txanpona IF :txanpona="gurutzea [STOP] ]

STOP Begizta bate3k irteten da baldintzak edozelakoak izan arren.

;Hurrengo begiztak 1etik 100era zenbatu beharko luke, baina bostera helduta amaitu egiten da. FOR [zbk 1 100 1][IF :zbk=5 [STOP]]

BEGIZTEN ARTEKO BALIOKIDETASUNAK Ikusi hurrengo adibideetan zer nola harremana dagoen begizta-egituren artean, eta

nola lortu gauza bera aukera guz3ekin.

1..10 (1..n) Datozen adibideak sinplifikatu dira argi ikus dadin sintaxia. 1e3k 10erako zenbakiak

inprimatuko dute, eta aldagaia be3 izango da n.

Page 60: Logo coding language

60

REPEAT 10 [PRINT REPCOUNT] FOR[n 1 10 1][PRINT n] MAKE "n 1 WHILE[:n<=10][PRINT :n MAKE "n :n+1] MAKE "n 1 DO.WHILE[PRINT :n MAKE "n :n+1][:n<=10] MAKE "n 1 UNTIL[:n>10][PRINT :n MAKE "n :n+1] MAKE "n 1 DO.UNTIL[PRINT :n MAKE "n :n+1][:n>10] FOREACH [1 2 3 4 5 6 7 8 9 10] [PRINT ?] MAKE "n 1 FOREVER[PRINT :n MAKE "n :n+1 IF(n>10)[STOP]]

0..10 (0..n) REPEAT 11 [PRINT REPCOUNT-1] FOR[n 0 10 1][PRINT n] MAKE "n 0 WHILE[:n<=10][PRINT :n MAKE "n :n+1] MAKE "n 0 DO.WHILE[PRINT :n MAKE "n :n+1][:n<=10] MAKE "n 0 UNTIL[:n>10][PRINT :n MAKE "n :n+1] MAKE "n 0 DO.UNTIL[PRINT :n MAKE "n :n+1][:n>10] FOREACH [0 1 2 3 4 5 6 7 8 9 10] [PRINT ?] MAKE "n 0 FOREVER[PRINT :n MAKE "n :n+1 IF(n>10)[STOP]]

PAUSAK EZARTZEKO ETA ETETEKO

PAUSE / CONTINUE PAUSE erabiltzen denean leiho bat agertuko da jakiteko zer egin behar den pausa

horren bitartean. Jarraitzeko tekleatu beharko da CONTINUE.

FOR[i 1 100 1][ IF i=5 [PAUSE] ]

Page 61: Logo coding language

61

LAUGARREN BLOKEKO ARIKETAK

1. Ikusi hurrengoko progresioa: 1, 2, 4, 8, 16, 32… Horren lehen 50 elementuak

kalkulatuko dituen begizta prestatu funtzio baten barruan modu hauetan: FOR

batekin, WHILE batekin eta REPEAT batekin. Ondoren kontsola3k agerrarazi.

2. Aurreko ariketari sartu gehikuntza bat: zenbakiaz gain hau testua agerrarazi

"8ren mul3ploa da", baldintza hori betetzen bada (16, 32, 64… zenbakiekin

gertatuko da). Erabili IF edo TEST egitura. Adibidez: 1, 2, 4, 8, 16 8ren mul3ploa

da, 32 8ren mul3ploa da…

3. Prozedura baten barruan: kontsola3k jaso balio bat, ikusi zer motakoa den eta

kontsola3k agertu informazio hori. Adibidez: 4, zenbakia; sdfsdgwe, testua; ,

hutsik.

4. Fibonacciren sekuentzia kalkulatzeko adibidea daukazu FOR erabilita. Hori

birmoldatu gainontzeko begizta-egituren arabera funtzio baten barruan: WHILE,

DO WHILE, REPEAT, UNTIL, FOREVER. Ondoren kontsola3k agertu.

5. Prozedura bat sortu, elkarrizketa hau edukiko duena (erantzuna ondo eman

arte LOGOk galdera berdina galdetzen jarraituko du):

KAIXO, NOLA DAUKAZU IZENA? (kontsolak jaso izena, eta konprobatu testua

dela).

(ondo)>POZTEN NAIZ ZU EZAGUTZEAZ :IZENA

(txarto)>BENETAKO IZENA ESAN BEHAR DIDAZU. :IZENA EZ DA ZUZENA.

ZENBAT URTE DITUZU? (konprobatu zenbakia dela).

(ondo)>HORTAZ :urte URTE DITUZU, E?

(txarto)>URTEAK TXARTO ESAN DIZKIDAZU

NON BIZI ZARA? (konprobatu testua dela, eta BERMEO esanez gero…)

(ondo, Bermeon)>HARA! NEU ERE BERMEON BIZI NAIZ

(ondo, beste baten)>ORDUAN :HERRIA-n BIZI ZARA, NI, ALDIZ, BERMEON BIZI

NAIZ

(txarto)>:HERRIA HERRI BAT AL DA? EZ DUT USTE.

Adibidez:

>KAIXO, NOLA DAUKAZU IZENA?

>EGUZKI

>POZTEN NAIZ ZU EZAGUTZEAZ EGUZKI

>ZENBAT URTE DITUZU?

>HAMAR

>URTEAK TXARTO ESAN DIZKIDAZU

>ZENBAT URTE DITUZU>

>10

Page 62: Logo coding language

62

>HORTAZ 10 URTE DITUZU, E?

>NON BIZI ZARA?

>5

>5 HERRI BAT AL DA? EZ DUT USTE.

>NON BIZI ZARA?

>BERMEO

>HARA! NEU ERE BERMEON BIZI NAIZ

6. Labirintoak marrazteko prozedura idatzi. Ez dute sarrera edo irteera zehatzik

eduki behar, ez eta berta3k igarotzeko bidea izan. Ausaz marraztu. Ikusi

adibidea:

Page 63: Logo coding language

63

BOSTGARREN BLOKEA: ELKARRAKZIOA

KONTSOLATIK BALIO BAT JASOTZEKO ETA

INPRIMATZEKO Aukera hauei ezker ordenagailua eta erabiltzailearen arteko elkarrekintza bermatzen

dugu pantaila3k balioak eskatzeko. Era horretan programak behar dituen balioak

kodean sartu beharrean kontsola3k jaso daitezke.

READWORD (f) Esaldi bat irakurtzen du.

PRINT [Kaixo, txo, zelan zauz?] MAKE "erantzuna READWORD IF :erantzuna="ondo [PRINT [Pozten nai!]] IF :erantzuna="txarto [PRINT [Sentitzen dot!]]

READLIST (f) Zerrenda bat irakurtzen du. Aurrekoaren antzekoa da, baina esaldi moduan gorde

beharrean zerrenda formatuan egiten du, hortaz zerrendei dagozkien funtzioak aplika

dakizkioke.

;zerrenda elementu batzuk irakurri eta kontrako ordenan inprimatuko dira MAKE "erantzuna READLIST MAKE "zenbat COUNT :erantzuna MAKE "buelta [] FOR [pos 1 :zenbat 1][ ;elementuz elementu irakurri eta beste zerrendako hasieratik txertatzen dira. MAKE "buelta FPUT (ITEM :pos :erantzuna) :buelta ] PRINT :buelta ;ikusi estrategia, baldin eta sarrera hau bada: ;1 2 3 4 5 ;1.zikloan ;1 ;2.zikloan (hasieratik txertatzen da, bestea bultzatuz)

Page 64: Logo coding language

64

;2 1 ;3.zikloan ;3 2 1 ;eta abar.

READCHAR (f) Aurrekoa bezalakoa, baina bakarrik itzuliko du sartutako lehen karakterea.

PRINT [Jolastu ostabere? (Y/N)] MAKE "ANS READCHAR IF :ANS = "Y [JOLASA] IF :ANS = "N [PRINT [Agur, ordun!]]

YESNOBOX window�tle texPoshow (f) ;kontsolatik adina galdetuko da, eta horren ostean baieztapena. Bera positiboa izan arte begiztaren barruan jardungo gara. ;ikusi yesnobox galdera do.until baldintza barruan egiten dela, eta false den bitartean begiztara itzuliko dela. DO.UNTIL [ PRINT [Zein da zure adina?] MAKE "adina READWORD PRINT (SENTENCE [Zure adina] :adina "da.) ][YESNOBOX[Galdera][Zuzena da?]] PRINT (SENTENCE [Baieztatutako adina] :adina [da.])

PRINT / PR / SHOW (p) Kontsola3k inprimatzeko balio dute.

PRINT "Hitza >Hitza MAKE "balioa 32442 PRINT :balioa >32442 PRINT 5+4 >9 MAKE "zerrenda [1 2 3 4] PRINT :zerrenda >1 2 3 4 PRINT "Esaldixe "da "hau >Esaldixe da hau PRINT [Esaldixe da hau]

Page 65: Logo coding language

65

>Esaldixe da hau PRINT "|Esaldixe da hau| ;barra bertikala 1 zenbakiaren teklan agertzen da, eta Alt Grd + 1 sakatu behar da >Esaldixe da hau

SENTENCE (letrak eta aldagaiak konbinatzeko) (f) MAKE "izena READWORD PRINT "Kaixo! :izena >I don’t know what to do with izena PRINT (SENTENCE "Kaixo! :izena) >Kaixo! Hodei PRINT (SENTENCE :izena ":izena "|:izena| [:izena]) >Hodei :izena :izena :izena

FITXATEGIEKIN LAN EGITEKO Fitxategi fitxa hitze3k dator, eta fitxen bildumaren esanahia du. Bi motakoak izan

daitezke:

1) Textu-fitxategiak: lerroz lerro irakurriko direnak, liburu baten moduan.

2) Fitxategi binarioak: ordenagailu-erregistrotan gordeko direnak fitxa moduan.

Bata izan ala bestea izan prozedura be3 da berdina:

1) IRAKURTZEKO:

a. Fitxategia ireki.

b. Lerro/erregistroa irakurri.

c. Zerbait egin informazio horrekin.

d. Hurrengo lerro/erregistrora pasa.

e. Fitxategia itxi.

2) IDAZTEKO:

a. Fitxategia ireki/sortu.

b. Informazioa ARRAY edo ZERRENDA bate3k irakurri.

c. Fitxategian idatzi.

d. Hurrengo lerro/erregistrora pasa.

e. Fitxategia itxi.

Ikusten denez guk liburu batekin egiten dugunaren antzekoa da.

Page 66: Logo coding language

66

FITXATEGI BATEAN IDAZTEKO

OPENWRITE / OPENUPDATE / SETWRITE / CLOSE

Adibidean azaltzen dira komandoak.

;fitxategia idazteko ireki ;gaurkotzeko izango balitz: OPENUPDATE erabili OPENWRITE "nireinformazinue.txt ;LOGOri esaten zaio PRINTetik botatzen den guztia fitxategira transferitzeko, ez kontsolara SETWRITE "nireinformazinue.txt PRINT "Hona PRINT [Informazio aunitz] PRINT 128 ;Berriz ere PRINT-aren funtzionamiendua lehenengoratzen dugu SETWRITE [] ;eta fitxategia itxi, oso garrantzitsua dena CLOSE "nireinformazinue.txt ;orain joan fitxategi-arakatzailera, bilatu sortutakoa eta ireki Windows-aren editorearekin zuk idatzitako informazioa baieztatzeko.

FITXATEGI BATETIK IRAKURTZEKO

OPENREAD / SETREAD / READLIST / EOFP / CLOSE

;aurrekoan bezala irakurtzeko irekiko dugu OPENREAD "nireinformazinue.txt ;datuen irakurketa fitxategitik egiteko esaten diogu LOGORI, eta ez leiho modal batetik, adibidez YESNOBOX eta antzekoetatik SETREAD "nireinformazinue.txt ;EOFP zera da: END OF FILE (fitxategiaren amaiera) ;Hortaz: fitxategia amaituta ez dagoen bitartean... WHILE[NOT EOFP][ PRINT READLIST ] ;irakurketa kontsolara berbideratzen dugu

Page 67: Logo coding language

67

SETREAD [] ;eta fitxategia itxi CLOSE "nireinformazinue.txt

KONTSOLAN IDATZITAKOA FITXATEGI BATERA PASATZEKO

DRIBBLE / NODRIBBLE Ikusi adibidea.

;puntu honetatik aurrera kontsolan idatzitako guztia fitxategi batera berbideratuko da DRIBBLE "nireinformazinue.txt FORWARD 100 RIGHT 90 ;... eta abar ... ;eta honekin fitxategian idazteari ixten zaio NODRIBBLE

PANTAILAKO GUNEEKIN LAN EGITEKO Gunea pantailako za3 bat da. Za3 hori kopiatu, itsatsi eta beste hainbat gauza egin ahal

dira.

BITLOAD / BITSAVE name (p) Pantailan irudi bat kargatzen du, edota fitxategi batean gordetzen du.

;aurreko irudia kargatzeko hau egingo dugu BITLOAD "C:\\Users\\andoni\\Pictures\\violet\\paisaia.bmp

BITCOPY / BITCUT width height / BITPASTE (p) BITLOAD "c:\\drawing.bmp BITCOPY 200 200 CS REPEAT 50 [ PU SETXY RANDOM 1000 RANDOM 1000 PD BITPASTE ]

Page 68: Logo coding language

68

;irudia pantailan kargatu, zati bat kopiatu, pantaila garbitu eta 50 alditan ausaz itsatsi dugu pantailatik ;horretarako SETXY prozedura erabili da, dortoka koordinatu kartesiano batera zuzen eramaten duena

SETBITINDEX number (p) Pantaila za3ak kopiatzen ditugunean hainbat gunetara mugitu daitezke. Gune bakoitza

SETBITINDEX prozeduraren bitartez adieraziko da, beraz 1era kopiatzen dena ezin

izango da erabili 2an bagauden.

;irudi batetik hainbat zati hartungo ditugu ausaz, eta bakoitza gune ezberdin baten gordeko ditugu BITLOAD "c:\\drawing.bmp PU REPEAT 25 [ SETXY RANDOM 1000 RANDOM 1000 SETBITINDEX REPCOUNT BITCOPY 100 100 ] ;orain matrize-ordenean agerraraziko ditugu zatiak CS HOME MAKE "x 0 MAKE "y 0 FOR[i 1 50 1][ SETXY :x*100 :y*100 SETBITINDEX :i BITPASTE MAKE "x :x+1 IF :x>4 [ ;bost marraztu ostean hurrengo lerrora pasa behar gara MAKE "x 0 MAKE "y :y+1 ] ]

SETBITMODE number (p) Efektu ar3s3koak lor ditzakegu honen bitartez. Ikusi zirkuituen OR AND eta abarreko

eragiketak egin daitezkeela koloreekin. Adibidez:

Demagun bi irudi ditugula, eta bata bestearen gainean itsatsiko dugula. Modu klasikoan

goian geratzen dena behekoa estaliko du, baina hori aldatu daiteke. Foka dezagun elkar

Page 69: Logo coding language

69

kointziditu duten bi puntutan, bata arrosa eta bestea urdina, eta arrosa gainean

geratzen da.

KOLOREA: arrosa ZENBAKIA: 5 BINARIOZ: 101

KOLORE: urdina ZENBAKIA:3 BINARIOZ: 011

SETBITMODE-aren arabera hau gertatuko da posizio horretan:

Mode Meaning

1 Take copy of memory then copy to screen

Arrosaduna goien geratzen da eta urdina desagertzen da.

2 Take copy of memory OR with copy of screen then copy to screen

Bi koloreen zenbaki binarioen arteko OR operazioa aplikatzen da, eta emaitzazko

kolorea agertzen da. OR operazioan hau gertatzen da:

101 OR 011 = 111 = 7 (ZURIA). Inprimatuko den kolorea zuria izango da.

OR operazioa egiteko bi zenbakiak bertikalez kokatu:

101

011

-----

111

Eragiketa matematiko baten modura kalkulatzen da arau hau jarraituta: bi digitotik

edozein 1 bada (edo biak) emaitza 1 da, bestela 0.

3 Take copy of memory AND with copy of screen then copy to screen

Aurrekoaren berdina, baina AND-en bi digitoak 1 izan behar dira emaitza 1 izateko,

bestela 0.

101

011

-----

001

Emaitza 001 = 1 da, URDIN ILUNA.

4 Take copy of memory XOR with copy of screen then copy to screen

XOR operazioak bi digitoak berdinak direneko 1 ematen du, bestela 0.

101

011

-----

001

Emaitza 001 = 1 da, URDIN ILUNA.

5 Take copy of memory AND with invert of screen then copy to screen

Memorian gordeta dagoen irudia hartu, horren negatiboa kalkulatu eta AND

eragiketa aplikatzen zaio beste kolorearekin.

101 – originala, negatiboa digito guztiak aldatzetik lortzen da, 0ak 1 bilakatu eta 1ak

0. Hortaz 101 negatiboan izango da 010.

010

011

-----

010

Emaitza 010 = 2 da, BERDEA.

6 Take invert of memory then copy to screen

Aurrekoan bezala, itsatsiko den kolorearen negatiboa: 101 -> 010, BERDEA.

Page 70: Logo coding language

70

7 Take copy of memory OR with copy of screen then invert to screen

Lehendabizi OR operazioa aplikatzen da, eta emaitzaren negatiboa kalkulatu

010

011

-----

011 -> negatiboa -> 100 = 4 = GORRIA

8 Take invert of memory OR with copy of screen then copy to screen

Lehendabizi memoriako negatiboa kalkulatu eta bigarrenarekiko OR operazioa.

Aurrekoaren berdina baina ordena aldatuta.

010 -> negatiboa -> 101

101

011

-----

111

Emaitza 111 = 7 da = ZURIA

9 Take invert of screen then copy to screen

Memoriatik negatiboa kalkulatu eta zuzenean kopiatu.

010 -> negatiboa -> 101 = 5 da = ARROSA

;exekutatu hurrengo funtzioa: marrazkia 50 200 ;ikusi ahal izango duzu bisualki moduak nola dabilzen TO marrazkia :tamaina :offset CT PRINT (SENTENCE [Datu hauekaz marraztuku: TAMAINA] :tamaina [(0,0)TIKO DESPLAZAMENDUE] :offset) PRINT [Baliorik onenak 75 200 diez] REPEAT 9 [ HOME CS MAKE "y 0 MAKE "x 0 SETPENSIZE :tamaina FOR[i 1 100 1][ IFELSE :x=0 [PU][PD] SETPC :i SETXY :x*:tamaina-:offset :y*:tamaina-:offset PD MAKE "x :x+1 IF :x>9 [ MAKE "x 0 MAKE "y :y+1 ] ] PU HOME SETXY -:offset -:offset BITCUT ROUND :tamaina ROUND :tamaina PRINT SENTENCE "SETBITMODE REPCOUNT WAIT 200 SETBITMODE REPCOUNT

Page 71: Logo coding language

71

REPEAT 100 [ SETXY RANDOM :tamaina*100-:offset RANDOM :tamaina*100-:offset BITPASTE ] MAKE "nul YESNOBOX (SENTENCE REPCOUNT [. iterazioa]) [Sakatu jarraituteko] ] PRINT [Horra modo guztixek! Saiatu tamaina ezberdinekaz!] END

TESTU-KATEEKIN LAN EGITEKO

ASCII character / CHAR number (f) ASCII kodea aspaldin asmatu zen eta oinarrizko letra, zenbaki eta sinbolo guz3ak

bateratzen ditu, bakoitzeko zenbaki-kode bat dagoela (03k 255era).

INTERNETen bilakaeraz ASCII kodea motz geratu zen herrialdeen arteko kode guz3ak

bateratzeko (japoniar karaktereak, ñ, 3lde, dieresi eta abar), eta UNICODE garatu zen.

SHOW ASCII "a >97 PRINT CHAR 97 >a REPEAT 10 [PRINT CHAR RANDOM 256]

FIRST / LAST / BUTFIRST / BUTLAST string (f) PR SENTENCE [FIRST "Hello BUTFIRST "Hello] >H ello PR BUTLAST "Hello >Hell

LOWERCASE / UPPERCASE word (f) PRINT LOWERCASE "Hello >hello PRINT UPPERCASE "HeLLo >HELLO

Page 72: Logo coding language

72

MEMBER string1 string2/list (f) SHOW MEMBER "b [a b c d] >[b c d]

SHOW MEMBER "b "abba" bba

Page 73: Logo coding language

73

LANA GORDETZEKO ETA KARGATZEKO

SAVE name SAVE "nirelanak.lgo

LOAD name LOAD "nirelanak.lgo

MAKE "STARTUP [func�onname]

EDALL TO sarrerapuntua PRINT "Kaixo! END MAKE "STARTUP sarrerapuntua ;aurreko fitxategia kargatzen deneko sarrerapuntua funtzioari deituko zaio automatikoki

Page 74: Logo coding language

74

SAGUA KONTROLATZEKO Aurki.

MOUSEON leQbuPondown leQbuPonup

rightbuPondown rightbuPonup move

MOUSEON [SETPOS MOUSEPOS PENDOWN] [PENUP] []

[] [SETPOS MOUSEPOS]

MOUSEOFF

MOUSEPOS

SAREA KONTROLATZEKO Aurki.

OINARRIZKO INSTRUKZIOAK BIRDEFINITZEKO Askotan oinarrizko funtzio/prozeduren izenak aldatzea komenigarria gerta dakigu, edo

laburragoak egiteko edota beste hizkuntza batera pasatzeko.

COPYDEF / ERASE (P) COPYDEF "AURRERA "FD AURRERA 50 >(mugituko da aurrera 50 puntu) ERASE "AURRERA AURRERA 50 >I don’t know how to aurrera

COPYDEF "ITERATU "FOR

ITERATU[i 1 3][PRINT :i] >1 >2 >3

COPYDEF "BALDIN "IF COPYDEF "IDATZI "PRINT

Page 75: Logo coding language

75

BALDIN 2>1 [IDATZI "Handiague!] >Handiague!

PAUSA BAT EZARTZEKO: WAIT dura�on (p) Jada ikusi dugu prozedura hau.

Page 76: Logo coding language

76

BOSTGARREN BLOKEKO ARIKETAK

1. Umeek jolasteko marrazki ezkutua deritzona erabiltzen da. Berton puntu batzuk

dauzkazu eta horiek lotuta figura bat agertzen da. Horrelako bat egiteko

prozedura prestatu, zeinak fitxategiaren izena jasoko duen parametro moduan.

Puntuen koordenatuak fitxategi bate3k jasoko ditu (erabili SETXY). Adibidez:

0 0

123 45

37 100

Irakurri ostean marra bat marraztuko du (0, 0) koordenatu3k (123,45)era, eta

abar.

2. Aurreko ariketaren berdina, baina kolorea gehitu.

3. Aurreko bloke baten prestatutako elkarrizketaren antzekoa egin, baina oraingo

honetan erantzunak fitxategi batean gordeko dira.

4. Kontsola3k jaso fitxategi baten izena, bera ireki, irakurri edukia eta hori egin

ahala bigarren fitxategi baten barruan gorde (izen hori ere galdetuko da) dena

letra larritan. Ondoren baieztatu bigarren sortu eta lehenengoaren eduki bera

daukala.

5. LOGOren instrukzio guz3ak euskaratu. Prozedura baten barruan sartu, eta

STARTUP erabilita zure fitxategi pertsonal baten barruan gorde. Itxi LOGO, ireki

berriz ere eta kargatu zure fitxategia. Birmoldatu aurreko ariketaren bat eta

ikusi zer itxura daukan euskaraz.

6. Kontsola3k jaso fitxategi baten izena. Ondoren fitxategi horren barruan bilatuko

den hitza eskuratu. Bi datuekin fitxategia ireki eta bilatu hitz hori non dagoen.

Kontsola3k agerrarazi zein lerrotan topa den hitza, eta guz3ra zenbat alditan.

7. Kontsola3k jaso bi irudi-fitxategien izenak. Pantailan agertu bata bestearen

gainean BITMODE modu guz3etan, adibidean egin den antzera.

8. Zuk aukeratutako SPRITEa (pertsonaia baten irudi bat) kargatu. Ondoren lauki

handi bat marraztu (SPRITE baino askoz handiagoa) eta irudia bere barruan

sartu mugitzen, laukiaren hormen kontra errebotatzen.

Page 77: Logo coding language

77

SEIGARREN BLOKEA: MATEMATIKA

ARITMETIKA Eragiketak egiteko matema3kako arau berdinak erabiltzen dira.

MAKE "A 50 MAKE "B 100 MAKE "C :A + :B PRINT :C >150 PRINT :A + :B >150 PRINT :C / :A * 10 >30 (150/50 = 3 * 10 = 30) PRINT :C / (:A * 10)

>0.3 (50*10 = 500, 150 / 500 = 0.3) PRINT -:C / :A * -(-0.5) >-1.5

Dezimalak eta notazio zien�fikoa: Dezimalak PUNTU batekin adierazten dira, eta notazio zien3fikoa E batekin.

PRINT 3.14159 >3.14159 PRINT 1.0E-5 + 0.1 >0.10001 PRINT 3.4E3 >3400

Bestelako eragiketa matema�koak:

SUM / DIFFERENCE / PRODUCT / QUOTIENT / MODULO

(hondarra) PRINT SUM 10 5 >15 PRINT DIFFERENCE 10 5 >5

Page 78: Logo coding language

78

PRINT PRODUCT 10 5 >50 PRINT QUOTIENT 10 5 >2 PRINT MODULO 10 5 >0

MINUS / INT / ROUND / SQRT / POWER PRINT SENTENCE MINUS 5 MINUS -10 >-5 10 PRINT INT 10.5 >10 PRINT (SENTENCE ROUND 10.4 ROUND 10.5 ROUND 10.6) >10 10 11 PRINT SQRT 25 >5 PRINT SENTENCE POWER 2 4 POWER 4 0.5 >16 2

EXP (e zenbakia) / LN (LOGARITMO NEPERIANOA) / LOG10

(10EKO LOGARITMOA) PRINT EXP 1 >2.71828182845905 ;hori da e zenbakia (e^1) PRINT LN 2.71828182845905 >1 ;aurreko eragiketaren kontrakoa da

PRINT (SENTENCE LOG10 1 LOG10 10 LOG10 100) >0 1 2 ;zeren berreketa egin behar zaio 10ari balio horiek lortzeko? ;10^0=1 ;10^1=10 ;10^2=100 PRINT (SENTENCE LOG10 1 LOG10 2 LOG10 3) >0 0.301029995663981 0.477121254719662

Page 79: Logo coding language

79

SIN (SINUA GRADUTAN) / RADSIN (SINUA RADIANETAN) / COS

(KOSENOA GRADUTAN) / RADCOS (KOSENOA RADIANETAN) /

TAN (TANGENTEA) / ARCTAN (ARKOTANGENTEA GRADUTAN) PRINT (SENTENCE SIN 1 COS 1 TAN 1) >0.0174524064372835 0.999847695156391 0.0174550649282176 PRINT (SENTENCE RADSIN 1 RADCOS 1 RADTAN 1) 0.841470984807897 0.54030230586814 1.5574077246549 PRINT ARCTAN 1 45

OINARRIZKO GEOMETRIA

CIRCLE radius

ARC angle radius

ELLIPSE crosswise.semiaxis inline.semiaxis

ELLIPSEARC angle crosswise.semiaxis inline.semiaxis

startangle

AUSAZKO BALIOAK Funtzio hauek erabiltzea dado bat botatzearen antzekoa da, ez dakigu zer irtengo den.

Erabilera anitza dauka.

RANDOM value (f) CS REPEAT 500 [ FD 10 LT RANDOM 360 ]

CS REPEAT 360 [ SETPENSIZE RANDOM 5 SETPC RANDOM 16

Page 80: Logo coding language

80

FD 1 LT 1 RT 90 FD 100 BK 100 LT 90 ]

RERANDOM (p) Askotan ausazko baliok erabili arren horiek be3 berdinak izatea behar dugu kodea

aztertzeko. Horretarako rerandom dugu, eta random erabili baino lehenago jarriz gero

efektu hori lortuko dugu.

TO mustxapelketa :eznahastu MAKE "kartak [as 2 3 4 5 6 7 sota zaldia erregea] if :eznahastu [RERANDOM] FOR[jokalaria 1 4 1][ PRINT (SENTENCE :jokalaria "jokalaria) REPEAT 4 [ PRINT (SENTENCE "> i :kartak) ] PRINT " ] PRINT " PRINT "Mus? END mustxapelketa "true mustxapelketa "true mustxapelketa "true mustxapelketa "false ;lehen hiru alditan karta banaketa beti izango da berdina, baina laugarrenean aldatuta agertuko dira

PICK (f) Zerrenda bate3k ausazko balio bat hartzen du. Ikusi aurreko adibidea karta bat

hautatzeko.

Page 81: Logo coding language

81

KONSTANTEAK

GOLDENRATIO ;aurreko adibide batean kalkulatu dugun URREZKO ZENBAKIAren konstantea da PRINT goldenratio >1.61803398874989

PI PRINT PI >3.14159265358979

Page 82: Logo coding language

82

SEIGARREN BLOKEKO ARIKETAK

1. Urrezko zenbakia erabilita Fibbonaciren espirala marraztu.

2. Aurreko ariketan bezala urrezko laukia marraztu.

3. Bate3k hamarrerako grafikoak marraztu (matema3kan egiten duzun bezala).

Funtzio matema3ko ezberdinak erabiliko dituzu, eta lortutako puntuekin SETXY

erabilita grafikoak sortu ahal izango dituzu. Adib, puntuak kalkulatzeko:

X F1: SQRT F2: x^2 F3: LN x

1 1 1 0

2 1.414 4 0.693

Hortaz, F1erako puntuak izango dira (1,1) (2,1.414) eta abar. Bigarren

funtziorako, F2, (1,1) (1,4). Hirugarrenerako, (1,0) (2,0.693).

Ikusi nola geratzen diren beste adibide batzuk:

4. Oinarrizko eragiketa matema3koak egingo dituen programa prestatu. Honako

hau galdetuko du: eragiketa mota eta zenbakiak. Adibidez:

>Zer egin nahi duzu? (A:batu, B:kendu, C:biderkatu, D:zatu)

>C

>Biderketa egitea erabaki duzu.

>Zein da lehen zenbakia?

>0.5

>Zein da bigarren zenbakia?

>-2

>Eragiketaren emaitza: 0.5 * (-2) = -1

>Berriz egin nahi duzu?

>…

5. Marraztu zirkunferentzia bat PI zenbakia erabilita, alegia, 03k 360rako gradu

bakoitzeko kalkulatu beharko dituzu [x, y] puntuak. Kontuan izan formula hau:

[erradioa*SIN x, erradioa*COS y]

Page 83: Logo coding language

83

PROGRAMATZEKO ESTRATEGIAK

Askotan arazo korapilotsu ba3 nola aurre egiten ez dakigu, hortaz aukera bakarra

daukagu: arazo nagusia arazo txikiagotan za3tu behar da, za3 bakoitza ulergarria izan

arte.

Nola programatu ez badakizu kontuan izan ordenagailua gizaki baten antzekoa dela,

eragiketa batzuk egiteko gai dena. Hori kontuan hartuta pentsa:

HASIERAKO PROPOSAMENA EGITEKO:

1. Nola egingo nuke nik? Idatzi pausuak lengoaia naturalean.

2. Pausu bakoitzeko topatu LOGOren egituraren bat, adibidez:

a. BALDIN ETA... => IF.

b. BITARTEAN => WHILE.

c. ERREPIKATU => REPEAT.

d. GALDETU => READWORD.

e. Eta abar.

3. Zure hasierako egituran LOGOren instrukzioak txertatu eta forma eman

(honetarako ondo jakin behar da LOGOren sintaxia). Adibidez:

;1etik 10era arteko zenbaki bikoitiak inprimatu ;1.Kalkulatuko ditut denak, 1etik 10era, beraz banaka joan beharko naiz horiek aztertzen ;2.Jakiteko bikoitia bada /2 eragiketaren hondarra 0 izan behar da, bestela bakoitia izango da ;1.Antolatuko dut begizta bat 1etik 10era zenbatzeko eta inprimatzeko FOR[zenbakia 1 10][ PRINT :zenbakia ] ;2.Orain aztertuko dut bikoitien kontua. Hondarra kalkulatzeko MODULO funtzio daukat, honela funtzionatzen duena: MAKE "hondarra MODULO zatigaia zatitzailea 3.Jakiteko hondarra zero bada: IF :hondarra = 0 [;zerbait egin] 4.Dena antolatuta: FOR[zenbakia 1 10][ MAKE "hondarra MODULO :zenbakia 2 IF :hondarra = 0 [PRINT :zenbakia] ]

Page 84: Logo coding language

84

5.Zerbait soberan? Aldagaia aurreztu daiteke: FOR[zenbakia 1 10][ IF MODULO :zenbakia 2 = 0 [PRINT :zenbakia] ] > MODULO doesn't like false as input in forloop 6.Zergatik gertatzen da akats hori... GOGORATU! LOGOK IRAKURTZEN DU ESKOITIK EZKERRERA. ORDUAN: MODULO :zenbakia 2 = 0 Lehenik. 2 = 0 ? Ez da berdina, hortaz FALSE itzuli. Bigarrenik. MODULO :zenbakia FALSE => akatsa! Hondarra kalkulatzeko bi zenbaki oso behar dituzu, eta jasotzen ari da zenbakia eta balio booleartar bat (TRUE ala FALSE direnak, eta bakarrik baldintzetarako balio direnak). 7.Zuzentzeko IRAKURKETA ORDENA aldatu behar zaio gakoen laguntzaz: (MODULO :zenbakia 2) = 0 Lehenik: MODULO :zenbakia 2 => zenbaki osoa Bigarrenik: zenbaki osoa = 0 ? => TRUE/FALSE 8.Zuzenduta: FOR[zenbakia 1 10][ IF (MODULO :zenbakia 2) = 0 [PRINT :zenbakia] ]

OINARRIZKO AKATSAK EKIDITEKO:

1. Gogoan izan liburu honen adibide guz3etan aipatutako arazo potentzialak.

a. Aldagai bat kakotx barik deklaratu: MAKE nirealdagaia.

b. Aldagai bat bi puntu barik erabili (LOGOk pentsatuko du zure FUNTZIO

bat dela): PRINT nirealdagaia

c. Adierazpen baten HIRU elementu baino gehiago badauden gakoak ez

erabiltzea (aukeran erabili be3): PRINT SENTENCE :a :b :c

d. Adierazpen baten FUNTZIO lar sartzea gako barik (kontuan izan eskoi3k

ezkerrera ulertzen duela): IF MODULO 10 COUNT ITEM 2 nirezerrenda

e. Funtzio bat prozedura bezala erabili, eta alderantziz:

i. PRINT FD 10 ; FDk ez du ezer itzultzen inprimatzeko.

ii. ITEM 3 [cat dog bird] ;ez da esaten zer egin elementuarekin.

f. Datu motak nahastu:

Page 85: Logo coding language

85

i. Zenbaki baino, true/false: FOR[i 1 ISNUMBER :z][]

Baina FOR[i 1 :z][]

ii. T/F baino, zenbakia: IF 7+3 []

Baina IF 7+3=10 []

iii. Zerrenda baino, katea: ITEM 3 "testue

Baina ITEM 3 [testue]

iv. Eta abar.

2. Arazo horiek LOGOren sintaxiarekin egongo dira lotuta ziur asko (kakotxak,

taketak, aldagai bat puntu barik erabili...).

FUNTZIONAMENDU AKATSAK EKIDITEKO:

1. Honi DEBUGING esaten zaio: arazketa.

2. LOGOn komenigarria da PRINT asko sartzea hasieran, aldagaien balioak eta

funtzioek itzulitakoak ondo daudenentz ikusteko. Alegia, oinarrizko

funtzionamendurako agian ez dute baliorik izango, baina bai zuk ikusteko zer

dabilen gertatzen.

3. Be3 hasi oinarrizko txan3loiak prestatzen, eta horien barruan joan gauza

gehiago txertatzen. Adibidez:

;Hau da Fibonacci-ren algoritmoa

MAKE "aurrekoa 1 MAKE "aurrekoarenaurrekoa 0 FOR [zenb 1 10 1] [ MAKE "unekoa :aurrekoa + :aurrekoarenaurrekoa PRINT :unekoa MAKE "aurrekoarenaurrekoa :aurrekoa MAKE "aurrekoa :unekoa ] ;1.LEHENDABIZI: prestatu aldagaiak eta FOR-a. Ondo funtzionatzen dutenean segi aurrera. ;2.ALDAGAIEN balioak agertuko duen PRINT bat jarri FOR-aren barruan, balioak ezarri eta ondoren (ez ahaztu iterazio zenbakia), horrela jakingo duzu zer ari den gertatzen: PRINT (SENTENCE :zenb :aurrekoa :unekoa :aurrekoarenaurrekoa) ;3.PAUSAren bat ezartzeko gogoratu PAUSE daukazula. ;4.Begizta lar handia bada hasieran murriztu ahal duzu 1etik 10era, eta balio horiekin ondo dabilela ikusten duzunean orduan jarri benetako zenbaki-tartea.

Page 86: Logo coding language

86

;5.DRIBBLE erabilita kontsolako datuak fitxategi batera pasa ditzakezu, lasaiago analizatzeko. ;6.Kontuz semantikarekin: IF NOT "baldin eta ez bada" esan nahi du, baina galdera bi modutan planteatu daiteke: jarraitu nahi duzu? Itxi nahi duzu?. Erantzuna ezberdina da! Ikusi YESNOBOX funtzioa. ;7.Ondo irakurri LOGOk zer esaten duen akatsari buruz. Aurreko adibide guztietan azaltzen da zergatik gertatzen den bakoitza. ;8.Ez badakizu zergatik dagoen txarto lerro bat KOMENTARIO bihurtu(; jarrita aurretik). Era horretan LOGOk ez du exekutatuko eta jarraitu ahal izango duzu. Askotan akats batek beste bat estaltzen du.

Page 87: Logo coding language

87

EIK PARADIGMA

Informa3kan bere biziko garrantzia duen diseinatzeko eredua da. EIK-k esan nahi du

(MVC ingelesez, model-view-controller):

1. E: eredua, alegia, programaren barruan kalkulatzen diren datu guz3ak.

2. I: ikuspegia, edo aurreko eredua pantaila3k nola agertzen den. LOGOn bi modu

baino ez daude ikuspegiak agertzeko, hots, marrazki-gunea eta testu-kontsola.

3. K: kontrolatzailea, erabiltzailearen elkarrakzioaren bitartez sortzen diren

aginduak (testuak sartu, teklak sakatu, sagua mugitu…).

Ondo ulertzeko pentsatu oinarrizko ar3kulu batean: izenburua eta gorputza. Edozein

testu-prozesatzaile erabilita ia es3lo-grafikozko konbinazio amaigabeak lor daitezke.

Hau da, informazio-iturri berarekin hainbat sorkuntza bisual lor daitezke.

Adibideak:

a. Karratu bat marrazteko:

i. E: lau koordenatuak.

ii. I: marrazteko es3loa: kolorea, marren loditasuna…

b. Funtzio matema3koa marrazteko:

i. E: funtzioa.

ii. I: eskala.

c. Bizitzaren jolasa:

i. E: zelula-matrizea.

ii. I: marrazki-gune3k agertzeko es3loa.

iii. K: hasierako zelulak kokatzea saguaren bitartez.

d. Animazioa:

i. E: pertsonaien irudiak.

ii. I: pertsonaien agertzea eta animazioa.

Page 88: Logo coding language

88

ADIBIDE BATZUK

1.EDOZEIN POLIGONO MAR1.EDOZEIN POLIGONO MAR1.EDOZEIN POLIGONO MAR1.EDOZEIN POLIGONO MARRARARARAZTEKOZTEKOZTEKOZTEKO (funtzio baten barruan)(funtzio baten barruan)(funtzio baten barruan)(funtzio baten barruan)

to POLIGONOA :luzeera :aldea

REPEAT :aldea [FORWARD :luzeera RIGHT 360/:aldea]

end

2.LEHENENGO 2.LEHENENGO 2.LEHENENGO 2.LEHENENGO ZENBAKI BAKOITIAK AGERTARAZTEKOZENBAKI BAKOITIAK AGERTARAZTEKOZENBAKI BAKOITIAK AGERTARAZTEKOZENBAKI BAKOITIAK AGERTARAZTEKO

for [a 1 10 2] [print :a]

3.HAINBAT PENTAGONO MARRAZTEKO, BATA BESTEAREN BARRUAN3.HAINBAT PENTAGONO MARRAZTEKO, BATA BESTEAREN BARRUAN3.HAINBAT PENTAGONO MARRAZTEKO, BATA BESTEAREN BARRUAN3.HAINBAT PENTAGONO MARRAZTEKO, BATA BESTEAREN BARRUAN (aurreko funtzioa erabiltzen du)(aurreko funtzioa erabiltzen du)(aurreko funtzioa erabiltzen du)(aurreko funtzioa erabiltzen du)

home clean for [i 1 100 5] [poligonoa :i 5]

4.4.4.4.MARRATXOEKIN MARRAZTUTAKO LAUKIAMARRATXOEKIN MARRAZTUTAKO LAUKIAMARRATXOEKIN MARRAZTUTAKO LAUKIAMARRATXOEKIN MARRAZTUTAKO LAUKIA

cs repeat 4 [repeat 10 [pd fd 10 pu fd 10] left 90]

5.INTEGRALAREN ZEINUA5.INTEGRALAREN ZEINUA5.INTEGRALAREN ZEINUA5.INTEGRALAREN ZEINUA

cs repeat 3600 [fd 10 right repcount]

6.ROSETOI BAT EGITEKO6.ROSETOI BAT EGITEKO6.ROSETOI BAT EGITEKO6.ROSETOI BAT EGITEKO

cs repeat 360 [fd 0.25 left 1 right 90 fd 150 back 150 left 90]

7.ESKATU BALIO BAT LETRA IDATZI ARTE7.ESKATU BALIO BAT LETRA IDATZI ARTE7.ESKATU BALIO BAT LETRA IDATZI ARTE7.ESKATU BALIO BAT LETRA IDATZI ARTE

WHILE[NUMBER? READWORD][]

8.ESKATU BALIO BAT 8.ESKATU BALIO BAT 8.ESKATU BALIO BAT 8.ESKATU BALIO BAT ZENBAKIA IDATZI ARTEZENBAKIA IDATZI ARTEZENBAKIA IDATZI ARTEZENBAKIA IDATZI ARTE

WHILE[NOT NUMBER? READWORD][]

9.LOREA9.LOREA9.LOREA9.LOREA

TO DAISY CS HT REPEAT 30 [TRI 120 RT 12] REPEAT 30 [TRI 80 RT 12] REPEAT 30 [TRI 40 RT 12]

Page 89: Logo coding language

89

END

10.TXABOLA10.TXABOLA10.TXABOLA10.TXABOLA

TO HUT REPEAT 4 [FD 60 RT 90] FD 60 RT 30 FD 60 RT 120 REPEAT 20 [BK 6 FD 66 BK 60 RT 3] END

11.EGUZKIA11.EGUZKIA11.EGUZKIA11.EGUZKIA

REPEAT 12 [REPEAT 4 [FD 100 RT 90] RT 30]

12.ISLAPENA (12.ISLAPENA (12.ISLAPENA (12.ISLAPENA (FUNTZIOEN ARTEKO DEIEN BITARTEZFUNTZIOEN ARTEKO DEIEN BITARTEZFUNTZIOEN ARTEKO DEIEN BITARTEZFUNTZIOEN ARTEKO DEIEN BITARTEZ))))

TO SQUARE :N REPEAT 4 [FD :N RT 90] END TO SQUARES SQUARE 60 SQUARE 80 SQUARE 100 SQUARE 120 END

TO TABLES SQUARES LT 90 SQUARES END

TO MIRROR TABLES LT 90 TABLES END

TO MIRRORS MIRROR LT 45 MIRROR END

>MIRRORS

13.ERREKURTSIBITATEA (FUNTZIOA BERE BURUARI DEITZEN)13.ERREKURTSIBITATEA (FUNTZIOA BERE BURUARI DEITZEN)13.ERREKURTSIBITATEA (FUNTZIOA BERE BURUARI DEITZEN)13.ERREKURTSIBITATEA (FUNTZIOA BERE BURUARI DEITZEN)

TO MAZE :N FD :N RT 90 MAZE :N + 5 END

Page 90: Logo coding language

90

TO FRACTAL :SIZE :LEVEL IF :LEVEL = 0 [FD :SIZE STOP] FRACTAL :SIZE :LEVEL - 1 RT 90 FRACTAL :SIZE :LEVEL - 1 LT 90 END

14.ITSASONTZIA MARRAZTEN POSIZIOAK ERABILITA:14.ITSASONTZIA MARRAZTEN POSIZIOAK ERABILITA:14.ITSASONTZIA MARRAZTEN POSIZIOAK ERABILITA:14.ITSASONTZIA MARRAZTEN POSIZIOAK ERABILITA:

TO SAILBOAT CS PU SETPOS [ 20 -40] PD SETPOS [-160 -40] SETPOS [ 20 160] SETPOS [ 140 -40] SETPOS [ 20 -40] PU SETPOS [ -120 -60] PD SETPOS [ -80 -100] SETPOS [ 80 -100] SETPOS [ 120 -60] SETPOS [ 20 -60] SETPOS [ 20 -40] SETPOS [ 20 -60] SETPOS [ -120 -60] END

15.Dragoia:15.Dragoia:15.Dragoia:15.Dragoia:

TO DRAGON :SIZE :LEVEL LDRAGON :SIZE :LEVEL END TO LDRAGON :SIZE :LEVEL IF :LEVEL = 0 [FD :SIZE STOP] LDRAGON :SIZE :LEVEL - 1 LT 90 RDRAGON :SIZE :LEVEL - 1 END

TO RDRAGON :SIZE :LEVEL IF :LEVEL = 0 [FD :SIZE STOP] LDRAGON :SIZE :LEVEL - 1 RT 90 RDRAGON :SIZE :LEVEL - 1 END

16.Elur maluta:16.Elur maluta:16.Elur maluta:16.Elur maluta:

TO SNOWFLAKE :SIZE :LEVEL REPEAT 3 [RT 120 SIDE :SIZE :LEVEL] END TO SIDE :SIZE :LEVEL IF :LEVEL = 0 [FD :SIZE STOP] SIDE :SIZE / 3 :LEVEL - 1 LT 60 SIDE :SIZE / 3 :LEVEL - 1 RT 120 SIDE :SIZE / 3 :LEVEL - 1 LT 60 SIDE :SIZE / 3 :LEVEL - 1 END

Page 91: Logo coding language

91

17.Berbetan ordenagailuarekin:17.Berbetan ordenagailuarekin:17.Berbetan ordenagailuarekin:17.Berbetan ordenagailuarekin:

TO TALK CT PRINT [HI! WHAT'S YOUR NAME?] MAKE "NAME READWORD MAKE "REPLY SE :NAME~ [MY NAME IS ERNESTINE.] PRINT SE [I DON'T THINK WE'VE MET,] :REPLY PRINT [HAVE YOU EVER TALKED TO A ~ COMPUTER?] TEST READWORD = "NO IFFALSE [PRINT ~ [WOW! DO YOU TALK TO TURTLES, TOO?]] IFTRUE [PRINT [OH BOY! A BEGINNER.]] END

Page 92: Logo coding language

92

PROPOSATURIKO PROIEKTUAK

Proiektu guz3ek oinarri hauek eduki behar dituzte:

1. Prozedura/funtziotan oinarritu.

2. Fitxategiak erabili (konfigurazioa, puntuazioak, bestelako datuak… gordetzeko

eta jasotzeko).

3. Puntuaziorik onenen ranking-a eduki.

4. Elkarrakzioa erabiltzailearekin.

Proiektu bakoitza bizitza errealeko gertakizunetan oinarrituta dago, hortaz

PLANTEAMENDU ANITZAK eduki ahal ditu. Hasierako ESTRATEGIA zuk planteatu

beharko duzu, baita pentsatu ere nola gauzatu LOGOren bitartez. Hori dena pentsatu

duzunean irakaslearekin kontsultatu eta adostu soluzio defini�boa.

PROIEKTUAK:

a) MASTERMIND:

Zenbaki, hizki eta karaktere bereziez osatuko hitz bat asmatzeko jolasa da

(adibidez hitz bat hau izan daiteke "jfdhe3ji"). Kolore sekuentzia batekin ere

egin daiteke (gorri urdin gorri hori berde).

Jokalariak hainbat saiakera edukiko ditu hitz sekretua asmatzeko.

Saiakera bakoitzean jokalariak hitz bat sartuko du, eta sistemak esango dio:

asmatutako hizkiak (posizio egokian eta desegokian), eta ez asmatutakoak.

Adibidez: hitza K E H I K J H izango da.

SAIAKERA JOKALARIAREN HITZA EMAITZA

+ ONDO

? ONDO BAINA TXARTO KOKATUTA

! TXARTO

1 N B H D E H J ! ! + ! ? ? ? (orain badaki N B eta D

ez direla agertzen inondik, H ondo

dagoela kokatuta, eta gainontzeko

guz3ak K J eta H badaudela baina

txarto kokatuta)

2 M W H A H J K ! ! + ! ? + ?

Hortaz, prozesua honelakoa izango da:

1. Asmatu hitz bat.

2. Jokalariari galdetu hitza asmatzeko.

3. Emaitza esan jokalariari.

Page 93: Logo coding language

93

4. Ez badu asmatu pasa 2. Puntura.

b) ANIMALIA/BEGETALA/MINERALA.

Bai/ez galderetan oinarritutako jolasa da. LOGO saiatu beharko da jokalariak

pentsatutako elementua asmatzen. Horretarako bai/ez-ko galderak egingo dio.

Asmatzen ez badu jokalariari eskatuko dio elementu berria bereizteko galdera

berria egiteko. Ikusi adibidea:

>Lau hanka ditu?

>bai

>Zaldia al da?

>ez

>Zein da zuk pentsatutakoa?

>Behia

>ZER GALDERA (BAI/EZ-KOA) EGIN BEHARKO NUKE BEHIA ZALDITIK

EZBERDINTZEKO?

>Esne ekoizpenerako erabiltzen da?

Beste adibide bat:

>Animalia da?

>ez

>Begetala da?

>ez

>Minerala da?

>bai

>Balio asko dauka?

>bai

>Urrea al da?

>bai

>Asmatu dut!

c) HANGMAN: “ahorcado” jolasa da.

d) 3 IN LINE: “3 en línea”, jolasa.

e) GRAFIKO FRAKTALAK: fraktala bere burua eskala ezberdinetan errepikatzen

duena da (matema3ka eta geometria hutsa). Ikusi adibideak:

Page 94: Logo coding language

94

Parametro ezberdinak jasoko dituen prozedura prestatu beharko da,

erabiltzaileak konfigurazio ezberdinak probatu ahal izateko.

f) GPS: sare batean bi puntuen arteko biderik egokiena topako duen sistema da.

g) LIFE’S GAME: John Horton Conway asmatutako zelula-automata duzu. Matrize

baten barruan elementu batzuk ak3batzen dira. Beraiek izango dira hasierako

Page 95: Logo coding language

95

hazia, uretan utzitako bakterioen antzekoak. Horren ostean jolasa hasten da,

eta aurre ezarritako arau batzuen arabera bakterioak ugaldu edota hil egiten

dira.

Oinarrizko arauak hauek dituzu:

1. Bi zelula (matrizeko bi puntu) elkarrekin egon, baina bakarrik badaude

(inguruan ez badute beste zelularik) hiltzen dira.

2. Hiru zelula badaude beste zelula berri bat jaioko da (zuk erabaki zein

aldeta3k kokatu).

3. Lau zelula badaude, denak elkartuta, laurak hiltzen dira superpoblazioa dela

eta.

Halere, zuk zeure arauak presta ditzakezu, baita kokapenetan oinarrituta ez

dagoen planteamendu bat ere, adibidez sexu-ugalketa, janari ugariko

inguruneak, eta abar.

Interneten oinarritutako adibide bat ikus dezakezu hemen:

h<p://mobilelife.cinnamonthoughts.org/

h) POKER: baraja karta bate3k lau jokalarientzako esku bat baino ez banatu

(alegia, ez da karta botatzerik egingo). Horren ostean kalkulatu zein den eskurik

onena eta zein jokalarik irabazi duen.