# &turtlescript; žinynas programuotojui

Čia yra &kturtle; scenarijaus kalbos &turtlescript; žinynas. Pirmoje šio skyriaus dalyje skaitykite apie &turtlescript; programų gramatiką. Antroje dalyje kalba išskirtinai apie matematinius veiksmus, loginius (tiesa/melas) veiksmus ir sulyginimo veiksmus. Trečia dalis – tiesiog didžiulis komandų ir jų paaiškinimų sąrašas. Ketvirtoje dalyje aiškinama, kaip priskirti reikšmes kintamiesiems. Pabaigoje – penktoje dalyje – mes paaiškiname, kaip valdyti komandų vykdymą naudojant vykdymo valdymo sakinius, o šeštoje dalyje – kaip sukurti savo komandas mokantis.

## &turtlescript; gramatika

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.

Šioje dalyje aprašomi keli skirtingi &turtlescript; žodžių tipai ir simboliai. Mes paaiškiname komentarus, komandas ir tris skirtingas simbolių rūšis: skaičius, eilutes ir logines (tiesa/melas) reikšmes.

### Komentarai

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 `#` yra laikoma &turtlescript; komentaru. Pavyzdžiui ši maža programa, kuri nieko nedaro:

    # ši programėlė nieko nedaro, tai tik komentaras!

Ji yra beprasmiška, bet padeda paaiškinti esmę.

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 rašyk.

    # šią programą sukūrė Saulė Binkytė.
    rašyk "šis tekstas bus parašytas ant drobės"
    # aukščiau esanti eilutė nėra komentaras, bet žemiau esanti – yra:
    # rašyk "šis tekstas nebus parašytas!"

Pirma eilutė aprašo programą. Antrą eilutę &kturtle; įvykdo ir parašo `šis tekstas bus parašytas ant drobės` ant drobės. Trečia eilutė yra komentaras. Ketvirta eilutė irgi yra komentaras, kuriame yra gabaliukas &turtlescript; kodo, jei bus pašalintas simbolis `#`, &kturtle; įvykdys rašymo komandą. Programuotojai sako: rašymo sakinys ketvirtoje eilutėje yra „užkomentuotas“.

Kodo rašyklėje komentarai paryškinami šviesiai pilka spalva.

### Komandos

Komandų pagalba jūs nurodote vėžliukui, ką reikia daryti. Kai kurioms komandoms reikia pateikti papildomą informaciją, kitos informaciją parodo.

    # „priekin“ yra komanda, kuriai reikia papildomos informacijos, šiuo atveju skaičiaus 100:
    priekin 100

Pirma eilutė yra komentaras. Antroje eilutėje yra komanda `priekin` ir skaičius `100`. Skaičius nėra komandos dalis, tai komandos „įvestis“.

Kai kurioms komandoms, tokioms kaip `eiti` reikia daugiau nei vienos reikšmės. Kelios pateikiamos reikšmės turi būti atskirtos simboliu `,` (kableliu).

Visų &kturtle; komandų detalesnį aprašymą rasite čia. Įsiūtos komandos paryškintos tamsiai mėlyna spalva.

### Skaičiai

Ko gero apie skaičius Jūs žinote nemažai. &kturtle; programoje skaičiai beveik nesiskiria nuo naudojamų Jūsų šnekamojoje kalboje arba matematikoje.

Čia taip pat naudojami natūralieji skaičiai: `0`, `1`, `2`, `3`, `4`, `5`, ir t.t. Neigiami skaičiai: `-1`, `-2`, `-3`, ir t.t. Ir dešimtainiai skaičiai, pavyzdžiui: `0.1`, `3.14`, `33.3333`, `-5.05`, `-1.0`. Trumpeninės skaičiaus dalies atskirimui naudojamas ne kablelis, o taško simbolis (`.`).

Skaičiai naudojami matematiniuose skaičiavimuose ir palyginimo sąlygose. Be to, juos galima patalpinti į kintamuosius. Skaičiai paryškinami tamsiai raudona spalva.

### Tekstinės eilutės

Pirma pavyzdys:

    rašyk "Labas, aš esu tekstinė eilutė."

Šiame pavyzdyje `rašyk` yra komanda, o `"Labas, aš esu tekstinė eilutė."` tai tekstinė eilutė. Tekstinės eilutės prasideda ir baigiasi ženklu `"`, tik pagal šiuos ženklus &kturtle; supranta, kad tai tekstinė eilutė.

Eilutes galima priskirti kintamiesiems, kaip ir skaičius. Bet, priešingai nei skaičiai, eilučių negalima naudoti matematiniuose veiksmuose ar palyginimo veiksmuose. Eilutės paryškinamos raudonai.

### Loginės (tiesa/melas) reikšmės

Yra tik dvi loginio tipo reikšmės: `taip` ir `ne`. Kartais jos vadinamos: įjungta ir išjungta, tiesa ir melas, vienas ir nulis. Bet &turtlescript; kalboje jos visada vadinamos `taip` ir `ne`. Štai &turtlescript; kodo pavyzdys:

    $a = taip

Jei pažiūrėsite, kas matosi inspektoriuje, pamatysite, kad kintamojo `$a` reikšmė yra `taip`, o jo tipas yra loginis.

Dažnai loginės reikšmės yra palyginimo veiksmų rezultatai, kaip pavyzdžiui tokiame &turtlescript; kode:

    $atsakymas = 10 > 3

Kintamojo `$atsakymas` reikšmė yra `taip`, nes `10` yra daugiau už `3`.

Loginės reikšmės, `taip` ir `ne` paryškinamos tamsiai raudona spalva.

## Matematiniai, loginiai ir palyginimo operatoriai

Nors šio skyriaus pavadinimas gali skambėti sudėtingai, iš tiesų jis nėra toks sudėtingas, kaip atrodo.

### Matematiniai operatoriai

Pagrindiniai matematiniai simboliai yra: sudėtis (`+`), atimtis (`-`), daugyba (`*`), dalyba (`/`) bei kėlimas laipsniu (`^`).

Štai keletas matematinių operatorių, kuriuos galima naudoti &turtlescript;, pavyzdžių:

    $sudėtis  = 1 + 1
    $atimtis  = 20 - 5
    $daugyba  = 15 * 2
    $dalyba   = 30 / 30
    $laipsnis = 2 ^ 2

Matematinių operacijų rezultatai priskiriami įvairiems kintamiesiems. Jūs galite peržiūrėti reikšmes pasinaudoję inspektoriumi.

Jei Jums prireiktų paprastų skaičiavimų, tai Jūs galite daryti tiesiog taip:

    rašyk 2010-12

Dabar skliaustelių naudojimo pavyzdys:

    rašyk ( ( 20 - 5 ) * 2 / 30 ) + 1

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.

&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: apvalink, bet_koks, šaknis, pi, sin, cos, tg, arcsin, arccos, arctg.

### Loginiai (taip/ne) operatoriai

Kaip Matematiniai operatoriai pagrinde skirti skaičiams, taip loginiai operatoriai skirti loginėms reikšmėms (`taip` ir `ne`). Yra tik trys loginiai operatoriai: `ir`, `arba` ir `ne`. Toliau pateikiamas &turtlescript; pavyzdys, rodantis, kaip galima naudoti šiuos operatorius:

    $ir_1_1 = taip ir taip # -> taip
    $ir_1_0 = taip ir ne   # -> ne
    $ir_0_1 = ne ir taip   # -> ne
    $ir_0_0 = ne ir ne     # -> ne

    $arba_1_1 = taip arba taip # -> taip
    $arba_1_0 = taip arba ne   # -> taip
    $arba_0_1 = ne arba taip   # -> taip
    $arba_0_0 = ne arba ne     # -> ne

    $ne_1 = ne taip  # -> ne
    $ne_0 = ne ne    # -> taip

Reikšmes galite pažiūrėti naudodami inspektorių, nors mes pateikėme rezultatus kaip nedidelius komentarus eilučių pabaigose. `ir` rezultatas yra `taip` tik tada, jei abi pusės yra `taip`. `arba` rezultatas yra `taip`, jei nors viena iš pusių yra `taip`. `ne` keičia `taip` į `ne`, o `ne` į `taip`.

Loginiai operatoriai paryškinami rožine spalva.

#### Keletas sudėtingesnių pavyzdžių

Panagrinėkite šį pavyzdį su `ir`:

    $a = 1
    $b = 5
    jei (($a < 10) ir ($b == 5)) ir ($a < $b) {
      rašyk "labas"
    }

Šiame &turtlescript; gabaliuke trijų palyginimo operatorių rezultatas sujungiamas naudojant `ir` operatorius. Tai reiškia, kad visi trys turi būti „taip“, tam, kad būtų parašytas tekstas „labas“.

Pavyzdys su `arba`:

    $n = 1
    jei ($n < 10) arba ($n == 2) {
      rašyk "labas"
    }

Šiame &turtlescript; kodo gabaliuke, kairės operatoriaus `arba` pusės reikšmė bus „taip“, dešinės – „ne“. Kadangi vienoje iš `arba` operatoriaus pusių yra „taip“, `arba` operatorius grąžina „taip“. Tai reiškia, kad bus parašyta „labas“.

Ir pabaigai pavyzdys su `ne`, kuris keičia „taip“ į „ne“ ir „ne“ į „taip“. Pažiūrėkite:

    $n = 1
    jei ne ($n == 3) {
      rašyk "labas"
    } antraip {
      rašyk "ne labas ;-)"
    }

### Palyginimo operatoriai

Panagrinėkime paprastą palyginimą:

    $atsakymas = 10 > 3

Čia `10` lyginamas su `3` naudojant operatorių „didesnis už“. Šio palyginimo rezultatas – loginė reikšmė `taip` – įrašoma į kintamąjį `$atsakymas`.

Visi skaičiai ir kintamieji (į kuriuos įrašyti skaičiai) gali būti lyginami tarpusavyje naudojant palyginimo operatorius.

Čia pateikiami visi įmanomi palyginimo operatoriai:

### Klausimų tipai

`$A == $B` | lygu | atsakymas yra taip, jei `$A` lygu `$B`
`$A != $B` | nelygu | atsakymas yra taip, jei `$A` nėra lygu `$B`
`$A > $B` | daugiau už | atsakymas yra taip, jei `$A` yra didesnis už `$B`
`$A < $B` | mažiau už | atsakymas yra taip, jei `$A` yra mažiau už `$B`
`$A >= $B` | daugiau už arba lygu | atsakymas yra taip, jei `$A` yra daugiau už arba lygu `$B`
`$A <= $B` | mažiau už arba lygu | atsakymas yra taip, jei `$A` yra mažiau už arba lygu `$B`

Atkreipkite dėmesį, kad $A ir $B turi būti skaičiai arba kintamieji, į kuriuos įrašyti skaičiai.

## Komandos

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 mokymą galite sukurti savo komandas. Visos čia aprašomos vidinės komandos paryškinamos tamsiai mėlyna spalva.

### Vėžliuko stumdymas

Vėžliuką stumdyti drobėje galima keliomis komandomis.

priekin (pr)

-     priekin X

  Komanda `priekin` vėžliukas pastumiamas X pikselių į priekį. Jei pieštukas nuleistas, tai vėžliukas paliks pėdsaką. Vietoje komandos `priekin` galima naudoti jos santrumpą `pr`.

atgal (at)

-     atgal X

  Komanda `atgal` vėžliukas pastumiamas X pikselių atgalios. Jei pieštukas nuleistas, tai vėžliukas paliks pėdsaką. Vietoje komandos `atgal` galima naudoti jos santrumpą `at`.

kairėn (kr)

-     kairėn X

  Komanda `kairėn` vėžliukas pasukamas X laipsnių į kairę pusę. Vietoje komandos `kairėn` galima naudoti jos santrumpą `kr`.

dešinėn (dš)

-     dešinėn X

  Komanda `dešinėn` vėžliukas pasukamas X laipsnių į dešinę pusę. Vietoje komandos `dešinėn` galima naudoti jos santrumpą `dš`.

žvelk (žv)

-     žvelk X

  Komanda `žvelk` 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 `žvelk` galima naudoti jos santrumpą `žv`.

gauk_kryptį

-     gauk_kryptį

  Komanda `gauk_kryptį` grąžina vėžliuko kryptį, kaip laipsnių skaičių pradedant nuo nulio. Nulis – tai kryptis, kai vėžliukas žiūri aukštyn.

namo

-     namo

  Komanda `namo` vėžliukas perkeliamas į drobės centrą.

eik_x_y

-     eik_x_y X,Y

  Komanda `eik_x_y` vėžliukas perkeliamas į nurodytą drobės vietą. Vietos koordinatės nurodomos pikseliais: skaičius X tai atstumas iki kairiojo drobės krašto, skaičius Y — iki viršutiniojo drobės krašto.

eik_x

-     eik_x X

  Komanda `eik_x` vėžliukas horizontaliai perkeliamas į tašką, kuris nuo drobės kairiojo krašto yra nutolęs X pikselių.

eik_y

-     eik_y Y

  Komanda `eik_y` vėžliukas vertikaliai perkeliamas į tašką, kuris nuo drobės viršutiniojo krašto yra nutolęs Y pikselių.

Jei vėžliukas judinamas komandomis `eik_x_y`, `eik_x`, `eik_y` arba `namo`, tai jis judėdamas pėdsako nepalieka, nežiūrint į tai ar pieštukas yra nuleistas ar atitrauktas.

### Kur vėžliukas?

Yra dvi komandos, kurios grąžina drobėje esančio vėžliuko koordinates.

koks_x

- Komanda `koks_x` grąžina dabartinę vėžliuko X koordinatę pikseliais, t.y. jo atstumą iki drobės kairiojo krašto.

koks_y

- Komanda `koks_y` grąžina dabartinę vėžliuko Y koordinatę pikseliais, t.y. jo atstumą iki drobės viršutiniojo krašto.

### Vėžliukas turi pieštuką

Vėžliukas turi pieštuką, juo judėdamas vėžliukas piešia. Pieštuką valdyti galima keliomis komandomis. Apie jas sužinosite šiame skyriuje.

eisim (es)

-     eisim

  Komanda `eisim` nuo drobės atitraukiamas pieštukas (t.p. žvilgtelėkite į komandą `piešim`). Kai pieštukas būna atitrauktas, tada judėdamas vėžliukas linijos nebrėžia. Vietoje komandos `eisim` galima naudoti jos santrumpą `es`.

piešim (pš)

-     piešim

  Komanda `piešim` ant drobės nuleidžiamas pieštukas (t.p. žvilgtelėkite į komandą `eisim`). Kai pieštukas būna nuleistas, tada judėdamas vėžliukas brėžia linijos. Vietoje komandos `piešim` galima naudoti jos santrumpą `pš`.

pieštuko_storis (ps)

-     pieštuko_storis X

  Komanda `pieštuko_storis` nustatomas X pikselių storio pieštukas, t.y. brėžiamų linijų storis. Vietoje komandos `pieštuko_storis` galima naudoti jos santrumpą `ps`.

pieštuko_spalva (psp)

-     pieštuko_spalva R,Ž,M

  Komanda `pieštuko_spalva` nustatoma pieštuko spalvas. Šios komandos parametras tai RŽM kombinacija nusakanti pieštuko spalvą. Vietoje komandos `pieštuko_spalva` galima naudoti jos santrumpą `psp`.

### Drobės valdymo komandos

Drobę galima valdyti keliomis komandomis.

nustatyk_lauko_dydį (nld)

-     nustatyk_lauko_dydį X,Y

  Komanda `nustatyk_lauko_dydį` keičiamas drobės dydis. Šiai komandai reikia nurodyti du parametrus: drobės plotį X pikseliais, ir drobės aukštį Y pikseliais. Vietoje komandos `nustatyk_lauko_dydį` galima naudoti jos santrumpą `nld`.

keisk_foną (kf)

-     keisk_foną R,Ž,M

  Komanda `keisk_foną` keičiama drobės spalva. Šiai komandai, kai parametrą, reikia nurodyti RŽM kombinaciją. Vietoje komandos `keisk_foną` galima naudoti jos santrumpą `kf`.

### Valymo komandos

Drobėje nubraižytą piešinį ištrinti gali dvi komandos.

valyk (vvl)

-     valyk

  Komanda `valyk` 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ę.

pradžių_pradžia

-     pradžių_pradžia

  Komanda `pradžių_pradžia` „valo“ daug daugiau nei komanda `valyk`. Įvykdžius komandą `pradžių_pradžia` 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ė.

### Vėžliukas tai spruklys

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 spruklys išsamesnį paaiškinimą.

Toliau aprašomos visos komandos, kurios valdo spruklius.

[Šioje &kturtle; laidoje kol kas dar neįmanoma vėžliuko spruklį pakeisti kitu. Tai bus galima daryti tik ateinančių laidų &kturtle; programose]

rodykis (rd)

-     rodykis

  Paslėptas vėžliukas vėl parodomas komanda `rodykis`. Vietoje komandos `rodykis` galima naudoti jos santrumpą `rd`.

slėpkis (sl)

-     slėpkis

  Vėžliukas paslepiamas įvykdžius komandą `slėpkis`. Tai paranku, kai, tarkim, vėžliuko spruklys nebetelpa drobėje. Vietoje komandos `slėpkis` galima naudoti jos santrumpą `sl`.

### Ar vėžliukas moka rašyti?

Atsakymas: taip. Vėžliukas moka rašyti — jis parašys viską ką jam liepsite.

rašyk

-     rašyk X

  Komanda `rašyk` vėžliukui liepiama drobėje parašyti nurodytą tekstą. Komandai `rašyk` kaip parametrą galima nurodyti skaičių arba tekstinę eilutę. Jei prireiktų vienu metu parašyti skaičius ir tekstą, juos galima apjungti ženklu +. Žvilgtelėkite į pavyzdį:

      $metai = 2003
      $autorius = "Cies"
      rašyk $metai + " metais " + $autorius + " pradėjo kurti KTurtle, ir vis dar mielu noru jį tobulina!"

teksto_dydis

-     teksto_dydis X

  Komanda `teksto_dydis` nustatomas teksto, kuris rašomas drobėje naudojant komandą `rašyk`, šrifto dydis. Komandos `teksto_dydis` parametras tai būsimo teksto aukštis pikseliais.

### Matematinės komandos

Šios komandos yra kiek sudėtingesnės &kturtle; matematinės komandos.

apvalink

-     apvalink(x)

  Komanda `apvalink` skaičių apvalina iki jo sveikosios dalies.

      rašyk apvalink(10.8)
      pirmyn 20
      rašyk apvalink(10.3)

  Paleidus šį kodą, drobėje bus parašyti skaičiai 11 ir 10.

bet_koks (bk)

-     bet_koks X,Y

  Komanda `random` 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:

      kartok 500 {
        $x = bet_koks 1,20
        priekin $x
        kairėn 10 - $x
      }

  Programa, kurioje naudosite komandą `bet_koks`, Jūs galite sukelti šiokį tokį chaosą.

mod

-     mod X,Y

  Komanda `mod` grąžina pirmo skaičiaus dalinimo iš antrojo liekaną.

šaknis

-     šaknis X

  Komanda `šaknis` naudojama skaičiaus X kvadratinei šakniai suskaičiuoti.

pi

-     pi

  Ši komanda grąžina Pi konstantą – `3.14159`.

sin
, cos
, tg

-     sin X
      cos X
      tg X

  Šios komandos – tai visame pasaulyje įžymiosios trigonometrinės funkcijos `sin`, `cos` ir `tg`. Šių komandų argumentas X yra skaičius.

arcsin
, arccos
, arctg

-     arcsin X
      arccos X
      arctg X

  Šios komandos yra atvirkštinės anksčiau aprašytoms sin, cos ir tg. Komandos argumentas X yra skaičius.

### Užklausa ir atsakas naudojant dialogus

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: `pranešimas` ir `klausk`.

pranešimas

-     pranešimas X

  Komandai `pranešimas` reikia nurodyti parametrą — tekstinę eilutę. Šis tekstas bus rodomas komandos atvertame lange.

      pranešimas "2003 metais Cies pradėjo kurti KTurtle, ir vis dar mielu noru jį tobulina!"

klausk

-     klausk X

  Komandai `klausk` reikia nurodyti parametrą — tekstinę eilutę. Ši komanda, panašiai kaip ir komanda pranešimas, atvers langą su nurodytu tekstu. Be to, atvertame lange bus dar ir įvesties laukelis, į kurį naudotojas galės įvesti skaičių arba tekstinę eilutę. Naudotojui uždarius langą, įvestieji duomenys bus patalpinti kintamajame arba perduoti kaip argumentas komandai. Pavyzdžiui

      $gauta = klausk "Kada tu gimei?"
      $metai = 2011 - $gauta
      rašyk "2011-taisiais tau buvo " + $metai + " metų."

  Jei naudotojas atšauks dialogą, arba jį užvers nieko neįvedęs, tai kintamasis bus ištuštintas.

## Kintamųjų reikšmių priskyrimas

Pirma pakalbėkime apie kintamuosius, o tada – apie reikšmių jiems priskyrimą.

Kintamieji – tai žodžiai, prasidedantys simboliu $, rašyklėje jie paryškinami purpurine spalva.

Į kintamąjį gali būti įrašytas bet koks skaičius, tekstinė eilutė arba loginė (taip/ne) reikšmė. Naudojant priskyrimą `=`, kintamąjam suteikiama reikšmė. Ši reikšmė bus saugoma tol, kol programa baigia darbą arba kol kintamajam nepriskiriama kita reikšmė.

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:

    $x = 10
    $x = $x / 3
    rašyk $x

Visų pirma kintamajam `$x` priskiriama reikšmė `10`. Tada kintamojo `$x` reikšmė keičiama į jo paties reikšmę, padalintą iš `3` — tai realiai reiškia, kad kintamajam `$x` priskiriama reikšmė `10 / 3`. Galų gale `$x` reikšmė yra parašoma. Antroje ir trečioje eilutėje kintamasis `$x` naudojamas tarsi jis būtų jo reikšmė.

Norint naudoti kintamuosius, jiems reikia priskirti reikšmę. Pavyzdys:

    rašyk $N

Tai nieko neparašys ir Jūs gausite pranešimą apie klaidą.

Panagrinėkite šį &turtlescript; kodą:

    $a = 2004
    $b = 25

    # tolesnė komanda parašys „2029“
    rašyk $a + $b
    atgal 30
    # tolesnė komanda parašys „2004 plius 25 lygu 2029“
    rašyk $a + " plius " + $b + " lygu " + ($a + $b)

Pirmose dviejose eilutėse kintamiesiems `$a` ir `$b` buvo priskirtos vertės 2004 ir 25. Tada vykdomos dvi komandos `rašyk` su tarp jų įrašyta `atgal 30`. Komentarai prieš komandas `rašyk` paaiškina, ką jos daro. Komanda `atgal 30` 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 operatoriais arba panaudoti juos kaip argumentus kviečiant komandas.

Dar vienas pavyzdys:

    $vardas = klausk "Koks tavo vardas?"
    rašyk "Labas " + $vardas + "! Sėkmės mokantis programavimo meno..."

Gan paprasta. Vėlgi galite pastebėti, kad kintamasis `$vardas` naudojamas tarsi tai būtų tekstinė eilutė.

Naudojant kintamuosius, labai naudingas įrankis yra inspektorius. Jis parodo visų šiuo metu naudojamų kintamųjų turinį.

## Vykdymo valdymas

Valdymo procedūromis galima valdyti programos vykdymo eigą.

Valdymo procedūros paryškinamos tamsiai žalios spalvos pusjuodžiu šriftu. Kartu su vykdymo valdymo komandomis dažniausiai naudojami ir skliausteliai, kurie paryškinami juoda spalva.

### Priverskite vėžliuką luktelėti

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

lauk

-     lauk X

  Komanda `lauk` vėžliuką priverčia luktelėti X sekundžių.

      kartok 36 {
        priekin 5
        dešinėn 10
        lauk 0.5
      }

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

### Vykdyk „jei“

jei

-     jei loginė reikšmė { ... }

  Kodas, esantis tarp skliaustelių, bus vykdomas tik `jei` loginė reikšmė bus taip.

      $x = 6
      jei $x > 5 {
        rašyk "x yra didesnis nei penki!"
      }

  Pirmoje eilutėje kintamajam `$x` priskirtas 6. Antroje eilutėje panaudotas palyginimo operatorius, tikrinant ar `$x > 5`. Kadangi sąlygos atsakymas yra taip – 6 tikrai daugiau už 5 – tai vykdomas tarp valdymo procedūros `jei` skliaustelių esantis kodas.

### Jei ne, kitaip tariant: „antraip“

antraip

-     jei loginė reikšmė { ... } else { ... }

  `antraip` naudojamas kartu su valdymo procedūra `jei`. Kodas, esantis tarp skliaustelių einančių po `antraip`, vykdomas tik tada, jei loginė reikšmė yra ne.

      pradžių_pradžia
      $x = 4
      jei $x > 5 {
        rašyk "$x yra didesnis nei penki!"
      } antraip {
        rašyk "$x yra mažesnis nei šeši!"
      }

  Palyginimo operatorius tikrina, ar `$x > 5`. Kadangi 4 nėra didesnis už 5, tai sąlygos atsakymas yra ne. Tai reiškia kad bus vykdomas kodas, esantis po `antraip` einančiuose skliausteliuose.

### Ciklas „kol“

kol

-     kol loginė reikšmė { ... }

  Valdymo procedūra `kol` labai panaši į `jei`. Skirtumas tik tas, kad `kol` kartoja tarp skliaustelių esantį kodą tol, kol loginė reikšmė būna taip.

      $x = 1
      kol $x < 5 {
        priekin 10
        lauk 1
        $x = $x + 1
      }

  Pirmoje eilutėje kintamajam `$x` priskiriamas 1. Antroje tikrinama, ar `$x < 5`. Kadangi atsakymas į šį klausimą yra taip, tai valdymo procedūra `kol` vykdo jos skliausteliuose esantį kodą tol, kol `$x < 5` bus ne. Šiuo atveju kodas tarp skliaustelių bus įvykdytas 4 kartus, nes kiekvieną kartą įvykdžius penktą eilutę kintamojo `$x` reikšmė didinama vienetu.

### Ciklas „kartok“

kartok

-     kartok skaičius { ... }

  Valdymo procedūra `kartok` yra labai panaši į `kol`. Skirtumas tik tas, kad procedūra `kartok` tarp skliaustelių esantį kodą kartoją nurodytą skaičių kartų.

### Skaičiuojantysis ciklas „nuo“

nuo

-     nuo kintamasis = skaičius iki skaičius { ... }

  Ciklas `nuo` tai skaičiuojantysis ciklas, 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ė.

      nuo $x = 1 iki 10 {
        rašyk $x * 7
        priekin 15
      }

  Kiekvieną kartą vykdant tarp skliaustelių esantį kodą, `$x` kaskart padidėja vienetu tol, kol `$x` vertė tampa 10. Skliausteliuose esantis kodas spausdina `$x` ir 7 sandaugą. Įvykdžius šia programą, drobėje bus parašyta septinių daugybos lentelė.

  Numatytasis ciklo žingsnis yra 1, kitokį žingsnį galima nustatyti su

      nuo kintamasis = skaičius iki skaičius kas skaičius { ... }

### Ciklo nutraukimas

baik

-     baik

  Tuoj pat nutraukia dabartinį ciklą, ir vykdymą nukreipia po šio ciklo einančiai komandai.

### Nutraukti jūsų programos vykdymą

stabdyk

-     stabdyk

  Baigia jūsų programos vykdymą.

## Kurkite savas komandas komanda išmok

`išmok` yra ypatinga komanda, nes ja galima kurti savas komandas. Sukurtosios komandos gali reikalauti parametrų ir grąžinti rezultatą. Štai kaip kuriama nauja komanda:

    išmok apskritimas $x {
      kartok 36 {
        priekin $x
        kairėn 10
      }
    }

Naujosios komandos pavadinimas yra `apskritimas`. `apskritimas` reikalauja vieno parametro — skaičiaus, nurodančio apskritimo dydį. `apskritimas` negrąžina rezultato. Dabar, komandą `apskritimas` galima naudoti kaip ir bet kurią kitą komandą. Žvilgtelėkit į šį pavyzdį:

    išmok apskritimas $X {
      kartok 36 {
        priekin $X
        kairėn 10
      }
    }

    eik_x_y 200,200
    apskritimas 20

    eik_x_y 300,200
    apskritimas 40

Kitame pavyzdyje sukuriama komanda, kuri grąžina rezultatą.

    išmok faktorialas $x {
      $r = 1
      nuo $i = 1 iki $x {
        $r = $r * $i
      }
      grąžink $r
    }

    rašyk faktorialas 5

Šiame pavyzdyje kviečiama naujai sukurta komanda, pavadinta `faktorialas`. Jei šios komandos argumentas yra `5`, tai rezultatas yra `5*4*3*2*1`. Naudojant `grąžink`, nurodoma grąžinama reikšmė ir baigiamas naujos komandos vykdymas.

Komanda gali turėti daugiau nei vieną argumentą. Kitame pavyzdyje sukuriama komanda, kuri braižo keturkampį:

    išmok keturkampis $x, $y {
      priekin $y
      dešinėn 90
      priekin $x
      dešinėn 90
      priekin $y
      dešinėn 90
      priekin $x
      dešinėn 90
    }

Dabar, įvykdžius `keturkampis 50, 100`, vėžliukas drobėje nubrėš keturkampį.