# Dokumentacja programistyczna języka &turtlescript;

To jest dokumentacja &turtlescript;. W pierwszej części tego rozdziału poznasz reguły składni programów pisanych w &turtlescript;. Druga część opisuje wyłącznie operatory matematyczne, operatory logiczne (prawda/fałsz) i operatory porównania. Trzecia część to po prostu wielki wykaz wszystkich poleceń omówionych po kolei. Część czwarta wyjaśnia jak przypisać wartości do zmiennych. Na koniec, w części piątej wyjaśnimy, jak zorganizować wykonanie poleceń używając elementów sterujących oraz w części szóstej jak tworzyć własne polecenia z użyciem poznaj.

## Składnia &turtlescript;

Podobnie jak inne języki, &turtlescript; posiada różne typy słów i symboli. W języku polskim rozróżniamy czasowniki (przykładowo 'chodzić', czy 'śpiewać') i rzeczowniki (jak 'siostra' lub 'dom'), których używamy do różnych celów. &turtlescript; jest językiem programowania, który jest wykorzystywany do nauczenia &kturtle;, co ma robić.

W tej części niektóre typy słów i symboli języka &turtlescript; zostaną krótko omówione. Wyjaśnimy komentarze, polecenia i trzy rodzaje danych: liczby, teksty i wartości logiczne (prawda/fałsz).

### Komentarze

Program zawiera instrukcje, które są wykonywane podczas działania programu i tzw. komentarze. Komentarze nie są wykonywane, &kturtle; po prostu ignoruje je, kiedy program jest wykonywany. Komentarze są po to, aby ułatwić innym programistom zrozumienie Twojego programu. W języku &turtlescript; wszystko za znakiem `#` jest uznane za komentarz. Dla przykładu program, który nic nie robi:

    # ten mały program nic nie robi, to tylko komentarz!

Jest on trochę bezużyteczny, ale świetnie wyjaśnia zasadę.

Komentarze są bardzo użyteczne, kiedy program staje się trochę bardziej skomplikowany. To może pomóc innym programistom. W poniższym programie widać komentarze użyte razem z poleceniem pisz.

    # ten program został napisany przez Cies Breijs.
    pisz "ten tekst zostanie wypisany na płótnie"
    # poprzedni wiersz nie jest komentarzem, ale następny jest:
    # pisz "ten tekst nie zostanie wypisany!"

Pierwszy wiersz opisuje program. Drugi jest wykonany przez &kturtle;, który wypisuje `ten tekst zostanie wypisany na płótnie` na płótnie. Trzeci wiersz to komentarz. Czwarty też jest komentarzem, który zawiera w sobie polecenie języka &turtlescript;. Jeśli symbol `#` zostanie usunięty z ostatniego wiersza, to polecenie pisz zostanie wykonane przez &kturtle;. Programiści mówią: polecenie pisz z czwartego wiersza zostało 'odkomentarzowane'.

W edytorze kodów komentarze są podświetlone na kolor jasnoszary.

### Polecenia

Używając poleceń mówisz żółwiowi lub programowi &kturtle;, co ma robić. Niektóre polecenia wymagają wejścia, niektóre zwracają wyjście.

    # naprzód jest poleceniem wymagającym wejścia, tutaj test to liczba 100:
    naprzód 100

Pierwszy wiersz to komentarz. Drugi zawiera polecenie `naprzód` i liczbę `100`. Liczba nie jest częścią polecenia, jest to wejście polecenia.

Szczegółowy opis wszystkich poleceń &kturtle; znajduje się tutaj. Wbudowane polecenia są podświetlane kolorem ciemnoniebieskim.

### Liczby

Każdy użytkownik z pewnością wie trochę o liczbach. Sposób w jaki liczby używane są przez &kturtle; niezbyt różni się od języka mówionego czy matematyki.

Mamy liczby naturalne: `0`, `1`, `2`, `3`, `4`, `5`, itd. Liczby ujemne: `-1`, `-2`, `-3`, itd. Oraz liczby dziesiętne np: `0.1`, `3.14`, `33.3333`, `-5.05`, `-1.0`.

Liczby mogą być używane z operatorami matematycznymi i operatorami porównania. Możesz je również przechowywać w zmiennych. Liczby są podświetlane kolorem ciemnoczerwonym.

### Teksty

Najpierw przykład:

    pisz "Cześć, Jestem tekstem."

W tym przykładzie `pisz` jest poleceniem, a `"Cześć, Jestem tekstem."` tekstem. Tekst zaczyna i kończy się znakiem `"`, dzięki niemu &kturtle; rozpoznaje tekst.

Teksty mogą być umieszczane w zmiennych, tak jak liczby, ale w przeciwieństwie do nich, teksty nie mogą być używane z operatorami matematycznymi i operatorami porównania. Teksty są podświetlone kolorem czerwonym.

### Wartości logiczne (prawda/fałsz)

Są tylko dwie wartości logiczne: `prawda` i `fałsz`. Czasami są nazywane: włączone i wyłączone, tak i nie, jeden i zero, ale w języku &turtlescript; nazywamy je zawsze `prawda` i `fałsz`. Spójrz na ten fragment kodu &turtlescript;:

    $a = prawda

Patrząc na podgląd zobaczysz, że zmienna `$a` ma wartość `prawda` i typ "wartość logiczna".

Często wartości logiczne są wyjściem operatorów porównania, tak jak w poniższym fragmencie kodu &turtlescript;:

    $odpowiedź = 10 > 3

Zmienna `$odpowiedź` na wartość `prawda`, ponieważ `10` jest większe od `3`.

Wartości logiczne, `prawda` i `fałsz`, są podświetlone kolorem ciemnoczerwonym.

## Operatory matematyczne, logiczne i porównania

Tytuł tej części może brzmieć tajemniczo, ale to tylko pozory.

### Operatory matematyczne

Rozpoznawane są proste operatory matematyczne takie jak: dodawanie (`+`), odejmowanie (`-`), mnożenie (`*`), dzielenie (`/`) i potęgowanie (`^`).

Oto prosty przykład użycia operatorów matematycznych w języku &turtlescript;:

    $dodawanie     = 1 + 1
    $odejmowanie   = 20 - 5
    $mnożenie      = 15 * 2
    $dzielenie     = 30 / 30
    $potęgowanie   = 2 ^ 2

Rezultaty działań zostały przypisane do zmiennych. Używając podglądu możesz zobaczyć ich wartości.

Chcąc dokonać prostego obliczenia wpisujemy po prostu:

    pisz 2010-12

Teraz przykład z nawiasami:

    pisz ( ( 20 - 5 ) * 2 / 30 ) + 1

Wyrażenia wewnątrz nawiasów obliczane są najpierw. W tym przykładzie, najpierw zostanie obliczone 20-5, później pomnożone 2, podzielone przez 30, i zostanie dodane 1 (co daje 2). Nawiasy mogą być użyte także w innych sytuacjach.

&kturtle; posiada także bardziej zaawansowane działania w formie poleceń. Spójrz na poniższe polecenia, pamiętaj, że dotyczą zaawansowanych operacji: zaokrąglij, los, sqrt , pi, sin, cos, tan, arcsin, arccos, arctan.

### Operatory logiczne (prawda/fałsz)

Operatory matematyczne są stosowane głównie do liczb, a operatory logiczne do wartości logicznych (`prawda` i `fałsz`). Są tylko trzy operatory logiczne, mianowicie: `i`, `lub` oraz `nie`. Poniższy fragment kodu &turtlescript; pokazuje, jak je stosować:

    $i_1_1 = prawda i prawda  # -> prawda
    $i_1_0 = prawda i fałsz   # -> fałsz
    $i_0_1 = fałsz i prawda   # -> fałsz
    $i_0_0 = fałsz i fałsz    # -> fałsz

    $lub_1_1 = prawda lub prawda  # ->prawda
    $lub_1_0 = prawda lub fałsz   # -> prawda
    $lub_0_1 = fałsz lub prawda   # -> prawda
    $lub_0_0 = fałsz lub fałsz    # -> fałsz

    $nie_1 = nie prawda  # -> fałsz
    $nie_0 = nie fałsz   # -> prawda

Używając podglądu zobaczysz wartości, ponadto dopisaliśmy je w małych komentarzach na końcach wierszy. `i` zwraca `prawda` tylko, kiedy po oby stronach jest `prawda`. `lub` zwraca `prawda` jeśli przynajmniej jedna strona to `prawda`. Operator `nie` zamienia `prawda` na `fałsz` oraz `fałsz` na `prawda`.

Operatory logiczne są podświetlone kolorem różowym.

#### Więcej, bardziej zaawansowanych przykładów

Przemyśl poniższy przykład, który korzysta z `i`:

    $a = 1
    $b = 5
    jeśli (($a < 10) i ($b == 5)) i ($a < $b) {
      pisz "cześć"
    }

W tym fragmencie programu &turtlescript; trzy wyniki operatorów porównania są połączone operatorem `i`. To znaczy, że wszystkie trzy muszą mieć wartość "prawda", aby wypisać napis "cześć".

Przykład z użyciem `lub`:

    $n = 1
    jeśli ($n < 10) lub ($n == 2) {
      pisz "cześć"
    }

W tym programie &turtlescript; lewa strona `lub` ma wartość 'prawda', a prawa 'fałsz'. Ponieważ chociaż jedna strona operatora `lub` ma wartość 'prawda', `lub` zwraca prawda. To znaczy, że napis "cześć" jest wypisany.

Ostatni przykład, tym razem z użyciem operatora `nie`, który zmienia "prawda" na "fałsz" i "fałsz" na "prawda". Spójrz:

    $n = 1
    jeśli nie ($n == 3) {
      pisz "cześć"
    } jeśliNie {
      pisz "nie cześć ;-)"
    }

### Operatory porównania

Rozważ te proste porównanie:

    $odpowiedź = 10 > 3

Tutaj `10` jest porównane z `3` poprzez operator "większy od". Wynik tego porównania to wartość logiczna `prawda`, która jest przypisana do zmiennej `$odpowiedź`.

Wszystkie liczby i zmienne (zawierające liczby) mogą być porównywane dzięki operatorom porównania.

Oto wszystkie możliwe operatory porównania:

#### Typy pytań

`$A == $B` | równy | wynikiem jest prawda, kiedy `$A` jest równe `$B`
`$A != $B` | nierówny | wynikiem jest prawda, kiedy `$A` jest różne od `$B`
`$A > $B` | większe od | wynikiem jest prawda, kiedy `$A` jest większe od `$B`
`$A < $B` | mniejsze od | wynikiem jest prawda, kiedy `$A` jest mniejsze od `$B`
`$A >= $B` | większe od lub równe | wynikiem jest prawda, kiedy `$A` jest większe lub równe `$B`
`$A <= $B` | mniejsze od lub równe | wynikiem jest prawda, kiedy `$A` jest mniejsze lub równe `$B`

Pamiętaj, że $A i $B muszą być liczbami lub zmiennymi, które zawierają liczby.

## Polecenia

Używając poleceń mówimy żółwiowi lub &kturtle; by wykonywał konkretne rozkazy. Niektóre polecenia wymagają argumentów wyjściowych, a niektóre dają coś na wyjściu. W tej sekcji wyjaśniamy działanie wszystkich wbudowanych poleceń używanych przez &kturtle;. Możesz również użyć poznaj do tworzenia własnych poleceń. Wbudowane polecenia są podświetlone kolorem ciemnoniebieskim.

### Poruszanie żółwia

Do poruszania żółwia po ekranie służy kilka poleceń.

naprzód (np)

      naprzód X

  `naprzód` przesuwa żółwia do przodu o X pikseli. Gdy ołówek jest skierowany w dół żółw zostawia ślad. `naprzód` może być użyty za pomocą skrótu `np`

wstecz (ws)

      wstecz X

  `wstecz` przesuwa żółwia do tyłu o X pikseli. Gdy ołówek jest skierowany w dół żółw zostawia ślad. `wstecz` może być użyty za pomocą skrótu `ws`.

lewo (lw)

      lewo X

  `lewo` powoduje, że żółw skręca w lewo o X stopni. `lewo` może być użyty za pomocą skrótu `lw`.

prawo (pw)

      prawo X

  `prawo` powoduje, że żółw skręca w prawo o X stopni. `prawo` może być użyty za pomocą skrótu `pw`.

ustalKierunek (uk)

      ustalKierunek X

  `ustalKierunek` ustawia kierunek ruchu żółwia na X stopni licząc od zera, nie wiąże się to z poprzednim kierunkiem ruchu żółwia. `ustalKierunek` może być użyty za pomocą skrótu `uk`.

środek

      środek

  `środek` przesuwa żółwia na środek płótna.

idź

      idź X,Y

  Polecenie `idź` przesuwa żółwia na wskazaną lokalizację na płótnie. Ta lokalizacja to X pikseli od lewej strony płótna oraz Y pikseli od góry płótna.

idźx

      idźx X

  `idźx` powoduje przesunięcie żółwia do pozycji X pikseli od lewej strony płótna, podczas gdy wysokość pozostaje bez zmiany.

idźy

      idźy Y

  `idźy` powoduje przesunięcie żółwia do pozycji Y pikseli od góry płótna, podczas gdy odległość od lewego brzegu pozostaje bez zmian.

Polecenia `idź`, `idźx`, `idźy` i `środek` nie rysują linii, niezależnie od tego, czy pisak jest włączony, czy nie.

### Gdzie jest żółw?

Istnieją dwa polecenia, zwracające pozycję żółwia na ekranie.

pozx

  `pozx` zwraca liczbę pikseli od lewej na płótnie do bieżącej pozycji żółwia.

pozy

  `pozy` zwraca liczbę pikseli od góry płótna do bieżącej pozycji żółwia.

### Żółw posiada ołówek

Żółw posiada ołówek, który rysuje linię gdy żółw się przesuwa. Istnieje kilka poleceń zarządzających ołówkiem. W tej sekcji wyjaśniamy te polecenia.

podnieś (pod)

      podnieś

  `podnieś` podnosi ołówek z płótna. Gdy ołówek jest podniesiony, nie będzie rysowana linia w czasie poruszania się żółwia. Zobacz także `opuść`. `podnieś` może być użyte za pomocą skrótu `pod`.

opuść (opu)

      opuść

  `opuść` kładzie ołówek na płótnie. Gdy ołówek jest położony, będzie rysowana linia w czasie poruszania się żółwia. Zobacz także `podnieś`. `opuść` może być użyte za pomocą skrótu `opu`.

ustalGrubość (ugp)

      ustalGrubość X

  `ustalGrubość` ustawia grubość ołówka (grubość rysowanej linii) na X pikseli. `ustalGrubość` może być użyte za pomocą skrótu `ugp`.

ustalKolPis (ukp)

      ustalKolPis R,G,B

  `ustalKolPis` ustawia kolor ołówka. `ustalKolPis` przyjmuje kombinację RGB jako argument wejściowy. `ustalKolPis` może być użyty za pomocą skrótu `ukp`.

### Polecenia do zarządzania płótnem

Istnieje kilka poleceń sterujących płótnem.

ustalRozmiar (urt)

      ustalRozmiar X,Y

  Za pomocą polecenia `ustalRozmiar` można ustawić rozmiar płótna. Polecenie przyjmuje jako argumenty wejściowe liczby X i Y, gdzie X jest nową szerokością płótna w pikselach, a Y jest nową wysokością płótna w pikselach. `ustalRozmiar` może być użyte za pomocą skrótu `urt`.

ustalKolTła (ukt)

      ustalKolTła R,G,B

  Polecenie `ustalKolTła` ustawia kolor płótna. `ustalKolTła` przyjmuje kombinację RGB jako argument wejściowy. `ustalKolTła` może być użyty za pomocą skrótu `ukt`.

### polecenia czyszczenia

Istnieją dwa polecenia czyszczące płótno.

zmaż (cbg)

      zmaż

  Polecenie `zmaż` usuwa wszystkie rysunki z płótna. Pozostałe rzeczy zostają: pozycja i kąt ruchu żółwia, kolor płótna, widoczność żółwia i rozmiar płótna.

czyść

      czyść

  Polecenie `czyść` czyści bardziej dokładnie niż polecenie `zmaż`. Po wykonaniu polecenia `czyść` płótno wygląda jak po rozpoczęciu pracy &kturtle;. Żółw umieszczony jest na środku ekranu, kolor płótna jest biały, żółw rysuje czarną linię na płótnie, a rozmiar płótna jest ustawiony na 400 x 400 pikseli.

### Żółw jest sprajtem

Najpierw krótkie wytłumaczenie, czym jest sprajt: sprajty to małe obrazki, które mogą być przesuwane po ekranie, jak często to widzimy w grach komputerowych. Nasz żółwik jest także sprajtem. Dokładniejsze wyjaśnienie znajduje się w słowniku pod hasłem sprajty.

Poniżej znajduje się pełen przegląd poleceń do pracy ze sprajtami.

[Obecna wersja &kturtle; nie obsługuje jeszcze użycia sprajtów innych niż żółw. Kolejne wersje będą umożliwiać zmianę żółwia na coś zaprojektowanego przez siebie]

pokaż (pż)

      pokaż

  Polecenie `pokaż` sprawia, że żółw staje się widoczny (gdy był ukryty). `pokaż` może być użyty za pomocą skrótu `pż`.

ukryj (sż)

      ukryj

  Polecenie `ukryj` sprawia, że żółw jest ukrywany. Opcja używana gdy żółw nie pasuje do rysunku. `ukryj` może być użyty za pomocą skrótu `sż`.

### Czy żółw może pisać?

Odpowiedź brzmi: tak. Żółw potrafi pisać: wszystko co każe mu się pisać.

pisz

      pisz X

  `pisz` każe żółwiowi pisać podany tekst na płótnie. `pisz` przyjmuje jako argumenty wejściowe liczby i/lub teksty. Używając symbolu + można `napisać` kilka liczb i tekstów. Oto mały przykład:

      $rok = 2003
      $autor = "Cies"
      pisz $autor + " rozpoczął projekt KTurtle w roku " + $rok + " i dalej z radością nad nim pracuje!"

rozmiarTekstu

      rozmiarTekstu X

  `rozmiarTekstu` ustawia rozmiar czcionki używany przy poleceniu `pisz`. `rozmiarTekstu` przyjmuje liczbę jako argument wejściowy. Rozmiar czcionki podawany jest w pikselach.

### Polecenia matematyczne

Poniższe polecenia programu &kturtle; służą do bardziej zaawansowanych operacji matematycznych.

zaokrąglij

      zaokrąglij(x)

  `zaokrąglij` daną liczbę do najbliższej liczby całkowitej.

      pisz zaokrąglij(10.8)
      naprzód 20
      pisz zaokrąglij(10.3)

  Ten kod spowoduje wypisanie przez żółwia liczb 11 i 10.

losowa (los)

      losowa X,Y

  `losowa` przyjmuje argumenty wejściowe i daje argumenty wyjściowe. Jako argumenty wejściowe wymagane są dwie liczby, pierwsza (X) określa minimum argumentu wyjściowego, natomiast druga (Y) określa maksimum. Argument wyjściowy jest losowo wybraną liczbą z przedziału ograniczonego przez podane minimum i maksimum. Oto przykład:

      powtórz 500 {
        $x = losowa 1,20
        naprzód $x
        lewo 10 - $x
      }

  Używając polecenia `losowa` można dodać odrobiny chaosu do programu.

sqrt

      sqrt X

  Polecenie `sqrt` służy do znalezienia pierwiastka kwadratowego liczby X.

pi

      pi

  To polecenie zwraca stałą Pi, czyli `3.14159`.

sin
, cos
, tan

      sin X
      cos X
      tan X

  Te trzy polecenia reprezentują znane na całym świecie funkcje trygonometryczne `sin`, `cos` i `tan`. Wejściem tych poleceń jest liczba X.

arcsin
, arccos
, arctan

      arcsin X
      arccos X
      arctan X

  Te trzy polecenia są odwrotnościami funkcji sin, cos i tan. Wejściem tych poleceń jest liczba X.

### Argumenty wejściowe i pomoc przez okna dialogowe

Okno dialogowe jest małym, wyskakującym okienkiem, które zawiera pomoc dotyczącą argumentów wejściowych. &kturtle; posiada dwa polecenia do okien dialogowych, mianowicie: `wiadomość` i `spytaj`

wiadomość

      wiadomość X

  Polecenie `wiadomość` przyjmuje jako argument wejściowy tekst. Pokazuje się okno dialogowe zawierające właśnie ten tekst.

      wiadomość "Cies rozpoczął projekt KTurtle w roku 2003 i dalej z radością nad nim pracuje!"

spytaj

      spytaj X

  `spytaj` przyjmuje jako wejście tekst. Pokazuje go w oknie dialogowym (podobnie jak wiadomość), ale zawiera dodatkowo pole wejściowe. Po wpisaniu tam przez użytkownika liczby lub tekstu, zostanie on zapisany do zmiennej lub zwrócony jako wejście dla innego polecenia. Na przykład:

      $wejście = spytaj "W którym roku się urodziłeś?"
      $wyjście = 2003 - $wejście
      pisz "W 2003 roku miałeś " + $wyjście + " lat."

  Jeśli użytkownik anuluje okno lub nie wprowadzi nic, zmienna będzie pusta.

## Przypisanie do zmiennych

Najpierw zobaczmy jak wyglądają zmienne, a później jak przypisywać do nich wartości.

Zmienne są słowami, które zaczynają się znakiem $, w edytorze są podświetlone kolorem purpurowym.

Zmienne mogą przechowywać liczby, teksty lub wartości logiczne (prawda/fałsz). Dzięki przypisaniu, `=`, zmienne zyskują wartość. Przechowują ją, dopóki program działa lub do czasu, kiedy zostanie przypisana inna wartość.

Możesz używać raz przypisanych zmiennych, jakby były wartościami. Przykładowo jak w poniższym fragmencie kodu &turtlescript;:

    $x = 10
    $x = $x / 3
    pisz $x

Na początku do zmiennej `$x` jest przypisana liczba `10`. Później `$x` jest nadpisana jej wartością podzieloną przez `3` — `$x`, czyli wynikiem działania `10 / 3`. Na koniec `$x` jest wypisywana. W wierszu drugim i trzecim możesz zobaczyć jak `$x` jest użyte jako wartość.

Zmienne muszą mieć przypisane wartości, przed użyciem. Na przykład:

    wypisz $n

Wystąpi błąd przy wykonaniu.

Zwróć uwagę na następujący fragment kodu &turtlescript;:

    $a = 2004
    $b = 25

    # następne polecenie wypisze "2029"
    pisz $a + $b
    wstecz 30
    # następne polecenie wypisze "2004 plus 25 równa się 2029"
    pisz $a + " plus " + $b + " równa się " + ($a + $b)

W pierwszych dwóch wierszach do `$a` i `$b` są przypisane na 2004 i 25. Następnie są dwa polecenia `pisz` oraz `wstecz 30` pomiędzy nimi. Komentarze przed `pisz` wyjaśniają, co mają robić. Polecenie `wstecz 30` sprawia, że każde wypisanie jest w osobnym wierszu. Jak widzisz zmienne mogą być użyte, jak to co zawierają, mogą być łączone z każdego rodzaju operatorami lub być wejściem przy wywołaniu poleceń.

Jeszcze jeden przykład:

    $imię = spytaj "Jakie jest Twoje imię?"
    pisz "Cześć " + $imię + "! Powodzenia w w czasie nauki  programowania..."

Całkiem prosty. Ponownie możesz zobaczyć jak zmienna `$imię` jest traktowana jak tekst.

Kiedy używasz zmiennych, podgląd jest bardzo pomocny. Pokazuje wartości zmiennych, które są aktualnie używane.

## Kontrola wykonywania

Kontrolery wykonania umożliwiają użytkownikowi sterowanie wykonywaniem programu przez —.

Polecenia kontrolujące wykonanie programu podświetlone są na ciemnozielony kolor oraz mają pogrubioną czcionkę. Nawiasy używane są głównie z poleceniami kontrolującymi wykonanie i są podświetlone na czarno.

### Zatrzymanie żółwia

Napisawszy jakiś program w &kturtle; można zauważyć, że żółw bardzo szybko wykonuje rysunki. Poniższe polecenie zatrzymuje żółwia na określoną ilość czasu.

czekaj

      czekaj X

  `czekaj` zatrzymuje żółwia na X sekund.

      powtórz 36 {
        naprzód 5
        prawo 10
        czekaj 0.5
      }

  Kod powoduje rysowanie okręgu, ale po każdym kroku żółw zatrzymuje się na pół sekundy. Daje to wrażenie poruszania się żółwia w zwolnionym tempie.

### Instrukcja "jeśli"

jeśli

      if wartość logiczna { ... }

  Kod umieszczony w nawiasach jest wykonywany jedynie wtedy, `jeśli` wartość logiczna to prawda.

      $x = 6
      jeśli $x > 5 {
        pisz "$x jest większe od 5!"
      }

  W pierwszym wierszu `$x` jest ustawione jako 6. W drugim wierszu operator porównania jest wykorzystany do sprawdzenia `$x > 5`. Jako, że wartością jest prawda, bo 6 jest większe od 5, kontroler wykonania `jeśli` pozwoli na wykonanie kodu pomiędzy nawiasami.

### Jeżeli nie, innymi słowy: "przeciwnie"

jeśliNie

      jeśli wartość logiczna { ... } jeśliNie { ... }

  `jeśliNie` może być użyte w dodatku do wyrażenia sterującego `jeśli`. Kod pomiędzy nawiasami po `jeśliNie` jest wykonany tylko wtedy, gdy wartość logiczna to fałsz.

      czyść
      $x = 4
      jeśli $x > 5 {
        pisz "$x jest większe od 5!"
      } jeśliNie {
        pisz "$x jest mniejsze od 5!"
      }

  Operator porównania sprawdza wartość `$x > 5`. Jako że 4 nie jest większe od 5 przyjmuje wartość fałsz. To znaczy, że kod pomiędzy nawiasami po `jeśliNie` zostaje wykonana.

### Pętla "dopóki"

dopóki

      dopóki wartość logiczna { ... }

  Wyrażenie sterujące `dopóki` jest podobne do `jeśli`. Różnica polega na tym, że `dopóki` powtarza wykonywanie kodu między nawiasami dopóki wartość logiczna nie będzie fałszem.

      $x = 1
      dopóki $x < 5 {
        naprzód 10
        czekaj 1
        $x = $x + 1
      }

  W pierwszym wierszu `$x` zyskuje wartość 1. W następnym wierszu `$x < 5` jest sprawdzane. Jako, że to wyrażenie jest prawdą wyrażenie sterujące `dopóki` rozpoczyna wykonywanie kodu między nawiasami dopóki wartość `$x < 5` nie będzie fałszem. W tym przypadku kod w nawiasie zostanie wykonany 4 razy, gdyż po każdym wykonaniu piątym wierszu `$x` wzrasta o 1.

### Pętla "powtórz"

powtórz

      powtórz liczba { ... }

  Kontroler wykonawczy `powtórz` przypomina w dużej mierze `dopóki`. Różnica polega na tym, że `powtórz` powtarza (w pętli) kod między nawiasami tyle razy, jaką ma wartość przekazana liczba.

### Pętla "dla", pętla zliczająca

dla

      dla zmienna = liczba do liczba { ... }

  Pętla `dla` jest pętlą zliczającą, czyli zlicza za użytkownika. Pierwsza liczba przypisywana jest do zmiennej przy pierwszym obiegu pętli. W każdym obiegu liczba jest powiększana aż do osiągnięcia wartości drugiej liczby.

      dla $x = 1 do 10 {
        pisz $x * 7
        naprzód 15
      }

  Za każdym razem gdy kod w nawiasach jest wykonywany wartość zmiennej `$x` zwiększa się o 1, dopóki zmienna `$x` nie osiągnie wartości 10. Kod w nawiasach wypisuje wartość zmiennej `$x` pomnożonej przez 7. Po wykonaniu programu na płótnie będzie można zobaczyć tabele wielokrotności liczby 7.

  Domyślny rozmiar polecenia co pętli to 1 możesz użyć innej wartości z

      dla zmienna = liczba do liczba co liczba { ... }

### Zostaw pętlę

przerwij

      przerwij

  Kończy niezwłocznie bieżącą pętlę i przenosi kontrolę do wyrażenia obecnego przy tej pętli.

### Zatrzymanie wykonania Twojego programu

wyjdź

      wyjdź

  Kończy wykonywanie Twojego programu.

## Tworzenie własnych poleceń za pomocą nauczyciela

`poznaj` jest specjalnym poleceniem, służącą do tworzenia własnych poleceń. Utworzone polecenia mogą przyjmować argumenty wejściowe i zwracać argumenty wyjściowe. Zobaczmy jak tworzone są nowe polecenia:

    poznaj okrąg $x {
      powtórz 36 {
        naprzód $x
        lewo 10
      }
    }

Nowe polecenie zostanie nazwane `okrąg`. `okrąg` oczekuje jednego argumentu wejściowego, liczby określającej rozmiar okręgu. `okrąg` nie zwraca żadnego argumentu wyjściowego. Polecenie `okrąg` może być teraz używane jak normalne polecenie w reszcie kodu. Oto przykład:

    poznaj okrąg $X {
      powtórz 36 {
        naprzód $X
        lewo 10
      }
    }

    idź 200,200
    okrąg 20

    idź 300,200
    okrąg 40

W następnym przykładzie tworzone jest polecenie zwracające wartość.

    poznaj silnia $x {
      $s = 1
      dla $i = 1 do $x {
        $s = $s * $i
      }
      wynik $s
    }

    pisz silnia 5

W tym przykładzie zostało stworzone nowe polecenie o nazwie `silnia`. Jeśli wejściem tego polecenia jest `5`, to wyjściem jest `5*4*3*2*1`. Dzięki użyciu `wynik` wyjście jest określone i zwracane przy wykonaniu.

Polecenia mogą mieć więcej niż jedno wejście. W następnym przykładzie utworzona zostanie polecenie rysujące prostokąt.

    poznaj prostokąt $x, $y {
      naprzód $y
      prawo 90
      naprzód $x
      prawo 90
      naprzód $y
      prawo 90
      naprzód $x
      prawo 90
    }

Możesz teraz uruchomić `prostokąt 50, 100`, a żółw narysuje prostokąt na płótnie.