Warning, /education/kturtle/po/lt/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.
0001 <chapter id="reference"> 0002 <title 0003 >&turtlescript; žinynas programuotojui</title> 0004 <para 0005 >Čia yra &kturtle; scenarijaus kalbos &turtlescript; žinynas. Pirmoje šio skyriaus dalyje skaitykite apie &turtlescript; programų <link linkend="grammar" 0006 >gramatiką</link 0007 >. Antroje dalyje kalba išskirtinai apie <link linkend="mathematical-operators" 0008 >matematinius veiksmus</link 0009 >, <link linkend="boolean-operators" 0010 >loginius (tiesa/melas) veiksmus</link 0011 > ir <link linkend="comparing-operators" 0012 >sulyginimo veiksmus</link 0013 >. Trečia dalis – tiesiog didžiulis <link linkend="commands" 0014 >komandų</link 0015 > ir jų paaiškinimų sąrašas. Ketvirtoje dalyje aiškinama, kaip <link linkend="assignment-of-variables" 0016 >priskirti</link 0017 > reikšmes <link linkend="assignment-of-variables" 0018 >kintamiesiems</link 0019 >. Pabaigoje – penktoje dalyje – mes paaiškiname, kaip valdyti komandų vykdymą naudojant <link linkend="controlling-execution" 0020 >vykdymo valdymo sakinius</link 0021 >, o šeštoje dalyje – kaip sukurti savo komandas <link linkend="learn" 0022 >mokantis</link 0023 >.</para> 0024 0025 <sect1 id="grammar"> 0026 <title 0027 >&turtlescript; gramatika</title> 0028 <para 0029 >Kaip ir kitos kalbos, &turtlescript; turi skirtingų tipų žodžių ir simbolių. Lietuvių kalboje mes skiriame veiksmažodžius (tokius kaip „eiti“ ar „dainuoti“) ir daiktavardžius (tokius kaip „sesuo“ ar „namas“). Jie naudojami skirtingiems tikslams. &turtlescript; yra programavimo kalba, kurios pagalba duodamos komandos vėžliukui.</para> 0030 <para 0031 >Šioje dalyje aprašomi keli skirtingi &turtlescript; žodžių tipai ir simboliai. Mes paaiškiname <link linkend="comment" 0032 >komentarus</link 0033 >, <link linkend="command" 0034 >komandas</link 0035 > ir tris skirtingas simbolių rūšis: <link linkend="number" 0036 >skaičius</link 0037 >, <link linkend="string" 0038 >eilutes</link 0039 > ir <link linkend="boolean-value" 0040 >logines (tiesa/melas) reikšmes</link 0041 >.</para> 0042 0043 0044 <sect2 id="comment"> 0045 <title 0046 >Komentarai</title> 0047 <para 0048 >Programa susideda iš komandų, kurios vykdomos paleidus programą, ir iš taip vadinamų komentarų. Komentarai nėra vykdomi, &kturtle; juos tiesiog ignoruoja. Komentarai rašomi tam, kad kiti programuotojai galėtų geriau suprasti jūsų programą. Viskas, kas rašoma po simbolio <userinput 0049 >#</userinput 0050 > yra laikoma &turtlescript; komentaru. Pavyzdžiui ši maža programa, kuri nieko nedaro: <screen> 0051 # ši programėlė nieko nedaro, tai tik komentaras! 0052 </screen 0053 > Ji yra beprasmiška, bet padeda paaiškinti esmę.</para> 0054 <para 0055 >Komentarai labai praverčia, kai programa tampa šiek tiek sudėtingesnė. Jie gali padėti kitiems programuotojams. Toliau pateikiamoje programoje matomos komandos, kurios naudojamos kartu su komanda <link linkend="print" 0056 >rašyk</link 0057 >. <screen> 0058 # šią programą sukūrė Saulė Binkytė. 0059 rašyk "šis tekstas bus parašytas ant drobės" 0060 # aukščiau esanti eilutė nėra komentaras, bet žemiau esanti – yra: 0061 # rašyk "šis tekstas nebus parašytas!" 0062 </screen 0063 > Pirma eilutė aprašo programą. Antrą eilutę &kturtle; įvykdo ir parašo <userinput 0064 >šis tekstas bus parašytas ant drobės</userinput 0065 > ant drobės. Trečia eilutė yra komentaras. Ketvirta eilutė irgi yra komentaras, kuriame yra gabaliukas &turtlescript; kodo, jei bus pašalintas simbolis <userinput 0066 >#</userinput 0067 >, &kturtle; įvykdys rašymo komandą. Programuotojai sako: rašymo sakinys ketvirtoje eilutėje yra „užkomentuotas“.</para> 0068 <para 0069 ><link linkend="the-editor" 0070 >Kodo rašyklėje</link 0071 > komentarai <glossterm 0072 >paryškinami</glossterm 0073 > šviesiai pilka spalva.</para> 0074 </sect2> 0075 0076 <sect2 id="command"> 0077 <title 0078 >Komandos</title> 0079 <para 0080 >Komandų pagalba jūs nurodote vėžliukui, ką reikia daryti. Kai kurioms komandoms reikia pateikti papildomą informaciją, kitos informaciją parodo. <screen> 0081 # „priekin“ yra komanda, kuriai reikia papildomos informacijos, šiuo atveju skaičiaus 100: 0082 priekin 100 0083 </screen 0084 > Pirma eilutė yra <link linkend="comment" 0085 >komentaras</link 0086 >. Antroje eilutėje yra komanda <userinput 0087 >priekin</userinput 0088 > ir <link linkend="number" 0089 >skaičius</link 0090 > <userinput 0091 >100</userinput 0092 >. Skaičius nėra komandos dalis, tai komandos „įvestis“.</para> 0093 <para 0094 >Kai kurioms komandoms, tokioms kaip <userinput 0095 >eiti</userinput 0096 > reikia daugiau nei vienos reikšmės. Kelios pateikiamos reikšmės turi būti atskirtos simboliu <userinput 0097 >,</userinput 0098 > (kableliu).</para> 0099 <para 0100 >Visų &kturtle; komandų detalesnį aprašymą rasite <link linkend="commands" 0101 >čia</link 0102 >. Įsiūtos komandos <glossterm 0103 >paryškintos</glossterm 0104 > tamsiai mėlyna spalva.</para> 0105 </sect2> 0106 0107 <sect2 id="number"> 0108 <title 0109 >Skaičiai</title> 0110 <para 0111 >Ko gero apie skaičius Jūs žinote nemažai. &kturtle; programoje skaičiai beveik nesiskiria nuo naudojamų Jūsų šnekamojoje kalboje arba matematikoje. </para> 0112 <para 0113 >Čia taip pat naudojami natūralieji skaičiai: <userinput 0114 >0</userinput 0115 >, <userinput 0116 >1</userinput 0117 >, <userinput 0118 >2</userinput 0119 >, <userinput 0120 >3</userinput 0121 >, <userinput 0122 >4</userinput 0123 >, <userinput 0124 >5</userinput 0125 >, ir t.t. Neigiami skaičiai: <userinput 0126 >-1</userinput 0127 >, <userinput 0128 >-2</userinput 0129 >, <userinput 0130 >-3</userinput 0131 >, ir t.t. Ir dešimtainiai skaičiai, pavyzdžiui: <userinput 0132 >0.1</userinput 0133 >, <userinput 0134 >3.14</userinput 0135 >, <userinput 0136 >33.3333</userinput 0137 >, <userinput 0138 >-5.05</userinput 0139 >, <userinput 0140 >-1.0</userinput 0141 >. Trumpeninės skaičiaus dalies atskirimui naudojamas ne kablelis, o taško simbolis (<userinput 0142 >.</userinput 0143 >). </para> 0144 <para 0145 >Skaičiai naudojami <link linkend="mathematical-operators" 0146 >matematiniuose skaičiavimuose</link 0147 > ir <link linkend="comparing-operators" 0148 >palyginimo sąlygose</link 0149 >. Be to, juos galima patalpinti į <link linkend="assignment-of-variables" 0150 >kintamuosius</link 0151 >. Skaičiai <glossterm 0152 >paryškinami</glossterm 0153 > tamsiai raudona spalva.</para> 0154 </sect2> 0155 0156 <!-- constants like pi? --> 0157 0158 <sect2 id="string"> 0159 <title 0160 >Tekstinės eilutės</title> 0161 <para 0162 >Pirma pavyzdys: <screen> 0163 rašyk "Labas, aš esu tekstinė eilutė." 0164 </screen 0165 > Šiame pavyzdyje <userinput 0166 >rašyk</userinput 0167 > yra komanda, o <userinput 0168 >"Labas, aš esu tekstinė eilutė."</userinput 0169 > tai tekstinė eilutė. Tekstinės eilutės prasideda ir baigiasi ženklu <userinput 0170 >"</userinput 0171 >, tik pagal šiuos ženklus &kturtle; supranta, kad tai tekstinė eilutė.</para> 0172 <para 0173 >Eilutes galima priskirti <link linkend="assignment-of-variables" 0174 >kintamiesiems</link 0175 >, kaip ir <link linkend="number" 0176 >skaičius</link 0177 >. Bet, priešingai nei skaičiai, eilučių negalima naudoti <link linkend="mathematical-operators" 0178 >matematiniuose veiksmuose</link 0179 > ar <link linkend="comparing-operators" 0180 >palyginimo veiksmuose</link 0181 >. Eilutės <glossterm 0182 >paryškinamos</glossterm 0183 > raudonai.</para> 0184 </sect2> 0185 0186 <sect2 id="boolean-value"> 0187 <title 0188 >Loginės (tiesa/melas) reikšmės</title> 0189 <para 0190 >Yra tik dvi loginio tipo reikšmės: <userinput 0191 >taip</userinput 0192 > ir <userinput 0193 >ne</userinput 0194 >. Kartais jos vadinamos: įjungta ir išjungta, tiesa ir melas, vienas ir nulis. Bet &turtlescript; kalboje jos visada vadinamos <userinput 0195 >taip</userinput 0196 > ir <userinput 0197 >ne</userinput 0198 >. Štai &turtlescript; kodo pavyzdys: <screen> 0199 $a = taip 0200 </screen 0201 > Jei pažiūrėsite, kas matosi <link linkend="the-inspector" 0202 >inspektoriuje</link 0203 >, pamatysite, kad <link linkend="assignment-of-variables" 0204 >kintamojo</link 0205 > <userinput 0206 >$a</userinput 0207 > reikšmė yra <userinput 0208 >taip</userinput 0209 >, o jo tipas yra loginis.</para> 0210 <para 0211 >Dažnai loginės reikšmės yra <link linkend="comparing-operators" 0212 >palyginimo veiksmų</link 0213 > rezultatai, kaip pavyzdžiui tokiame &turtlescript; kode: <screen> 0214 $atsakymas = 10 > 3 0215 </screen 0216 > <link linkend="assignment-of-variables" 0217 >Kintamojo</link 0218 > <userinput 0219 >$atsakymas</userinput 0220 > reikšmė yra <userinput 0221 >taip</userinput 0222 >, nes <userinput 0223 >10</userinput 0224 > yra daugiau už <userinput 0225 >3</userinput 0226 >.</para> 0227 <para 0228 >Loginės reikšmės, <userinput 0229 >taip</userinput 0230 > ir <userinput 0231 >ne</userinput 0232 > <glossterm 0233 >paryškinamos</glossterm 0234 > tamsiai raudona spalva.</para> 0235 </sect2> 0236 0237 </sect1> 0238 0239 0240 0241 <sect1 id="operators"> 0242 <title 0243 >Matematiniai, loginiai ir palyginimo operatoriai</title> 0244 <para 0245 >Nors šio skyriaus pavadinimas gali skambėti sudėtingai, iš tiesų jis nėra toks sudėtingas, kaip atrodo.</para> 0246 0247 <sect2 id="mathematical-operators"> 0248 <title 0249 >Matematiniai operatoriai</title> 0250 <para 0251 >Pagrindiniai matematiniai simboliai yra: sudėtis (<userinput 0252 >+</userinput 0253 >), atimtis (<userinput 0254 >-</userinput 0255 >), daugyba (<userinput 0256 >*</userinput 0257 >), dalyba (<userinput 0258 >/</userinput 0259 >) bei kėlimas laipsniu (<userinput 0260 >^</userinput 0261 >).</para> 0262 0263 <para 0264 >Štai keletas matematinių operatorių, kuriuos galima naudoti &turtlescript;, pavyzdžių: <screen> 0265 $sudėtis = 1 + 1 0266 $atimtis = 20 - 5 0267 $daugyba = 15 * 2 0268 $dalyba = 30 / 30 0269 $laipsnis = 2 ^ 2 0270 </screen 0271 > Matematinių operacijų rezultatai <link linkend="assignment-of-variables" 0272 >priskiriami</link 0273 > įvairiems <link linkend="assignment-of-variables" 0274 >kintamiesiems</link 0275 >. Jūs galite peržiūrėti reikšmes pasinaudoję <link linkend="the-inspector" 0276 >inspektoriumi</link 0277 >.</para> 0278 <para 0279 >Jei Jums prireiktų paprastų skaičiavimų, tai Jūs galite daryti tiesiog taip: <screen 0280 >rašyk 2010-12 0281 </screen 0282 ></para> 0283 <para 0284 >Dabar skliaustelių naudojimo pavyzdys: <screen> 0285 rašyk ( ( 20 - 5 ) * 2 / 30 ) + 1 0286 </screen 0287 > Pirma bus apskaičiuojamas skliaustelių viduje esantis reiškinys. Šiuo atveju, pirma bus sumuojama 20-5, po to padauginta iš 2, padalyta iš 30, ir tik tada pridėtas 1 (rezultatas bus 2). Skliaustelius galima naudoti ir kitais atvejais.</para> 0288 <para 0289 >&kturtle; turi ir sudėtingesnių matematinių savybių, tokių kaip komandos. Atkreipkite dėmesį į šias komandas, tik turėkite omenyje, kad tai sudėtingesnės operacijos: <link linkend="round" 0290 >apvalink</link 0291 >, <link linkend="random" 0292 >bet_koks</link 0293 >, <link linkend="sqrt" 0294 >šaknis</link 0295 >, <link linkend="pi" 0296 >pi</link 0297 >, <link linkend="sin" 0298 >sin</link 0299 >, <link linkend="cos" 0300 >cos</link 0301 >, <link linkend="tan" 0302 >tg</link 0303 >, <link linkend="arcsin" 0304 >arcsin</link 0305 >, <link linkend="arccos" 0306 >arccos</link 0307 >, <link linkend="arctan" 0308 >arctg</link 0309 >.</para> 0310 </sect2> 0311 0312 <sect2 id="boolean-operators"> 0313 <title 0314 >Loginiai (taip/ne) operatoriai</title> 0315 <para 0316 >Kaip <link linkend="mathematical-operators" 0317 >Matematiniai operatoriai</link 0318 > pagrinde skirti <link linkend="number" 0319 >skaičiams</link 0320 >, taip loginiai operatoriai skirti <link linkend="boolean-value" 0321 >loginėms reikšmėms</link 0322 > (<userinput 0323 >taip</userinput 0324 > ir <userinput 0325 >ne</userinput 0326 >). Yra tik trys loginiai operatoriai: <userinput 0327 >ir</userinput 0328 >, <userinput 0329 >arba</userinput 0330 > ir <userinput 0331 >ne</userinput 0332 >. Toliau pateikiamas &turtlescript; pavyzdys, rodantis, kaip galima naudoti šiuos operatorius: <screen> 0333 $ir_1_1 = taip ir taip # -> taip 0334 $ir_1_0 = taip ir ne # -> ne 0335 $ir_0_1 = ne ir taip # -> ne 0336 $ir_0_0 = ne ir ne # -> ne 0337 0338 $arba_1_1 = taip arba taip # -> taip 0339 $arba_1_0 = taip arba ne # -> taip 0340 $arba_0_1 = ne arba taip # -> taip 0341 $arba_0_0 = ne arba ne # -> ne 0342 0343 $ne_1 = ne taip # -> ne 0344 $ne_0 = ne ne # -> taip 0345 </screen 0346 > Reikšmes galite pažiūrėti naudodami <link linkend="the-inspector" 0347 >inspektorių</link 0348 >, nors mes pateikėme rezultatus kaip nedidelius komentarus eilučių pabaigose. <userinput 0349 >ir</userinput 0350 > rezultatas yra <userinput 0351 >taip</userinput 0352 > tik tada, jei abi pusės yra <userinput 0353 >taip</userinput 0354 >. <userinput 0355 >arba</userinput 0356 > rezultatas yra <userinput 0357 >taip</userinput 0358 >, jei nors viena iš pusių yra <userinput 0359 >taip</userinput 0360 >. <userinput 0361 >ne</userinput 0362 > keičia <userinput 0363 >taip</userinput 0364 > į <userinput 0365 >ne</userinput 0366 >, o <userinput 0367 >ne</userinput 0368 > į <userinput 0369 >taip</userinput 0370 >.</para> 0371 <para 0372 >Loginiai operatoriai <glossterm 0373 >paryškinami</glossterm 0374 > rožine spalva.</para> 0375 0376 <sect3 id="boolean-operators-advanced-examples"> 0377 <title 0378 >Keletas sudėtingesnių pavyzdžių</title> 0379 <para 0380 >Panagrinėkite šį pavyzdį su <userinput 0381 >ir</userinput 0382 >: <screen> 0383 $a = 1 0384 $b = 5 0385 jei (($a < 10) ir ($b == 5)) ir ($a < $b) { 0386 rašyk "labas" 0387 } 0388 </screen 0389 > Šiame &turtlescript; gabaliuke trijų <link linkend="comparing-operators" 0390 >palyginimo operatorių</link 0391 > rezultatas sujungiamas naudojant <userinput 0392 >ir</userinput 0393 > operatorius. Tai reiškia, kad visi trys turi būti „taip“, tam, kad būtų parašytas tekstas „labas“.</para> 0394 0395 <para 0396 >Pavyzdys su <userinput 0397 >arba</userinput 0398 >: <screen> 0399 $n = 1 0400 jei ($n < 10) arba ($n == 2) { 0401 rašyk "labas" 0402 } 0403 </screen 0404 > Šiame &turtlescript; kodo gabaliuke, kairės operatoriaus <userinput 0405 >arba</userinput 0406 > pusės reikšmė bus „taip“, dešinės – „ne“. Kadangi vienoje iš <userinput 0407 >arba</userinput 0408 > operatoriaus pusių yra „taip“, <userinput 0409 >arba</userinput 0410 > operatorius grąžina „taip“. Tai reiškia, kad bus parašyta „labas“.</para> 0411 0412 <para 0413 >Ir pabaigai pavyzdys su <userinput 0414 >ne</userinput 0415 >, kuris keičia „taip“ į „ne“ ir „ne“ į „taip“. Pažiūrėkite: <screen 0416 >$n = 1 0417 jei ne ($n == 3) { 0418 rašyk "labas" 0419 } antraip { 0420 rašyk "ne labas ;-)" 0421 } 0422 </screen 0423 ></para> 0424 </sect3> 0425 </sect2> 0426 0427 <sect2 id="comparing-operators"> 0428 <title 0429 >Palyginimo operatoriai</title> 0430 <para 0431 >Panagrinėkime paprastą palyginimą: <screen> 0432 $atsakymas = 10 > 3 0433 </screen 0434 > Čia <userinput 0435 >10</userinput 0436 > lyginamas su <userinput 0437 >3</userinput 0438 > naudojant operatorių „didesnis už“. Šio palyginimo rezultatas – <link linkend="boolean-value" 0439 >loginė reikšmė</link 0440 > <userinput 0441 >taip</userinput 0442 > – įrašoma į <link linkend="assignment-of-variables" 0443 >kintamąjį</link 0444 > <userinput 0445 >$atsakymas</userinput 0446 >.</para> 0447 <para 0448 >Visi <link linkend="number" 0449 >skaičiai</link 0450 > ir <link linkend="assignment-of-variables" 0451 >kintamieji</link 0452 > (į kuriuos įrašyti skaičiai) gali būti lyginami tarpusavyje naudojant palyginimo operatorius.</para> 0453 <para 0454 >Čia pateikiami visi įmanomi palyginimo operatoriai: <table 0455 > <title 0456 >Klausimų tipai</title 0457 > <tgroup cols="3" 0458 > <tbody 0459 > <row 0460 > <entry 0461 ><userinput 0462 >$A == $B</userinput 0463 ></entry 0464 > <entry 0465 >lygu</entry 0466 > <entry 0467 >atsakymas yra <quote 0468 >taip</quote 0469 >, jei <userinput 0470 >$A</userinput 0471 > lygu <userinput 0472 >$B</userinput 0473 ></entry 0474 > </row 0475 > <row 0476 > <entry 0477 ><userinput 0478 >$A != $B</userinput 0479 ></entry 0480 > <entry 0481 >nelygu</entry 0482 > <entry 0483 >atsakymas yra <quote 0484 >taip</quote 0485 >, jei <userinput 0486 >$A</userinput 0487 > nėra lygu <userinput 0488 >$B</userinput 0489 ></entry 0490 > </row 0491 > <row 0492 > <entry 0493 ><userinput 0494 >$A > $B</userinput 0495 ></entry 0496 > <entry 0497 >daugiau už</entry 0498 > <entry 0499 >atsakymas yra <quote 0500 >taip</quote 0501 >, jei <userinput 0502 >$A</userinput 0503 > yra didesnis už <userinput 0504 >$B</userinput 0505 ></entry 0506 > </row 0507 > <row 0508 > <entry 0509 ><userinput 0510 >$A < $B</userinput 0511 ></entry 0512 > <entry 0513 >mažiau už</entry 0514 > <entry 0515 >atsakymas yra <quote 0516 >taip</quote 0517 >, jei <userinput 0518 >$A</userinput 0519 > yra mažiau už <userinput 0520 >$B</userinput 0521 ></entry 0522 > </row 0523 > <row 0524 > <entry 0525 ><userinput 0526 >$A >= $B</userinput 0527 ></entry 0528 > <entry 0529 >daugiau už arba lygu</entry 0530 > <entry 0531 >atsakymas yra <quote 0532 >taip</quote 0533 >, jei <userinput 0534 >$A</userinput 0535 > yra daugiau už arba lygu <userinput 0536 >$B</userinput 0537 ></entry 0538 > </row 0539 > <row 0540 > <entry 0541 ><userinput 0542 >$A <= $B</userinput 0543 ></entry 0544 > <entry 0545 >mažiau už arba lygu</entry 0546 > <entry 0547 >atsakymas yra <quote 0548 >taip</quote 0549 >, jei <userinput 0550 >$A</userinput 0551 > yra mažiau už arba lygu <userinput 0552 >$B</userinput 0553 ></entry 0554 > </row 0555 > </tbody 0556 > </tgroup 0557 > </table 0558 > Atkreipkite dėmesį, kad $A ir $B turi būti <link linkend="number" 0559 >skaičiai</link 0560 > arba <link linkend="assignment-of-variables" 0561 >kintamieji</link 0562 >, į kuriuos įrašyti skaičiai.</para> 0563 </sect2> 0564 0565 0566 </sect1> 0567 0568 0569 0570 <sect1 id="commands"> 0571 <title 0572 >Komandos</title> 0573 <para 0574 >Komandomis vėžliukas arba &kturtle; liepiamas atlikti kokius nors veiksmus. Kai kurioms komandoms reikia pateikti argumentus, kai kurios grąžina rezultatą. Šioje skiltyje aprašomos visos &kturtle; naudojamos komandos. Naudodami <link linkend="learn" 0575 >mokymą</link 0576 > galite sukurti savo komandas. Visos čia aprašomos vidinės komandos <glossterm 0577 >paryškinamos</glossterm 0578 > tamsiai mėlyna spalva.</para> 0579 0580 <sect2 id="moving-the-turtle"> 0581 <title 0582 >Vėžliuko stumdymas</title> 0583 <para 0584 >Vėžliuką stumdyti drobėje galima keliomis komandomis.</para> 0585 0586 <variablelist> 0587 <anchor id="forward"/> 0588 <varlistentry 0589 > 0590 <term 0591 >priekin (pr)<indexterm 0592 ><primary 0593 >priekin (pr)</primary 0594 ></indexterm 0595 ></term> 0596 <listitem 0597 ><para 0598 ><screen 0599 >priekin X</screen> 0600 Komanda <userinput 0601 >priekin</userinput 0602 > vėžliukas pastumiamas X pikselių į priekį. Jei pieštukas nuleistas, tai vėžliukas paliks pėdsaką. Vietoje komandos <userinput 0603 >priekin</userinput 0604 > galima naudoti jos santrumpą <userinput 0605 >pr</userinput 0606 >.</para 0607 ></listitem> 0608 </varlistentry> 0609 </variablelist> 0610 <variablelist> 0611 <anchor id="backward"/> 0612 <varlistentry 0613 > 0614 <term 0615 >atgal (at)<indexterm 0616 ><primary 0617 >atgal (at)</primary 0618 ></indexterm 0619 ></term> 0620 <listitem 0621 ><para 0622 ><screen 0623 >atgal X</screen> 0624 Komanda <userinput 0625 >atgal</userinput 0626 > vėžliukas pastumiamas X pikselių atgalios. Jei pieštukas nuleistas, tai vėžliukas paliks pėdsaką. Vietoje komandos <userinput 0627 >atgal</userinput 0628 > galima naudoti jos santrumpą <userinput 0629 >at</userinput 0630 >.</para 0631 ></listitem> 0632 </varlistentry> 0633 </variablelist> 0634 <variablelist> 0635 <anchor id="turnleft"/> 0636 <varlistentry 0637 > 0638 <term 0639 >kairėn (kr)<indexterm 0640 ><primary 0641 >kairėn (kr)</primary 0642 ></indexterm 0643 ></term> 0644 <listitem 0645 ><para 0646 ><screen 0647 >kairėn X</screen> 0648 Komanda <userinput 0649 >kairėn</userinput 0650 > vėžliukas pasukamas X laipsnių į kairę pusę. Vietoje komandos <userinput 0651 >kairėn</userinput 0652 > galima naudoti jos santrumpą <userinput 0653 >kr</userinput 0654 >.</para 0655 ></listitem> 0656 </varlistentry> 0657 </variablelist> 0658 <variablelist> 0659 <anchor id="turnright"/> 0660 <varlistentry 0661 > 0662 <term 0663 >dešinėn (dš)<indexterm 0664 ><primary 0665 >dešinėn (dš)</primary 0666 ></indexterm 0667 ></term> 0668 <listitem 0669 ><para 0670 ><screen 0671 >dešinėn X</screen> 0672 Komanda <userinput 0673 >dešinėn</userinput 0674 > vėžliukas pasukamas X laipsnių į dešinę pusę. Vietoje komandos <userinput 0675 >dešinėn</userinput 0676 > galima naudoti jos santrumpą <userinput 0677 >dš</userinput 0678 >.</para 0679 ></listitem> 0680 </varlistentry> 0681 </variablelist> 0682 <variablelist> 0683 <anchor id="direction"/> 0684 <varlistentry 0685 > 0686 <term 0687 >žvelk (žv)<indexterm 0688 ><primary 0689 >žvelk (žv)</primary 0690 ></indexterm 0691 ></term> 0692 <listitem 0693 ><para 0694 ><screen 0695 >žvelk X</screen> 0696 Komanda <userinput 0697 >žvelk</userinput 0698 > vėžliukas pasukamas X laipsnių kryptimi. Šiuo atveju nėra paisoma prieš tai buvusios vėžliuko krypties, nes kampas atidedamas nuo nulio laipsnių. Vietoje komandos <userinput 0699 >žvelk</userinput 0700 > galima naudoti jos santrumpą <userinput 0701 >žv</userinput 0702 >.</para 0703 ></listitem> 0704 </varlistentry> 0705 </variablelist> 0706 <variablelist> 0707 <anchor id="getdirection"/> 0708 <varlistentry 0709 > 0710 <term 0711 >gauk_kryptį<indexterm 0712 ><primary 0713 >gauk_kryptį</primary 0714 ></indexterm 0715 ></term> 0716 <listitem 0717 ><para 0718 ><screen 0719 >gauk_kryptį</screen> 0720 Komanda <userinput 0721 >gauk_kryptį</userinput 0722 > grąžina vėžliuko kryptį, kaip laipsnių skaičių pradedant nuo nulio. Nulis – tai kryptis, kai vėžliukas žiūri aukštyn.</para 0723 ></listitem> 0724 </varlistentry> 0725 </variablelist> 0726 <variablelist> 0727 <anchor id="center"/> 0728 <varlistentry 0729 > 0730 <term 0731 >namo<indexterm 0732 ><primary 0733 >namo</primary 0734 ></indexterm 0735 ></term> 0736 <listitem 0737 ><para 0738 ><screen 0739 >namo</screen> 0740 Komanda <userinput 0741 >namo</userinput 0742 > vėžliukas perkeliamas į drobės centrą.</para 0743 ></listitem> 0744 </varlistentry> 0745 </variablelist> 0746 <variablelist> 0747 <anchor id="go"/> 0748 <varlistentry 0749 > 0750 <term 0751 >eik_x_y<indexterm 0752 ><primary 0753 >eik_x_y</primary 0754 ></indexterm 0755 ></term> 0756 <listitem 0757 ><para 0758 ><screen 0759 >eik_x_y X,Y</screen> 0760 Komanda <userinput 0761 >eik_x_y</userinput 0762 > vėžliukas perkeliamas į nurodytą drobės vietą. Vietos koordinatės nurodomos <glossterm linkend="pixels" 0763 >pikseliais</glossterm 0764 >: skaičius X tai atstumas iki kairiojo drobės krašto, skaičius Y — iki viršutiniojo drobės krašto.</para 0765 ></listitem> 0766 </varlistentry> 0767 </variablelist> 0768 <variablelist> 0769 <anchor id="gox"/> 0770 <varlistentry 0771 > 0772 <term 0773 >eik_x<indexterm 0774 ><primary 0775 >eik_x</primary 0776 ></indexterm 0777 ></term> 0778 <listitem 0779 ><para 0780 ><screen 0781 >eik_x X</screen> 0782 Komanda <userinput 0783 >eik_x</userinput 0784 > vėžliukas horizontaliai perkeliamas į tašką, kuris nuo drobės kairiojo krašto yra nutolęs X <glossterm linkend="pixels" 0785 >pikselių</glossterm 0786 >.</para 0787 ></listitem> 0788 </varlistentry> 0789 </variablelist> 0790 <variablelist> 0791 <anchor id="goy"/> 0792 <varlistentry 0793 > 0794 <term 0795 >eik_y<indexterm 0796 ><primary 0797 >eik_y</primary 0798 ></indexterm 0799 ></term> 0800 <listitem 0801 ><para 0802 ><screen 0803 >eik_y Y</screen> 0804 Komanda <userinput 0805 >eik_y</userinput 0806 > vėžliukas vertikaliai perkeliamas į tašką, kuris nuo drobės viršutiniojo krašto yra nutolęs Y <glossterm linkend="pixels" 0807 >pikselių</glossterm 0808 >.</para 0809 ></listitem> 0810 </varlistentry> 0811 </variablelist> 0812 <note 0813 ><para 0814 >Jei vėžliukas judinamas komandomis <userinput 0815 >eik_x_y</userinput 0816 >, <userinput 0817 >eik_x</userinput 0818 >, <userinput 0819 >eik_y</userinput 0820 > arba <userinput 0821 >namo</userinput 0822 >, tai jis judėdamas pėdsako nepalieka, nežiūrint į tai ar pieštukas yra nuleistas ar atitrauktas.</para> 0823 </note> 0824 </sect2> 0825 0826 <sect2 id="locate-the-turtle"> 0827 <title 0828 >Kur vėžliukas?</title> 0829 <para 0830 >Yra dvi komandos, kurios grąžina drobėje esančio vėžliuko koordinates.</para> 0831 0832 <variablelist> 0833 <anchor id="getx"/> 0834 <varlistentry 0835 > 0836 <term 0837 >koks_x<indexterm 0838 ><primary 0839 >koks_x</primary 0840 ></indexterm 0841 ></term> 0842 <listitem 0843 ><para 0844 >Komanda <userinput 0845 >koks_x</userinput 0846 > grąžina dabartinę vėžliuko X koordinatę pikseliais, t.y. jo atstumą iki drobės kairiojo krašto.</para 0847 ></listitem> 0848 </varlistentry> 0849 </variablelist> 0850 <variablelist> 0851 <anchor id="gety"/> 0852 <varlistentry 0853 > 0854 <term 0855 >koks_y<indexterm 0856 ><primary 0857 >koks_y</primary 0858 ></indexterm 0859 ></term> 0860 <listitem 0861 ><para 0862 >Komanda <userinput 0863 >koks_y</userinput 0864 > grąžina dabartinę vėžliuko Y koordinatę pikseliais, t.y. jo atstumą iki drobės viršutiniojo krašto.</para 0865 ></listitem> 0866 </varlistentry> 0867 </variablelist> 0868 </sect2> 0869 0870 <sect2 id="pen"> 0871 <title 0872 >Vėžliukas turi pieštuką</title> 0873 <para 0874 >Vėžliukas turi pieštuką, juo judėdamas vėžliukas piešia. Pieštuką valdyti galima keliomis komandomis. Apie jas sužinosite šiame skyriuje.</para> 0875 <variablelist> 0876 <anchor id="penup"/> 0877 <varlistentry 0878 > 0879 <term 0880 >eisim (es)<indexterm 0881 ><primary 0882 >eisim (es)</primary 0883 ></indexterm 0884 ></term> 0885 <listitem 0886 ><para 0887 ><screen 0888 >eisim</screen> 0889 Komanda <userinput 0890 >eisim</userinput 0891 > nuo drobės atitraukiamas pieštukas (t.p. žvilgtelėkite į komandą <userinput 0892 >piešim</userinput 0893 >). Kai pieštukas būna <quote 0894 >atitrauktas</quote 0895 >, tada judėdamas vėžliukas linijos nebrėžia. Vietoje komandos <userinput 0896 >eisim</userinput 0897 > galima naudoti jos santrumpą <userinput 0898 >es</userinput 0899 >. </para 0900 ></listitem> 0901 </varlistentry> 0902 </variablelist> 0903 <variablelist> 0904 <anchor id="pendown"/> 0905 <varlistentry 0906 > 0907 <term 0908 >piešim (pš)<indexterm 0909 ><primary 0910 >piešim (pš)</primary 0911 ></indexterm 0912 ></term> 0913 <listitem 0914 ><para 0915 ><screen 0916 >piešim</screen> 0917 Komanda <userinput 0918 >piešim</userinput 0919 > ant drobės nuleidžiamas pieštukas (t.p. žvilgtelėkite į komandą <userinput 0920 >eisim</userinput 0921 >). Kai pieštukas būna <quote 0922 >nuleistas</quote 0923 >, tada judėdamas vėžliukas brėžia linijos. Vietoje komandos <userinput 0924 >piešim</userinput 0925 > galima naudoti jos santrumpą <userinput 0926 >pš</userinput 0927 >. </para 0928 ></listitem> 0929 </varlistentry> 0930 </variablelist> 0931 <variablelist> 0932 <anchor id="setpenwidth"/> 0933 <varlistentry 0934 > 0935 <term 0936 >pieštuko_storis (ps)<indexterm 0937 ><primary 0938 >pieštuko_storis (ps)</primary 0939 ></indexterm 0940 ></term> 0941 <listitem 0942 ><para 0943 ><screen 0944 >pieštuko_storis X</screen> 0945 Komanda <userinput 0946 >pieštuko_storis</userinput 0947 > nustatomas X <glossterm linkend="pixels" 0948 >pikselių</glossterm 0949 > storio pieštukas, t.y. brėžiamų linijų storis. Vietoje komandos <userinput 0950 >pieštuko_storis</userinput 0951 > galima naudoti jos santrumpą <userinput 0952 >ps</userinput 0953 >.</para 0954 ></listitem> 0955 </varlistentry> 0956 </variablelist> 0957 <variablelist> 0958 <anchor id="setfgcolor"/> 0959 <varlistentry 0960 > 0961 <term 0962 >pieštuko_spalva (psp)<indexterm 0963 ><primary 0964 >pieštuko_spalva (psp)</primary 0965 ></indexterm 0966 ></term> 0967 <listitem 0968 ><para 0969 ><screen 0970 >pieštuko_spalva R,Ž,M</screen> 0971 Komanda <userinput 0972 >pieštuko_spalva</userinput 0973 > nustatoma pieštuko spalvas. Šios komandos parametras tai <glossterm linkend="rgb" 0974 >RŽM kombinacija</glossterm 0975 > nusakanti pieštuko spalvą. Vietoje komandos <userinput 0976 >pieštuko_spalva</userinput 0977 > galima naudoti jos santrumpą <userinput 0978 >psp</userinput 0979 >.</para 0980 ></listitem> 0981 </varlistentry> 0982 </variablelist> 0983 </sect2> 0984 0985 <sect2 id="canvas"> 0986 <title 0987 >Drobės valdymo komandos</title> 0988 <para 0989 >Drobę galima valdyti keliomis komandomis.</para> 0990 <variablelist> 0991 <anchor id="resizecanvas"/> 0992 <varlistentry> 0993 <term 0994 >nustatyk_lauko_dydį (nld)<indexterm 0995 ><primary 0996 >nustatyk_lauko_dydį (nld)</primary 0997 ></indexterm 0998 ></term> 0999 <listitem 1000 ><para 1001 ><screen 1002 >nustatyk_lauko_dydį X,Y</screen> 1003 Komanda <userinput 1004 >nustatyk_lauko_dydį</userinput 1005 > keičiamas drobės dydis. Šiai komandai reikia nurodyti du parametrus: drobės plotį X <glossterm linkend="pixels" 1006 >pikseliais</glossterm 1007 >, ir drobės aukštį Y <glossterm linkend="pixels" 1008 >pikseliais</glossterm 1009 >. Vietoje komandos <userinput 1010 >nustatyk_lauko_dydį</userinput 1011 > galima naudoti jos santrumpą <userinput 1012 >nld</userinput 1013 >.</para 1014 ></listitem> 1015 </varlistentry> 1016 </variablelist> 1017 <variablelist> 1018 <anchor id="setbgcolor"/> 1019 <varlistentry 1020 > 1021 <term 1022 >keisk_foną (kf)<indexterm 1023 ><primary 1024 >keisk_foną (kf)</primary 1025 ></indexterm 1026 ></term> 1027 <listitem 1028 ><para 1029 ><screen 1030 >keisk_foną R,Ž,M</screen> 1031 Komanda <userinput 1032 >keisk_foną</userinput 1033 > keičiama drobės spalva. Šiai komandai, kai parametrą, reikia nurodyti <glossterm linkend="rgb" 1034 >RŽM kombinaciją</glossterm 1035 >. Vietoje komandos <userinput 1036 >keisk_foną</userinput 1037 > galima naudoti jos santrumpą <userinput 1038 >kf</userinput 1039 >.</para 1040 ></listitem> 1041 </varlistentry> 1042 </variablelist> 1043 </sect2> 1044 1045 <sect2 id="clean"> 1046 <title 1047 >Valymo komandos</title> 1048 <para 1049 >Drobėje nubraižytą piešinį ištrinti gali dvi komandos.</para> 1050 <variablelist> 1051 <anchor id="clear"/> 1052 <varlistentry 1053 > 1054 <term 1055 >valyk (vvl)<indexterm 1056 ><primary 1057 >valyk (vvl)</primary 1058 ></indexterm 1059 ></term> 1060 <listitem 1061 ><para 1062 ><screen 1063 >valyk</screen> 1064 Komanda <userinput 1065 >valyk</userinput 1066 > ištrinami drobėje nupiešti piešiniai. Įvykdžius šią komandą, vėžliuko vieta ir kryptis, jo matomumas, drobės spalva ir dydis lieka nepakitę.</para 1067 ></listitem> 1068 </varlistentry> 1069 </variablelist> 1070 <variablelist> 1071 <anchor id="reset"/> 1072 <varlistentry 1073 > 1074 <term 1075 >pradžių_pradžia<indexterm 1076 ><primary 1077 >pradžių_pradžia</primary 1078 ></indexterm 1079 ></term> 1080 <listitem 1081 ><para 1082 ><screen 1083 >pradžių_pradžia</screen> 1084 Komanda <userinput 1085 >pradžių_pradžia</userinput 1086 > „valo“ daug daugiau nei komanda <userinput 1087 >valyk</userinput 1088 >. Įvykdžius komandą <userinput 1089 >pradžių_pradžia</userinput 1090 > viskas nustatoma tokią būseną, lyg &kturtle; būtų ką tik startavęs: vėžliukas perkeliamas į drobės vidurį, drobės spalva pakeičiama į baltą, nustatoma juoda pieštuko spalva, nustatoma 400×400 pikselių dydžio drobė.</para 1091 ></listitem> 1092 </varlistentry> 1093 </variablelist> 1094 </sect2> 1095 1096 <sect2 id="sprites"> 1097 <title 1098 >Vėžliukas tai spruklys</title> 1099 <para 1100 >Pirma, kas tas spruklys: spruklys tai mažas, ekrane slankiojantis paveikslėlis, toks, kokius galima dažnai aptikti dvimačiuose žaidimuose. Vėžliukas taip pat yra spruklys. Jei norite sužinoti daugiau, tai skaitykite termino <glossterm linkend="sprites" 1101 >spruklys</glossterm 1102 > išsamesnį paaiškinimą. </para> 1103 <para 1104 >Toliau aprašomos visos komandos, kurios valdo spruklius.</para> 1105 <para 1106 >[Šioje &kturtle; laidoje kol kas dar neįmanoma vėžliuko spruklį pakeisti kitu. Tai bus galima daryti tik ateinančių laidų &kturtle; programose]</para> 1107 <variablelist> 1108 <anchor id="spriteshow"/> 1109 <varlistentry 1110 > 1111 <term 1112 >rodykis (rd)<indexterm 1113 ><primary 1114 >rodykis (rd)</primary 1115 ></indexterm 1116 ></term> 1117 <listitem 1118 ><para 1119 ><screen 1120 >rodykis</screen> 1121 Paslėptas vėžliukas vėl parodomas komanda <userinput 1122 >rodykis</userinput 1123 >. Vietoje komandos <userinput 1124 >rodykis</userinput 1125 > galima naudoti jos santrumpą <userinput 1126 >rd</userinput 1127 >.</para 1128 ></listitem> 1129 </varlistentry> 1130 </variablelist> 1131 <variablelist> 1132 <anchor id="spritehide"/> 1133 <varlistentry 1134 > 1135 <term 1136 >slėpkis (sl)<indexterm 1137 ><primary 1138 >slėpkis (sl)</primary 1139 ></indexterm 1140 ></term> 1141 <listitem 1142 ><para 1143 ><screen 1144 >slėpkis</screen> 1145 Vėžliukas paslepiamas įvykdžius komandą <userinput 1146 >slėpkis</userinput 1147 >. Tai paranku, kai, tarkim, vėžliuko <glossterm linkend="sprites" 1148 >spruklys</glossterm 1149 > nebetelpa drobėje. Vietoje komandos <userinput 1150 >slėpkis</userinput 1151 > galima naudoti jos santrumpą <userinput 1152 >sl</userinput 1153 >.</para 1154 ></listitem> 1155 </varlistentry> 1156 </variablelist> 1157 </sect2> 1158 1159 <sect2 id="writing"> 1160 <title 1161 >Ar vėžliukas moka rašyti?</title> 1162 <para 1163 >Atsakymas: <quote 1164 >taip</quote 1165 >. Vėžliukas moka rašyti — jis parašys viską ką jam liepsite.</para> 1166 <variablelist> 1167 <anchor id="print"/> 1168 <varlistentry 1169 > 1170 <term 1171 >rašyk<indexterm 1172 ><primary 1173 >rašyk</primary 1174 ></indexterm 1175 ></term> 1176 <listitem 1177 ><para 1178 ><screen 1179 >rašyk X</screen> 1180 Komanda <userinput 1181 >rašyk</userinput 1182 > vėžliukui liepiama drobėje parašyti nurodytą tekstą. Komandai <userinput 1183 >rašyk</userinput 1184 > kaip parametrą galima nurodyti skaičių arba tekstinę eilutę. Jei prireiktų vienu metu parašyti skaičius ir tekstą, juos galima apjungti ženklu <quote 1185 >+</quote 1186 >. Žvilgtelėkite į pavyzdį: <screen 1187 >$metai = 2003 1188 $autorius = "Cies" 1189 rašyk $metai + " metais " + $autorius + " pradėjo kurti KTurtle, ir vis dar mielu noru jį tobulina!" 1190 </screen> 1191 </para 1192 ></listitem> 1193 </varlistentry> 1194 </variablelist> 1195 <variablelist> 1196 <anchor id="fontsize"/> 1197 <varlistentry 1198 > 1199 <term 1200 >teksto_dydis<indexterm 1201 ><primary 1202 >teksto_dydis</primary 1203 ></indexterm 1204 ></term> 1205 <listitem 1206 ><para 1207 ><screen 1208 >teksto_dydis X</screen> 1209 Komanda <userinput 1210 >teksto_dydis</userinput 1211 > nustatomas teksto, kuris rašomas drobėje naudojant komandą <userinput 1212 >rašyk</userinput 1213 >, šrifto dydis. Komandos <userinput 1214 >teksto_dydis</userinput 1215 > parametras tai būsimo teksto aukštis <glossterm linkend="pixels" 1216 >pikseliais</glossterm 1217 >.</para 1218 ></listitem> 1219 </varlistentry> 1220 </variablelist> 1221 </sect2> 1222 1223 <sect2 id="math-commands"> 1224 <title 1225 >Matematinės komandos</title> 1226 <para 1227 >Šios komandos yra kiek sudėtingesnės &kturtle; matematinės komandos.</para> 1228 <variablelist> 1229 <anchor id="round"/> 1230 <varlistentry> 1231 <term 1232 >apvalink<indexterm 1233 ><primary 1234 >apvalink</primary 1235 ></indexterm 1236 ></term> 1237 <listitem 1238 ><para 1239 ><screen 1240 >apvalink(x)</screen> 1241 Komanda <userinput 1242 >apvalink</userinput 1243 > skaičių apvalina iki jo sveikosios dalies. <screen> 1244 rašyk apvalink(10.8) 1245 pirmyn 20 1246 rašyk apvalink(10.3) 1247 </screen 1248 > Paleidus šį kodą, drobėje bus parašyti skaičiai 11 ir 10.</para 1249 ></listitem> 1250 </varlistentry> 1251 </variablelist> 1252 <variablelist> 1253 <anchor id="random"/> 1254 <varlistentry 1255 > 1256 <term 1257 >bet_koks (bk)<indexterm 1258 ><primary 1259 >bet_koks (bk)</primary 1260 ></indexterm 1261 ></term> 1262 <listitem 1263 ><para 1264 ><screen 1265 >bet_koks X,Y</screen> 1266 Komanda <userinput 1267 >random</userinput 1268 > reikalauja parametrų ir grąžina rezultatą. Kaip parametrus reikia nurodyti du skaičius: pirmasis (X) nurodo rezultato minimumą, o antrasis (Y) — maksimumą. Komanda grąžins atsitiktinį skaičių, kuris gali būti ne mažesnis nei minimumas ir ne didesnis nei maksimumas. Štai pavyzdys: <screen> 1269 kartok 500 { 1270 $x = bet_koks 1,20 1271 priekin $x 1272 kairėn 10 - $x 1273 } 1274 </screen 1275 > Programa, kurioje naudosite komandą <userinput 1276 >bet_koks</userinput 1277 >, Jūs galite sukelti šiokį tokį chaosą.</para 1278 ></listitem> 1279 </varlistentry> 1280 </variablelist> 1281 <variablelist> 1282 <anchor id="mod"/> 1283 <varlistentry 1284 > 1285 <term 1286 >mod<indexterm 1287 ><primary 1288 >mod</primary 1289 ></indexterm 1290 ></term> 1291 <listitem 1292 ><para 1293 ><screen 1294 >mod X,Y</screen> 1295 Komanda <userinput 1296 >mod</userinput 1297 > grąžina pirmo skaičiaus dalinimo iš antrojo liekaną.</para 1298 ></listitem> 1299 </varlistentry> 1300 </variablelist> 1301 <variablelist> 1302 <anchor id="sqrt"/> 1303 <varlistentry 1304 > 1305 <term 1306 >šaknis<indexterm 1307 ><primary 1308 >šaknis</primary 1309 ></indexterm 1310 ></term> 1311 <listitem 1312 ><para 1313 ><screen 1314 >šaknis X</screen> 1315 Komanda <userinput 1316 >šaknis</userinput 1317 > naudojama skaičiaus X kvadratinei šakniai suskaičiuoti.</para 1318 ></listitem> 1319 </varlistentry> 1320 </variablelist> 1321 <!-- 1322 <variablelist> 1323 <anchor id="exp"/> 1324 <varlistentry 1325 > 1326 <term 1327 >exp<indexterm 1328 ><primary 1329 >exp</primary 1330 ></indexterm 1331 ></term> 1332 <listitem 1333 ><para 1334 ><screen 1335 >sqrt X</screen> 1336 </para 1337 ></listitem> 1338 </varlistentry> 1339 </variablelist> 1340 --> 1341 <variablelist> 1342 <anchor id="pi"/> 1343 <varlistentry 1344 > 1345 <term 1346 >pi<indexterm 1347 ><primary 1348 >pi</primary 1349 ></indexterm 1350 ></term> 1351 <listitem 1352 ><para 1353 ><screen 1354 >pi</screen> 1355 Ši komanda grąžina Pi konstantą – <userinput 1356 >3.14159</userinput 1357 >.</para 1358 ></listitem> 1359 </varlistentry> 1360 </variablelist> 1361 <variablelist> 1362 <anchor id="sin"/> 1363 <anchor id="cos"/> 1364 <anchor id="tan"/> 1365 <varlistentry> 1366 <term 1367 >sin<indexterm 1368 ><primary 1369 >sin</primary 1370 ></indexterm 1371 >, cos<indexterm 1372 ><primary 1373 >cos</primary 1374 ></indexterm 1375 >, tg<indexterm 1376 ><primary 1377 >tg</primary 1378 ></indexterm 1379 ></term> 1380 <listitem 1381 ><para> 1382 <screen 1383 >sin X 1384 cos X 1385 tg X 1386 </screen> 1387 Šios komandos – tai visame pasaulyje įžymiosios trigonometrinės funkcijos <userinput 1388 >sin</userinput 1389 >, <userinput 1390 >cos</userinput 1391 > ir <userinput 1392 >tg</userinput 1393 >. Šių komandų argumentas X yra <link linkend="number" 1394 >skaičius</link 1395 >.</para 1396 ></listitem> 1397 </varlistentry> 1398 </variablelist> 1399 <variablelist> 1400 <anchor id="arcsin"/> 1401 <anchor id="arccos"/> 1402 <anchor id="arctan"/> 1403 <varlistentry> 1404 <term 1405 >arcsin<indexterm 1406 ><primary 1407 >arcsin</primary 1408 ></indexterm 1409 >, arccos<indexterm 1410 ><primary 1411 >arccos</primary 1412 ></indexterm 1413 >, arctg<indexterm 1414 ><primary 1415 >arctg</primary 1416 ></indexterm 1417 ></term> 1418 <listitem 1419 ><para> 1420 <screen 1421 >arcsin X 1422 arccos X 1423 arctg X 1424 </screen> 1425 Šios komandos yra atvirkštinės anksčiau aprašytoms <link linkend="sin" 1426 >sin</link 1427 >, <link linkend="cos" 1428 >cos</link 1429 > ir <link linkend="tan" 1430 >tg</link 1431 >. Komandos argumentas X yra <link linkend="number" 1432 >skaičius</link 1433 >.</para 1434 ></listitem> 1435 </varlistentry> 1436 </variablelist> 1437 </sect2> 1438 1439 <sect2 id="dialogs"> 1440 <title 1441 >Užklausa ir atsakas naudojant dialogus</title> 1442 <para 1443 >Dialogas tai mažas iššokantis langelis, duodantis kokį nors atsaką programos naudotojui arba prašantis naudotojo įvesti duomenis. &kturtle; programoje yra dvi dialogų komandos: <userinput 1444 >pranešimas</userinput 1445 > ir <userinput 1446 >klausk</userinput 1447 >.</para> 1448 <variablelist> 1449 <anchor id="message"/> 1450 <varlistentry 1451 > 1452 <term 1453 >pranešimas<indexterm 1454 ><primary 1455 >pranešimas</primary 1456 ></indexterm 1457 ></term> 1458 <listitem 1459 ><para 1460 ><screen 1461 >pranešimas X</screen> 1462 Komandai <userinput 1463 >pranešimas</userinput 1464 > reikia nurodyti parametrą — <link linkend="string" 1465 >tekstinę eilutę</link 1466 >. Šis tekstas bus rodomas komandos atvertame lange. <screen 1467 >pranešimas "2003 metais Cies pradėjo kurti KTurtle, ir vis dar mielu noru jį tobulina!" 1468 </screen> 1469 </para 1470 ></listitem> 1471 </varlistentry> 1472 </variablelist> 1473 <variablelist> 1474 <anchor id="ask"/> 1475 <varlistentry 1476 > 1477 <term 1478 >klausk<indexterm 1479 ><primary 1480 >klausk</primary 1481 ></indexterm 1482 ></term> 1483 <listitem 1484 ><para 1485 ><screen 1486 >klausk X</screen> 1487 Komandai <userinput 1488 >klausk</userinput 1489 > reikia nurodyti parametrą — <link linkend="string" 1490 >tekstinę eilutę</link 1491 >. Ši komanda, panašiai kaip ir komanda <link linkend="message" 1492 >pranešimas</link 1493 >, atvers langą su nurodytu tekstu. Be to, atvertame lange bus dar ir įvesties laukelis, į kurį naudotojas galės įvesti <link linkend="number" 1494 >skaičių</link 1495 > arba <link linkend="string" 1496 >tekstinę eilutę</link 1497 >. Naudotojui uždarius langą, įvestieji duomenys bus patalpinti <link linkend="assignment-of-variables" 1498 >kintamajame</link 1499 > arba perduoti kaip argumentas <link linkend="commands" 1500 >komandai</link 1501 >. Pavyzdžiui <screen> 1502 $gauta = klausk "Kada tu gimei?" 1503 $metai = 2011 - $gauta 1504 rašyk "2011-taisiais tau buvo " + $metai + " metų." 1505 </screen 1506 > Jei naudotojas atšauks dialogą, arba jį užvers nieko neįvedęs, tai <link linkend="assignment-of-variables" 1507 >kintamasis</link 1508 > bus ištuštintas.</para 1509 ></listitem> 1510 </varlistentry> 1511 </variablelist> 1512 </sect2> 1513 1514 </sect1> 1515 1516 1517 1518 <sect1 id="assignment-of-variables"> 1519 <title 1520 >Kintamųjų reikšmių priskyrimas</title> 1521 <para 1522 >Pirma pakalbėkime apie kintamuosius, o tada – apie reikšmių jiems priskyrimą. </para> 1523 1524 <para 1525 >Kintamieji – tai žodžiai, prasidedantys simboliu <quote 1526 >$</quote 1527 >, <link linkend="the-editor" 1528 >rašyklėje</link 1529 > jie <glossterm 1530 >paryškinami</glossterm 1531 > purpurine spalva.</para> 1532 1533 <para 1534 >Į kintamąjį gali būti įrašytas bet koks <link linkend="number" 1535 >skaičius</link 1536 >, <link linkend="string" 1537 >tekstinė eilutė</link 1538 > arba <link linkend="boolean-value" 1539 >loginė (taip/ne) reikšmė</link 1540 >. Naudojant priskyrimą <userinput 1541 >=</userinput 1542 >, kintamąjam suteikiama reikšmė. Ši reikšmė bus saugoma tol, kol programa baigia darbą arba kol kintamajam nepriskiriama kita reikšmė.</para> 1543 1544 <para 1545 >Po to, kai kintamajam priskirta reikšmė, galite jį naudoti lygiai taip pat, kaip ir pačią reikšmę. Pavyzdžiui šioje &turtlescript; kodo ištraukoje: <screen> 1546 $x = 10 1547 $x = $x / 3 1548 rašyk $x 1549 </screen 1550 > Visų pirma kintamajam <userinput 1551 >$x</userinput 1552 > priskiriama reikšmė <userinput 1553 >10</userinput 1554 >. Tada kintamojo <userinput 1555 >$x</userinput 1556 > reikšmė keičiama į jo paties reikšmę, padalintą iš <userinput 1557 >3</userinput 1558 > — tai realiai reiškia, kad kintamajam <userinput 1559 >$x</userinput 1560 > priskiriama reikšmė <userinput 1561 >10 / 3</userinput 1562 >. Galų gale <userinput 1563 >$x</userinput 1564 > reikšmė yra parašoma. Antroje ir trečioje eilutėje kintamasis <userinput 1565 >$x</userinput 1566 > naudojamas tarsi jis būtų jo reikšmė.</para> 1567 1568 <para 1569 >Norint naudoti kintamuosius, jiems reikia priskirti reikšmę. Pavyzdys: <screen> 1570 rašyk $N 1571 </screen 1572 > Tai nieko neparašys ir Jūs gausite pranešimą apie klaidą.</para> 1573 1574 <para 1575 >Panagrinėkite šį &turtlescript; kodą: <screen> 1576 $a = 2004 1577 $b = 25 1578 1579 # tolesnė komanda parašys „2029“ 1580 rašyk $a + $b 1581 atgal 30 1582 # tolesnė komanda parašys „2004 plius 25 lygu 2029“ 1583 rašyk $a + " plius " + $b + " lygu " + ($a + $b) 1584 </screen 1585 > Pirmose dviejose eilutėse kintamiesiems <userinput 1586 >$a</userinput 1587 > ir <userinput 1588 >$b</userinput 1589 > buvo priskirtos vertės 2004 ir 25. Tada vykdomos dvi komandos <userinput 1590 >rašyk</userinput 1591 > su tarp jų įrašyta <userinput 1592 >atgal 30</userinput 1593 >. Komentarai prieš komandas <userinput 1594 >rašyk</userinput 1595 > paaiškina, ką jos daro. Komanda <userinput 1596 >atgal 30</userinput 1597 > buvo naudota tam, kad tolesnis tekstas būtų rašomas naujoje eilutėje. Šiame pavyzdyje Jūs matėte, kad kintamuosius galima naudoti tarsi jie būtų jų reikšmės, juos galite naudoti su bet kokiais <link linkend="operators" 1598 >operatoriais</link 1599 > arba panaudoti juos kaip argumentus kviečiant <link linkend="commands" 1600 >komandas</link 1601 >.</para> 1602 1603 <para 1604 >Dar vienas pavyzdys: <screen> 1605 $vardas = klausk "Koks tavo vardas?" 1606 rašyk "Labas " + $vardas + "! Sėkmės mokantis programavimo meno..." 1607 </screen 1608 > Gan paprasta. Vėlgi galite pastebėti, kad kintamasis <userinput 1609 >$vardas</userinput 1610 > naudojamas tarsi tai būtų tekstinė eilutė.</para> 1611 1612 <para 1613 >Naudojant kintamuosius, labai naudingas įrankis yra <link linkend="the-inspector" 1614 >inspektorius</link 1615 >. Jis parodo visų šiuo metu naudojamų kintamųjų turinį.</para> 1616 </sect1> 1617 1618 1619 1620 <sect1 id="controlling-execution"> 1621 <title 1622 >Vykdymo valdymas</title> 1623 <para 1624 >Valdymo procedūromis galima valdyti programos vykdymo eigą.</para> 1625 <para 1626 >Valdymo procedūros <glossterm 1627 >paryškinamos</glossterm 1628 > tamsiai žalios spalvos pusjuodžiu šriftu. Kartu su vykdymo valdymo komandomis dažniausiai naudojami ir skliausteliai, kurie <glossterm 1629 >paryškinami</glossterm 1630 > juoda spalva.</para> 1631 1632 <sect2 id="wait"> 1633 <title 1634 >Priverskite vėžliuką luktelėti</title> 1635 <para 1636 >Programuodami &kturtle; programa, Jūs tikriausiai pastebėjot tai, kad vėžliukas labai greitai piešia. Šia komanda Jūs priversite vėžliuką luktelėti nurodytą laikotarpį.</para> 1637 <variablelist> 1638 <varlistentry> 1639 <term 1640 >lauk<indexterm 1641 ><primary 1642 >lauk</primary 1643 ></indexterm 1644 ></term> 1645 <listitem 1646 ><para 1647 ><screen 1648 >lauk X</screen> 1649 Komanda <userinput 1650 >lauk</userinput 1651 > vėžliuką priverčia luktelėti X sekundžių. <screen> 1652 kartok 36 { 1653 priekin 5 1654 dešinėn 10 1655 lauk 0.5 1656 } 1657 </screen 1658 > Šiuo kodu brėžiamas apskritimas, tačiau ties kiekvienu žingsniu vėžliukas pusei sekundės stabtelėja. Tai sudaro lėtai judančio vėžliuko įspūdį.</para 1659 ></listitem> 1660 </varlistentry> 1661 </variablelist> 1662 </sect2> 1663 1664 <sect2 id="if"> 1665 <title 1666 >Vykdyk „jei“</title> 1667 <variablelist> 1668 <varlistentry> 1669 <term 1670 >jei<indexterm 1671 ><primary 1672 >jei</primary 1673 ></indexterm 1674 ></term> 1675 <listitem 1676 ><para 1677 ><screen 1678 >jei <link linkend="boolean-value" 1679 >loginė reikšmė</link 1680 > { ... }</screen> 1681 Kodas, esantis tarp skliaustelių, bus vykdomas tik <userinput 1682 >jei</userinput 1683 > <link linkend="boolean-value" 1684 >loginė reikšmė</link 1685 > bus <quote 1686 >taip</quote 1687 >. <screen> 1688 $x = 6 1689 jei $x > 5 { 1690 rašyk "x yra didesnis nei penki!" 1691 } 1692 </screen 1693 > Pirmoje eilutėje kintamajam <userinput 1694 >$x</userinput 1695 > priskirtas 6. Antroje eilutėje panaudotas <link linkend="comparing-operators" 1696 >palyginimo operatorius</link 1697 >, tikrinant ar <userinput 1698 >$x > 5</userinput 1699 >. Kadangi sąlygos atsakymas yra <quote 1700 >taip</quote 1701 > – 6 tikrai daugiau už 5 – tai vykdomas tarp valdymo procedūros <userinput 1702 >jei</userinput 1703 > skliaustelių esantis kodas.</para 1704 ></listitem> 1705 </varlistentry> 1706 </variablelist> 1707 </sect2> 1708 1709 <sect2 id="else"> 1710 <title 1711 >Jei ne, kitaip tariant: „antraip“</title> 1712 <variablelist> 1713 <varlistentry> 1714 <term 1715 >antraip<indexterm 1716 ><primary 1717 >antraip</primary 1718 ></indexterm 1719 ></term> 1720 <listitem 1721 ><para 1722 ><screen 1723 >jei <link linkend="boolean-value" 1724 >loginė reikšmė</link 1725 > { ... } else { ... }</screen> 1726 <userinput 1727 >antraip</userinput 1728 > naudojamas kartu su valdymo procedūra <link linkend="if" 1729 ><userinput 1730 >jei</userinput 1731 ></link 1732 >. Kodas, esantis tarp skliaustelių einančių po <userinput 1733 >antraip</userinput 1734 >, vykdomas tik tada, jei <link linkend="boolean-value" 1735 >loginė reikšmė</link 1736 > yra <quote 1737 >ne</quote 1738 >. <screen> 1739 pradžių_pradžia 1740 $x = 4 1741 jei $x > 5 { 1742 rašyk "$x yra didesnis nei penki!" 1743 } antraip { 1744 rašyk "$x yra mažesnis nei šeši!" 1745 } 1746 </screen 1747 > <link linkend="comparing-operators" 1748 >Palyginimo operatorius</link 1749 > tikrina, ar <userinput 1750 >$x > 5</userinput 1751 >. Kadangi 4 nėra didesnis už 5, tai sąlygos atsakymas yra <quote 1752 >ne</quote 1753 >. Tai reiškia kad bus vykdomas kodas, esantis po <userinput 1754 >antraip</userinput 1755 > einančiuose skliausteliuose.</para 1756 ></listitem> 1757 </varlistentry> 1758 </variablelist> 1759 </sect2> 1760 1761 <sect2 id="while"> 1762 <title 1763 >Ciklas „kol“</title> 1764 <variablelist> 1765 <varlistentry> 1766 <term 1767 >kol<indexterm 1768 ><primary 1769 >kol</primary 1770 ></indexterm 1771 ></term> 1772 <listitem 1773 ><para 1774 ><screen 1775 >kol <link linkend="boolean-value" 1776 >loginė reikšmė</link 1777 > { ... }</screen> 1778 Valdymo procedūra <userinput 1779 >kol</userinput 1780 > labai panaši į <link linkend="if" 1781 ><userinput 1782 >jei</userinput 1783 ></link 1784 >. Skirtumas tik tas, kad <userinput 1785 >kol</userinput 1786 > kartoja tarp skliaustelių esantį kodą tol, kol <link linkend="boolean-value" 1787 >loginė reikšmė</link 1788 > būna <quote 1789 >taip</quote 1790 >. <screen> 1791 $x = 1 1792 kol $x < 5 { 1793 priekin 10 1794 lauk 1 1795 $x = $x + 1 1796 } 1797 </screen 1798 > Pirmoje eilutėje kintamajam <userinput 1799 >$x</userinput 1800 > priskiriamas 1. Antroje tikrinama, ar <userinput 1801 >$x < 5</userinput 1802 >. Kadangi atsakymas į šį klausimą yra <quote 1803 >taip</quote 1804 >, tai valdymo procedūra <userinput 1805 >kol</userinput 1806 > vykdo jos skliausteliuose esantį kodą tol, kol <userinput 1807 >$x < 5</userinput 1808 > bus <quote 1809 >ne</quote 1810 >. Šiuo atveju kodas tarp skliaustelių bus įvykdytas 4 kartus, nes kiekvieną kartą įvykdžius penktą eilutę kintamojo <userinput 1811 >$x</userinput 1812 > reikšmė didinama vienetu.</para 1813 ></listitem> 1814 </varlistentry> 1815 </variablelist> 1816 </sect2> 1817 1818 <sect2 id="repeat"> 1819 <title 1820 >Ciklas „kartok“</title> 1821 <variablelist> 1822 <varlistentry> 1823 <term 1824 >kartok<indexterm 1825 ><primary 1826 >kartok</primary 1827 ></indexterm 1828 ></term> 1829 <listitem 1830 ><para 1831 ><screen 1832 >kartok <link linkend="number" 1833 >skaičius</link 1834 > { ... }</screen> 1835 Valdymo procedūra <userinput 1836 >kartok</userinput 1837 > yra labai panaši į <link linkend="while" 1838 ><userinput 1839 >kol</userinput 1840 ></link 1841 >. Skirtumas tik tas, kad procedūra <userinput 1842 >kartok</userinput 1843 > tarp skliaustelių esantį kodą kartoją nurodytą skaičių kartų.</para 1844 ></listitem> 1845 </varlistentry> 1846 </variablelist> 1847 </sect2> 1848 1849 <sect2 id="for"> 1850 <title 1851 >Skaičiuojantysis ciklas „nuo“</title> 1852 <variablelist> 1853 <varlistentry> 1854 <term 1855 >nuo<indexterm 1856 ><primary 1857 >nuo</primary 1858 ></indexterm 1859 ><indexterm 1860 ><primary 1861 >kas</primary 1862 ></indexterm 1863 ></term> 1864 <listitem 1865 ><para 1866 ><screen 1867 >nuo <link linkend="assignment-of-variables" 1868 >kintamasis</link 1869 > = <link linkend="number" 1870 >skaičius</link 1871 > iki <link linkend="number" 1872 >skaičius</link 1873 > { ... }</screen> 1874 Ciklas <userinput 1875 >nuo</userinput 1876 > tai <quote 1877 >skaičiuojantysis ciklas</quote 1878 >, t.y. jis keičia Jūsų nurodyto kintamojo vertę. Pirmo ciklo metu kintamajam priskiriama pirmoji reikšmė. Kiekvieno kito ciklo metu kintamojo reikšmė didinama ir ciklai kartojami tol, kol pasiekiama antroji reikšmė. <screen> 1879 nuo $x = 1 iki 10 { 1880 rašyk $x * 7 1881 priekin 15 1882 } 1883 </screen 1884 > Kiekvieną kartą vykdant tarp skliaustelių esantį kodą, <userinput 1885 >$x</userinput 1886 > kaskart padidėja vienetu tol, kol <userinput 1887 >$x</userinput 1888 > vertė tampa 10. Skliausteliuose esantis kodas spausdina <userinput 1889 >$x</userinput 1890 > ir 7 sandaugą. Įvykdžius šia programą, drobėje bus parašyta septinių daugybos lentelė. </para> 1891 <para 1892 >Numatytasis ciklo žingsnis yra 1, kitokį žingsnį galima nustatyti su <screen 1893 >nuo <link linkend="assignment-of-variables" 1894 >kintamasis</link 1895 > = <link linkend="number" 1896 >skaičius</link 1897 > iki <link linkend="number" 1898 >skaičius</link 1899 > kas <link linkend="number" 1900 >skaičius</link 1901 > { ... }</screen 1902 ></para 1903 ></listitem> 1904 </varlistentry> 1905 </variablelist> 1906 </sect2> 1907 1908 <sect2 id="break"> 1909 <title 1910 >Ciklo nutraukimas</title> 1911 <variablelist> 1912 <varlistentry> 1913 <term 1914 >baik<indexterm 1915 ><primary 1916 >baik</primary 1917 ></indexterm 1918 ></term> 1919 <listitem 1920 ><para 1921 ><screen 1922 >baik</screen> 1923 Tuoj pat nutraukia dabartinį ciklą, ir vykdymą nukreipia po šio ciklo einančiai komandai.</para 1924 ></listitem> 1925 </varlistentry> 1926 </variablelist> 1927 </sect2> 1928 1929 <sect2 id="exit"> 1930 <title 1931 >Nutraukti jūsų programos vykdymą</title> 1932 <variablelist> 1933 <varlistentry> 1934 <term 1935 >stabdyk<indexterm 1936 ><primary 1937 >stabdyk</primary 1938 ></indexterm 1939 ></term> 1940 <listitem 1941 ><para 1942 ><screen 1943 >stabdyk</screen> 1944 Baigia jūsų programos vykdymą.</para 1945 ></listitem> 1946 </varlistentry> 1947 </variablelist> 1948 </sect2> 1949 </sect1> 1950 1951 1952 <sect1 id="learn"> 1953 1954 1955 <!--<sect2 id="name"> 1956 <title 1957 >Names</title> 1958 <para 1959 >When using the &turtlescript; programming language you create new things. If you write a program you will often need <link linkend="containers" 1960 >containers</link 1961 > and in some cases you need <link linkend="learn" 1962 >learn</link 1963 > to create new commands. When making a new command with <link linkend="learn" 1964 >learn</link 1965 > you will have to specify a name.</para> 1966 <para 1967 >You can choose any name, as long as it does not already have a meaning. For instance you cannot name a function <link linkend="forward" 1968 >forward</link 1969 >, since that name is already used for an internal command. 1970 <screen 1971 > 1972 # here forward is used as a new command, 1973 # but it already has a meaning so 1974 # this will produce an error: 1975 learn forward { 1976 print "this is invalid" 1977 } 1978 1979 # this works: 1980 learn myforward { 1981 print "this is ok" 1982 } 1983 </screen> 1984 Names can contain only letters, numbers and underscores (_). Yet they have to start with a letter. Container names have to start with the container prefix ($). 1985 <screen 1986 > 1987 # here forward is used as a container, 1988 # starting with the $ prefix, so it does 1989 # not conflict with the forward command 1990 $forward = 20 1991 print $forward 1992 </screen> 1993 </para> 1994 <para 1995 >Containers are <glossterm 1996 >highlighted</glossterm 1997 > with bolded purple in the <link linkend="the-editor" 1998 >code editor</link 1999 >.</para> 2000 <para> 2001 Please read the documentation on <link linkend="containers" 2002 >containers</link 2003 > and the <link linkend="learn" 2004 >learn</link 2005 > command for a better explanation and more examples. 2006 </para> 2007 </sect2 2008 >--> 2009 2010 2011 2012 2013 2014 <title 2015 >Kurkite savas komandas komanda <quote 2016 >išmok</quote 2017 ></title> 2018 <para 2019 ><userinput 2020 >išmok</userinput 2021 > yra ypatinga komanda, nes ja galima kurti savas komandas. Sukurtosios komandos gali reikalauti <glossterm linkend="input-output" 2022 >parametrų</glossterm 2023 > ir grąžinti <glossterm linkend="input-output" 2024 >rezultatą</glossterm 2025 >. Štai kaip kuriama nauja komanda: <screen> 2026 išmok apskritimas $x { 2027 kartok 36 { 2028 priekin $x 2029 kairėn 10 2030 } 2031 } 2032 </screen 2033 > Naujosios komandos pavadinimas yra <userinput 2034 >apskritimas</userinput 2035 >. <userinput 2036 >apskritimas</userinput 2037 > reikalauja vieno <glossterm linkend="input-output" 2038 >parametro</glossterm 2039 > — skaičiaus, nurodančio apskritimo dydį. <userinput 2040 >apskritimas</userinput 2041 > negrąžina <glossterm linkend="input-output" 2042 >rezultato</glossterm 2043 >. Dabar, komandą <userinput 2044 >apskritimas</userinput 2045 > galima naudoti kaip ir bet kurią kitą komandą. Žvilgtelėkit į šį pavyzdį: <screen 2046 >išmok apskritimas $X { 2047 kartok 36 { 2048 priekin $X 2049 kairėn 10 2050 } 2051 } 2052 2053 eik_x_y 200,200 2054 apskritimas 20 2055 2056 eik_x_y 300,200 2057 apskritimas 40 2058 </screen> 2059 </para> 2060 <para 2061 >Kitame pavyzdyje sukuriama komanda, kuri grąžina rezultatą. <screen> 2062 išmok faktorialas $x { 2063 $r = 1 2064 nuo $i = 1 iki $x { 2065 $r = $r * $i 2066 } 2067 grąžink $r 2068 } 2069 2070 rašyk faktorialas 5 2071 </screen 2072 > Šiame pavyzdyje kviečiama naujai sukurta komanda, pavadinta <userinput 2073 >faktorialas</userinput 2074 >. Jei šios komandos argumentas yra <userinput 2075 >5</userinput 2076 >, tai rezultatas yra <userinput 2077 >5*4*3*2*1</userinput 2078 >. Naudojant <userinput 2079 >grąžink</userinput 2080 >, nurodoma <glossterm linkend="input-output" 2081 >grąžinama</glossterm 2082 > reikšmė ir baigiamas naujos komandos vykdymas.</para> 2083 <para 2084 >Komanda gali turėti daugiau nei vieną <glossterm linkend="input-output" 2085 >argumentą</glossterm 2086 >. Kitame pavyzdyje sukuriama komanda, kuri braižo keturkampį: <screen> 2087 išmok keturkampis $x, $y { 2088 priekin $y 2089 dešinėn 90 2090 priekin $x 2091 dešinėn 90 2092 priekin $y 2093 dešinėn 90 2094 priekin $x 2095 dešinėn 90 2096 } 2097 </screen 2098 > Dabar, įvykdžius <userinput 2099 >keturkampis 50, 100</userinput 2100 >, vėžliukas drobėje nubrėš keturkampį. </para> 2101 2102 </sect1> 2103 2104 </chapter>