Aurkezpen honetan Tangram jokoari buruzko datu desberdinak aurkituko dituzu: Historia, ezaugarriak, forma geometrikoak, tangram jokoa nola eraiki eta egin daitezkeen irudi batzuk.
Aurkezpen honetan Tangram jokoari buruzko datu desberdinak aurkituko dituzu: Historia, ezaugarriak, forma geometrikoak, tangram jokoa nola eraiki eta egin daitezkeen irudi batzuk.
Euskal eskola publikoaren topaketa digitalak 2016: HAIDEI (@andonisanz)Andoni Sanz
Aurkezpen honetan HAIDEI lan markoa ikusiko duzue, Euskal Eskola Publikoaren topaketa digitaletan aurkeztutakoa 2016 urtean (http://eskoladigitala.euskaleskolapublikoa.eus/). HAIDEI-k kontuan hartzen ditu: curriculuma, pedagogia, gamifikazioa eta teknologia, eta irakasle batek egindakoa da klasean erabiltzeko.
Hona aurkezpenaren bideoa: https://www.youtube.com/watch?v=Ru5bGIiXrgg
This is the presentation I used at the Gamification World Congress 2015 (gEducation), about how to integrate gamification, pedagogy and techonology in a framework I call Haidei (#haideiframework).
If you like it, share it and mention me (@andonisanz #gamification #moodle). Thanks!
(Only in Basque and Spanish)
Aurkezpen hau Bilboko Berritzegune Nagusian egindako Moodle kongresuan (#mooteu15) eman egin zen.
"Nola gamifikatu zure Moodle plataforma eraginkorki": gamifikazioaren muinean sartzen gara, benetako dinamika eta mekanikak kontuan hartuta.
Esta presentación se hizo en el congreso Moodle (#mooteu15) celebrado en el Berritzegune Nagusia de Bilbao.
"Cómo gamificar tu plataforma Moodle eficientemente":
Nos metemos en el núcleo de la gamificación, teniendo en cuenta las verdaderas dinámicas y mecánicas.
Google aplikazioen erabilera klaseko jardunerako (Google-eko Euskadiko kongresuan aurkeztutakoa): screencasting eta p2p review.
Utilización de aplicaciones Google dentro de clase (presentado en el congreso Google de Euskadi): screencasting y p2p review.
Among educational buzzwords this is for sure the one with the highest pitches nowadays. The flooding of classrooms with new technologies has led to new approaches to classic lectures and traditional educational strategies, and Flipped Classes can be a good one if applied with common sense.
Teaching how to set up and maintain a blog was something plain and simple years ago . Nowadays things have become more complex… much more: HTML5, SEO, personal brand, positioning, ads, affiliation, social media… Those aren’t but a few terms to take in count really seriously. Enrich your lessons!
Blog version: http://andonisanz.blogspot.com.es/2014/10/blogging-for-students-is-not-only-about.html
Viruses, search boxes, trojans, adware… your computer only lacks bacteria or even fungi! Your students’ pendrives stuffed with primordial soups of life, your Internet researches with showers of malicious cookies… and all of the sudden your computer’s overall performance plummets and your files start to fade away mysteriously.
Blog version: http://andonisanz.blogspot.com.es/2014/09/viruses-search-boxes-trojans-adware.html
#Gamification and #moodle: the how to's (@andonisanz)Andoni Sanz
A quick guide to lesson gamification using Moodle.
Gamifikazioa Moodle-en bitartez gauzatzeko gida azkarra.
Blog version: http://andonisanz.blogspot.com.es/2014/09/gamification.html
Euskal eskola publikoaren topaketa digitalak 2016: HAIDEI (@andonisanz)Andoni Sanz
Aurkezpen honetan HAIDEI lan markoa ikusiko duzue, Euskal Eskola Publikoaren topaketa digitaletan aurkeztutakoa 2016 urtean (http://eskoladigitala.euskaleskolapublikoa.eus/). HAIDEI-k kontuan hartzen ditu: curriculuma, pedagogia, gamifikazioa eta teknologia, eta irakasle batek egindakoa da klasean erabiltzeko.
Hona aurkezpenaren bideoa: https://www.youtube.com/watch?v=Ru5bGIiXrgg
This is the presentation I used at the Gamification World Congress 2015 (gEducation), about how to integrate gamification, pedagogy and techonology in a framework I call Haidei (#haideiframework).
If you like it, share it and mention me (@andonisanz #gamification #moodle). Thanks!
(Only in Basque and Spanish)
Aurkezpen hau Bilboko Berritzegune Nagusian egindako Moodle kongresuan (#mooteu15) eman egin zen.
"Nola gamifikatu zure Moodle plataforma eraginkorki": gamifikazioaren muinean sartzen gara, benetako dinamika eta mekanikak kontuan hartuta.
Esta presentación se hizo en el congreso Moodle (#mooteu15) celebrado en el Berritzegune Nagusia de Bilbao.
"Cómo gamificar tu plataforma Moodle eficientemente":
Nos metemos en el núcleo de la gamificación, teniendo en cuenta las verdaderas dinámicas y mecánicas.
Google aplikazioen erabilera klaseko jardunerako (Google-eko Euskadiko kongresuan aurkeztutakoa): screencasting eta p2p review.
Utilización de aplicaciones Google dentro de clase (presentado en el congreso Google de Euskadi): screencasting y p2p review.
Among educational buzzwords this is for sure the one with the highest pitches nowadays. The flooding of classrooms with new technologies has led to new approaches to classic lectures and traditional educational strategies, and Flipped Classes can be a good one if applied with common sense.
Teaching how to set up and maintain a blog was something plain and simple years ago . Nowadays things have become more complex… much more: HTML5, SEO, personal brand, positioning, ads, affiliation, social media… Those aren’t but a few terms to take in count really seriously. Enrich your lessons!
Blog version: http://andonisanz.blogspot.com.es/2014/10/blogging-for-students-is-not-only-about.html
Viruses, search boxes, trojans, adware… your computer only lacks bacteria or even fungi! Your students’ pendrives stuffed with primordial soups of life, your Internet researches with showers of malicious cookies… and all of the sudden your computer’s overall performance plummets and your files start to fade away mysteriously.
Blog version: http://andonisanz.blogspot.com.es/2014/09/viruses-search-boxes-trojans-adware.html
#Gamification and #moodle: the how to's (@andonisanz)Andoni Sanz
A quick guide to lesson gamification using Moodle.
Gamifikazioa Moodle-en bitartez gauzatzeko gida azkarra.
Blog version: http://andonisanz.blogspot.com.es/2014/09/gamification.html
2. 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-exisƟng works, such
as a translaƟon, adaptaƟon, derivaƟve work, arrangement of music or other alteraƟons of a literary or
arƟsƟc work, or phonogram or performance and includes cinematographic adaptaƟons 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 consƟtutes a CollecƟon will not be considered an AdaptaƟon for the
purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or
phonogram, the synchronizaƟon of the Work in Ɵmed-relaƟon with a moving image ("synching") will be
considered an AdaptaƟon for the purpose of this License.
b. "CollecƟon" means a collecƟon of literary or arƟsƟc works, such as encyclopedias and anthologies, or
performances, phonograms or broadcasts, or other works or subject maƩer other than works listed in
SecƟon 1(g) below, which, by reason of the selecƟon and arrangement of their contents, consƟtute
intellectual creaƟons, in which the Work is included in its enƟrety in unmodified form along with one or
more other contribuƟons, each consƟtuƟng separate and independent works in themselves, which
together are assembled into a collecƟve whole. A work that consƟtutes a CollecƟon will not be considered
an AdaptaƟon (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 AdaptaƟon, 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 Ɵtle of this License: AƩribuƟon, Noncommercial, ShareAlike.
e. "Licensor" means the individual, individuals, enƟty or enƟƟes that offer(s) the Work under the terms of
this License.
f. "Original Author" means, in the case of a literary or arƟsƟc work, the individual, individuals, enƟty or
enƟƟes who created the Work or if no individual or enƟty can be idenƟfied, the publisher; and in addiƟon
(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 arƟsƟc works or expressions of folklore;
(ii) in the case of a phonogram the producer being the person or legal enƟty who first fixes the sounds of a
performance or other sounds; and, (iii) in the case of broadcasts, the organizaƟon that transmits the
broadcast.
g. "Work" means the literary and/or arƟsƟc work offered under the terms of this License including without
limitaƟon any producƟon in the literary, scienƟfic and arƟsƟc domain, whatever may be the mode or form
of its expression including digital form, such as a book, pamphlet and other wriƟng; a lecture, address,
sermon or other work of the same nature; a dramaƟc or dramaƟco-musical work; a choreographic work or
3. 3
entertainment in dumb show; a musical composiƟon with or without words; a cinematographic work to
which are assimilated works expressed by a process analogous to cinematography; a work of drawing,
painƟng, 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 illustraƟon, map, plan,
sketch or three-dimensional work relaƟve to geography, topography, architecture or science; a
performance; a broadcast; a phonogram; a compilaƟon 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 arƟsƟc work.
h. "You" means an individual or enƟty 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 violaƟon.
i. "Publicly Perform" means to perform public recitaƟons of the Work and to communicate to the public
those public recitaƟons, 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 communicaƟon 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 limitaƟon by sound or
visual recordings and the right of fixaƟon and reproducing fixaƟons 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 CollecƟons, and to Reproduce the Work
as incorporated in the CollecƟons;
b. to create and Reproduce AdaptaƟons provided that any such AdaptaƟon, including any translaƟon in any
medium, takes reasonable steps to clearly label, demarcate or otherwise idenƟfy that changes were made
to the original Work. For example, a translaƟon could be marked "The original work was translated from
English to Spanish," or a modificaƟon could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated in CollecƟons; and,
d. to Distribute and Publicly Perform AdaptaƟons.
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 IdenƟfier (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 noƟces that
refer to this License and to the disclaimer of warranƟes with every copy of the Work You Distribute or
Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effecƟve
4. 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 SecƟon 4(a) applies to the Work as
incorporated in a CollecƟon, but this does not require the CollecƟon apart from the Work itself to be made
subject to the terms of this License. If You create a CollecƟon, upon noƟce from any Licensor You must, to
the extent pracƟcable, remove from the CollecƟon any credit as required by SecƟon 4(d), as requested. If
You create an AdaptaƟon, upon noƟce from any Licensor You must, to the extent pracƟcable, remove from
the AdaptaƟon any credit as required by SecƟon 4(d), as requested.
b. You may Distribute or Publicly Perform an AdaptaƟon 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 CreaƟve Commons
jurisdicƟon license (either this or a later license version) that contains the same License Elements as this
License (e.g., AƩribuƟon-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). You must include a
copy of, or the URI, for Applicable License with every copy of each AdaptaƟon You Distribute or Publicly
Perform. You may not offer or impose any terms on the AdaptaƟon that restrict the terms of the
Applicable License or the ability of the recipient of the AdaptaƟon to exercise the rights granted to that
recipient under the terms of the Applicable License. You must keep intact all noƟces that refer to the
Applicable License and to the disclaimer of warranƟes with every copy of the Work as included in the
AdaptaƟon You Distribute or Publicly Perform. When You Distribute or Publicly Perform the AdaptaƟon,
You may not impose any effecƟve technological measures on the AdaptaƟon that restrict the ability of a
recipient of the AdaptaƟon from You to exercise the rights granted to that recipient under the terms of the
Applicable License. This SecƟon 4(b) applies to the AdaptaƟon as incorporated in a CollecƟon, but this
does not require the CollecƟon apart from the AdaptaƟon 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 SecƟon 3 above in any manner that is primarily
intended for or directed toward commercial advantage or private monetary compensaƟon. 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
compensaƟon, provided there is no payment of any monetary compensaƟon in con-necƟon with the
exchange of copyrighted works.
d. If You Distribute, or Publicly Perform the Work or any AdaptaƟons or CollecƟons, You must, unless a
request has been made pursuant to SecƟon 4(a), keep intact all copyright noƟces for the Work and
provide, reasonable to the medium or means You are uƟlizing: (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 parƟes (e.g., a sponsor insƟtute, publishing enƟty, journal) for aƩribuƟon ("AƩribuƟon ParƟes") in
Licensor's copyright noƟce, terms of service or by other reasonable means, the name of such party or
parƟes; (ii) the Ɵtle of the Work if supplied; (iii) to the extent reasonably pracƟcable, the URI, if any, that
Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright noƟce or
licensing informaƟon for the Work; and, (iv) consistent with SecƟon 3(b), in the case of an AdaptaƟon, a
credit idenƟfying the use of the Work in the AdaptaƟon (e.g., "French translaƟon of the Work by Original
Author," or "Screenplay based on original Work by Original Author"). The credit required by this SecƟon
4(d) may be implemented in any reasonable manner; provided, however, that in the case of a AdaptaƟon
or CollecƟon, at a minimum such credit will appear, if a credit for all contribuƟng authors of the
AdaptaƟon or CollecƟon appears, then as part of these credits and in a manner at least as prominent as
the credits for the other contribuƟng authors. For the avoidance of doubt, You may only use the credit
required by this SecƟon for the purpose of aƩribuƟon in the manner set out above and, by exercising Your
rights under this License, You may not implicitly or explicitly assert or imply any connecƟon with,
sponsorship or endorsement by the Original Author, Licensor and/or AƩribuƟon ParƟes, 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ƩribuƟon ParƟes.
e. For the avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In those jurisdicƟons in which the right to collect
royalƟes through any statutory or compulsory licensing scheme cannot be waived, the Licensor
reserves the exclusive right to collect such royalƟes for any exercise by You of the rights granted
under this License;
ii. Waivable Compulsory License Schemes. In those jurisdicƟons in which the right to collect
royalƟes through any statutory or compulsory licensing scheme can be waived, the Licensor
5. 5
reserves the exclusive right to collect such royalƟes 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 SecƟon 4(c) and otherwise waives the right to collect
royalƟes through any statutory or compulsory licensing scheme; and,
iii. Voluntary License Schemes. The Licensor reserves the right to collect royalƟes, whether
individually or, in the event that the Licensor is a member of a collecƟng 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 SecƟon 4(c).
f. Except as otherwise agreed in wriƟng 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 AdaptaƟons or
CollecƟons, You must not distort, muƟlate, modify or take other derogatory acƟon in relaƟon to the Work
which would be prejudicial to the Original Author's honor or reputaƟon. Licensor agrees that in those
jurisdicƟons (e.g. Japan), in which any exercise of the right granted in SecƟon 3(b) of this License (the right
to make AdaptaƟons) would be deemed to be a distorƟon, muƟlaƟon, modificaƟon or other derogatory
acƟon prejudicial to the Original Author's honor and reputaƟon, the Licensor will waive or not assert, as
appropriate, this SecƟon, to the fullest extent permiƩed by the applicable naƟonal law, to enable You to
reasonably exercise Your right under SecƟon 3(b) of this License (right to make AdaptaƟons) 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 automaƟcally upon any breach by You of the
terms of this License. Individuals or enƟƟes who have received AdaptaƟons or CollecƟons from You under
this License, however, will not have their licenses terminated provided such individuals or enƟƟes remain
in full compliance with those licenses. SecƟons 1, 2, 5, 6, 7, and 8 will survive any terminaƟon of this
License.
b. Subject to the above terms and condiƟons, the license granted here is perpetual (for the duraƟon 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 distribuƟng the Work at any Ɵme; provided, however that
any such elecƟon 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 conƟnue in full force and effect unless
terminated as stated above.
8. Miscellaneous
a. Each Ɵme You Distribute or Publicly Perform the Work or a CollecƟon, the Licensor offers to the recipient a
license to the Work on the same terms and condiƟons as the license granted to You under this License.
b. Each Ɵme You Distribute or Publicly Perform an AdaptaƟon, Licensor offers to the recipient a license to the
original Work on the same terms and condiƟons as the license granted to You under this License.
6. 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 acƟon by the
parƟes 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 wriƟng and signed by the party to be charged with such waiver or consent.
e. This License consƟtutes the enƟre agreement between the parƟes with respect to the Work licensed here.
There are no understandings, agreements or representaƟons with respect to the Work not specified here.
Licensor shall not be bound by any addiƟonal provisions that may appear in any communicaƟon 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 draŌed uƟlizing the
terminology of the Berne ConvenƟon for the ProtecƟon of Literary and ArƟsƟc Works (as amended on
September 28, 1979), the Rome ConvenƟon of 1961, the WIPO Copyright Treaty of 1996, the WIPO
Performances and Phonograms Treaty of 1996 and the Universal Copyright ConvenƟon (as revised on July
24, 1971). These rights and subject maƩer take effect in the relevant jurisdicƟon in which the License
terms are sought to be enforced according to the corresponding provisions of the implementaƟon of those
treaty provisions in the applicable naƟonal law. If the standard suite of rights granted under applicable
copyright law includes addiƟonal rights not granted under this License, such addiƟonal 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/.
7. 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
8. 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 condiƟon......................................................................................................... 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 [instrucƟonlist] (1..n)........................................................................ 54
FOR [controllist] [instrucƟonlist] (0..n).................................................................... 55
DO.WHILE [instrucƟonlist] [condiƟonlist] (1..n) ....................................................... 57
WHILE [condiƟonlist] [instrucƟonlist] (0..n) ............................................................. 57
DO.UNTIL [instrucƟonlist] [condiƟonlist] (1..n)....................................................... 57
UNTIL [condiƟonlist] [instrucƟonlist] (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
9. 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 windowƟtle 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 [funcƟonname]................................................................................ 73
SAGUA KONTROLATZEKO................................................................................................ 74
MOUSEON leŌbuƩondown leŌbuƩonup rightbuƩondown rightbuƩonup move..... 74
12. 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 gramaƟka 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, beƟere modu jostagarri batean:
1. MatemaƟkan: esƟmazioa, 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: roboƟka, sentsoreak, simulazio teknologikoak, sistema biologikoen
simulazioak, sistema adimentsuak.
6. Artean: dortokarekin eginiko grafikoak, musika, dantza, mulƟmedia.
13. 13
ETA ADIMENAK?
1. Logiko matemaƟkoa: logikaren garapena hainbat mailatan gertatzen da. Alde
bateƟk, arazo baƟ konponbidea emateko behar den logikaren parteƟk; beste
alde bateƟk, kode-fluxuen kontrolerako behar den logikaƟk.
2. Espaziala: dortokarekin eginiko marrazkiak plano kartesiar batean egiten dira, bi
edo hiru dimentsiotan. Gainera, espazio horretan eginiko lana erlaƟboa zein
absolutua izan daiteke.
3. LinguisƟkoa: dortoka kontrolatzeko zein LOGOrekin programatzeko bere
lengoaiaren gramaƟka ondo jakin behar da erabiltzen.
14. 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 matemaƟkoa 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.
16. 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 irudiagaƟk), 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 atzeƟk. 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 bertaƟk 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
17. 17
du kontsolaƟk, 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 kontsolaƟk.
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.
18. 18
ZER DA PROGRAMAZIO EGITURATUA?
Bere algoritmoak (kopuru mugatuko aginduz osatutako programa) hiru egitura
zehatzetan oinarritzen dituena:
1. Sekuentziak: aginduak bata bestearen atzeƟk doazenean.
2. Baldintzak: aldagai baten balioaren arabera agindu bat ala beste exekutatzeko
aukera.
3. Begiztak: errepikapen-egiturak.
Aurreko egiturak euren artean konbina daitezke, ikusi adibide bat:
19. 19
LOGO TXARTO ERABILTZEN BADA
1. Sekuentziak baino ez dira erabiltzen.
2. Logika ez da aplikatzen, eta kodea ulertu barik erabiltzen da.
3. Planifikazioa, deskonposizioa eta arazketa ez da aplikatzen.
NOLA DAGO ANTOLATUTA LIBURU HAU?
Azalpenak blokeka aurkituko dituzu, eta bakoitzaren barruan atalez atal antolatzen da
informazioa, beƟere adibide nahiko eta lar emanda.
Adibideak gris/berdetan daude markatuta, eta kodea zuzenean kopiatu eta itsasi
daiteke LOGOren editorean (edo kontsolan, lerro batekoak izanez gero) exekuzioa
ikusteko. KontsolaƟk irten behar den informazioa > sinboloaren ostean adierazten da.
Adibide bat baino gehiago badaude lauki gris ezberdinetan ikusiko dituzu.
Koderen batean akatsik topatzen baduzu edota zure adibideak liburu honetan agertzea
gura baduzu (zure izena ikusiko da) jakinarazi niri e-postaz (andoni.sanz@gmail.com).
Gogoan izan: aginduak emateko lerro berean idatzi daitezke bata bestearen atzeƟk,
baina kodea errazago irakurri ahal izateko hainbat lerrotan antolatzeko gomendatzen
da, adibidez editorearen barruan (EDALL teklatu, edo botoiari sakatu).
Bloke bakoitzean hau egitea gomendatzen da:
1. Adibideak probatu, aldatu eta zure esperimentuak egin.
2. Bloke bakoitzaren amaierako ariketak egin.
3. Sor dakizkizukeen zalantzak apuntatu eta:
a. Esperimentazioaren bitartez argitzen saiatu.
b. Dokumentu honen laguntzaren bitartez konpontzen saiatu.
c. Irakasleari galdetu.
Blokeak hauek dituzu:
1. DORTOKAREN KONTROLA.
2. DATU-EGITURAK.
3. FUNTZIOAK.
4. FLUXU-EGITURAK.
5. ELKARRAKZIOA.
6. MATEMATIKA.
20. 20
JARRAITU AURRETIK: NOLA ADIERAZI FITXATEGI
BATEN KOKAPENA
LOGOren agindu batzuek fitxategien kokapenen bidea eskatzen dizkigute. Bide hori
erraza da, baina jakin behar da zehatz mehatz jartzen. Hurrengo adibidean marrazki
baten disko-bidea zein den ikusiko dugu (NIRE IRUDIAK barruan, eta gero VIOLET
karpetan).
Irudiaren karpeta adierazteko hurrengokoa egin behar da:
Demagun VIOLET karpetan daukadala nire argazkia. Ikusi karpeten BIDEA goiko barran
ikus daitekela. Barra horretan klikatuz gero LOGOk behar duen formatuan jarriko da:
Hortaz, gure irudiaren izena PAISAIA.BMP baldin bada bide osoa honela adieraziko da:
C:UsersandoniPicturesvioletpaisaia.bmp
Barra okerra karaktere berezia denez bikoiztu behar dugu LOGOri adierazteko barra
normal moduan erabili nahi dugula, beraz BIDEAren azken formatua hau izango da:
C: UsersandoniPicturesvioletpaisaia.bmp
21. 21
LEHEN BLOKEA: DORTOKAREN KONTROLA
Dortoka kartesiar espazio baten mugitzen den triangelu txikia da, bere atzeƟk arrasto
bat utzita. Arrasto horren itxura (gogortasuna, kolorea, efektua eta abar) eralda
daiteke, baita dortokaren forma zein espazioƟk mugitzeko modua ere.
22. 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]
23. 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
25. 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)
26. 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)
27. 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
28. 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:windowstada.wav 1+8
;c:windowstada.wav fitxategia ireki eta barruan
29. 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]
30. 30
;oinarrizko aginduak jotzea amaitzeko
MCI [stop cdaudio]
MCI [close cdaudio]
BIDEO BAT IKUSARAZTEKO
Ikusi adibidea:
;bideo irekitzeko
IGNORE MCI [open c:windowsclock.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]
31. 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):
32. 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 abesƟ hau jo: DO DO DO SI DO RE RE RE SI DO RE SI DO SOL
5. Aurreko abesƟa 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 guneƟk irtengo den espiral bat marraztu (13. edo 14. espiralak
erabili ahal dira) LEIHO modu guzƟetan: 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.
33. 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 beƟ eramango ditu kakotxak aurreƟk.
2. Aldagai hori ERABILTZERAKOAN beƟ eramango ditu bi puntuak aurreƟk.
3. Testuek kakotxak eramango dituzte aurreƟk.
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
34. 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
35. 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 funtzioƟk 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 beƟ gordeko dute ezarritako azken
balioa, edonon aldatu bazaion ere.
36. 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]
37. 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
38. 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 .
39. 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
40. 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.
41. 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 piloƟk
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
42. 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
43. 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 zerrendaƟk aterata. Ondoren PILA batean
sartu eta jo berriz ere atzekoz aurrera.
44. 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
MatemaƟkako funtzioen modura funtzionatzen dute: y = x + 1, non eskumako x-ari
balioak eman eta ezkerreko y-Ɵk sortzen diren. Modu berean hainbat funtzio kateatu
ahal dira bata bestearen atzeƟk.
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.
45. 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 baƟ 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!
46. 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
47. 47
ERREKURTSIBITATEA
Gaitasun honen bitartez funtzio batek bere buruari deituko dio. Adibidez, zenbaki
zehatz bateƟk 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 beƟ 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
49. 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 bateƟk beste batera pasatzeko gehiketa) jasoko
ditu. Inprimatu kontsolaƟk. 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 kontsolaƟk 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 1eƟk 5erako zenbaki zerrenda
itzuliko du (erabili OUTPUT), eta bigarrenak kontsolaƟk inprimatuko du
lehenaren erantzuna.
6. KontsolaƟk 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 10eƟk 1era zenbatuko duen prozedura prestatu.
10. Errekurtsibitatea erabilita letra guzƟak inprimatuko dituen prozedura prestatu,
AƟk Zra.
50. 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
51. 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
52. 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
53. 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
54. 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 estaƟkoak).
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!
55. 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
56. 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
]
57. 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
58. 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 hasieraƟk 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:
59. 59
1) # errepikapen zenbakia da, REPEAT-aren REPCOUNT-a bezalakoa.
2) ? zerrendaren unean uneko elementua da.
3) ?REST zerrendaƟk 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. BarruƟk 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 bateƟk 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 guzƟekin.
1..10 (1..n)
Datozen adibideak sinplifikatu dira argi ikus dadin sintaxia. 1eƟk 10erako zenbakiak
inprimatuko dute, eta aldagaia beƟ izango da n.
60. 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]
]
61. 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 kontsolaƟk agerrarazi.
2. Aurreko ariketari sartu gehikuntza bat: zenbakiaz gain hau testua agerrarazi
"8ren mulƟploa da", baldintza hori betetzen bada (16, 32, 64… zenbakiekin
gertatuko da). Erabili IF edo TEST egitura. Adibidez: 1, 2, 4, 8, 16 8ren mulƟploa
da, 32 8ren mulƟploa da…
3. Prozedura baten barruan: kontsolaƟk jaso balio bat, ikusi zer motakoa den eta
kontsolaƟk 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 kontsolaƟk agertu.
5. Prozedura bat sortu, elkarrizketa hau edukiko duena (erantzuna ondo eman
arte LOGOk galdera berdina galdetzen jarraituko du):
KAIXO, NOLA DAUKAZU IZENA? (kontsolaƟk 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
62. 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 bertaƟk igarotzeko bidea izan. Ausaz marraztu. Ikusi
adibidea:
63. 63
BOSTGARREN BLOKEA: ELKARRAKZIOA
KONTSOLATIK BALIO BAT JASOTZEKO ETA
INPRIMATZEKO
Aukera hauei ezker ordenagailua eta erabiltzailearen arteko elkarrekintza bermatzen
dugu pantailaƟk balioak eskatzeko. Era horretan programak behar dituen balioak
kodean sartu beharrean kontsolaƟk 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)
64. 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 texƩoshow (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)
KontsolaƟk 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]
65. 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 hitzeƟk 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 beƟ 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 bateƟk irakurri.
c. Fitxategian idatzi.
d. Hurrengo lerro/erregistrora pasa.
e. Fitxategia itxi.
Ikusten denez guk liburu batekin egiten dugunaren antzekoa da.
66. 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
67. 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 zaƟ bat da. ZaƟ 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:UsersandoniPicturesvioletpaisaia.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
]
68. 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 zaƟak 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 arƟsƟkoak 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
69. 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.