diff options
Diffstat (limited to 'tde-i18n-pl/docs/tdeedu/kturtle/programming-reference.docbook')
-rw-r--r-- | tde-i18n-pl/docs/tdeedu/kturtle/programming-reference.docbook | 1727 |
1 files changed, 1727 insertions, 0 deletions
diff --git a/tde-i18n-pl/docs/tdeedu/kturtle/programming-reference.docbook b/tde-i18n-pl/docs/tdeedu/kturtle/programming-reference.docbook new file mode 100644 index 00000000000..d7120b30274 --- /dev/null +++ b/tde-i18n-pl/docs/tdeedu/kturtle/programming-reference.docbook @@ -0,0 +1,1727 @@ +<!--Dear translator: please NEVER translate the id or anything inside the tags as they are needed in english by the application + Thanks a lot in advance.--> +<chapter id="reference"> +<title +>Dokumentacja programistyczna języka &logo; &kturtle;</title> +<para +>Poniżej znajduje się dokumentacja języka &logo; używanego przez &kturtle;. W tym rozdziale najpierw zostaną krótko wymienione <link linkend="different-instructions" +>różne typy instrukcji</link +>. Następnie zostaną objaśnione <link linkend="commands" +>komendy</link +>. Po nich <link linkend="containers" +>kontenery</link +>, <link linkend="math" +>terminy matematyczne</link +>, <link linkend="questions" +>zapytania</link +> oraz <link linkend="controlling-execution" +>kontrolery wykonawcze</link +>. Na końcu pokazane zostanie jak za pomocą <link linkend="learn" +>nauczyciela</link +> tworzyć własne komendy.</para> + +<sect1 id="different-instructions"> +<title +>Różne typy instrukcji</title> +<para +>Jak każdy inny język programowania ,LOGO posiada różne typy wyrazów i symboli. Oto różnice pomiędzy typami i krótkie wyjaśnienia.</para> + +<sect2 id="command"> +<title +>Komendy</title> +<para +>Przy użyciu komend wskazujemy &kturtle; czynności do wykonania. Niektóre z komend potrzebują argumentów wejściowych a inne wyjściowych. <screen +># naprzód to komenda z argumentem wejściowym, tutaj jest to liczba 100: +naprzód 100 +</screen> +</para> +<para +>Szczegółowy opis wszystkich komend &kturtle; znajduje się <link linkend="commands" +>tutaj</link +>.</para> +</sect2> + +<sect2 id="number"> +<title +>Liczby</title> +<para +>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. </para> +<para +>Mamy liczby naturalne: <userinput +>0</userinput +>, <userinput +>1</userinput +>, <userinput +>2</userinput +>, <userinput +>3</userinput +>, <userinput +>4</userinput +>, <userinput +>5</userinput +>, itd. Liczby ujemne: <userinput +>-1</userinput +>, <userinput +>-2</userinput +>, <userinput +>-3</userinput +>, itd. Oraz liczby dziesiętne np: <userinput +>0.1</userinput +>, <userinput +>3.14</userinput +>, <userinput +>33.3333</userinput +>, <userinput +>-5.05</userinput +>, <userinput +>-1.0</userinput +>. </para> +<para +>Liczby mogą być używane w <link linkend="math" +>obliczeniach matematycznych</link +> oraz <link linkend="questions" +>zapytaniach</link +>. Mogą być również wkładane do <link linkend="containers" +>kontenerów</link +>.</para> +<para +>W <link linkend="the-code-editor" +>edytorze kodów</link +> liczby są <glossterm +>podświetlone</glossterm +> na niebiesko.</para> +</sect2> + +<sect2 id="string"> +<title +>Łańcuchy znaków</title> +<para +>Najpierw przykład: <screen> +pisz "Cześć, Jestem łańcuchem znaków." +</screen +> W tym przykładzie <userinput +>pisz</userinput +> jest komendą a <userinput +>"Cześć, Jestem łańcuchem znaków."</userinput +> łańcuchem znaków. Łańcuch zaczyna i kończy się znakiem <userinput +>"</userinput +>, dzięki niemu &kturtle; rozpoznaje łańcuch znakowy.</para> +<para +>Łańcuchy mogą być wkładane do <link linkend="containers" +>kontenerów</link +>. ale nie mogą być używane w <link linkend="math" +>obliczeniach matematycznych</link +> i <link linkend="questions" +>zapytaniach</link +>.</para> +<para +>W <link linkend="the-code-editor" +>edytorze kodów</link +> liczby są <glossterm +>podświetlone</glossterm +> na kolor ciemnoczerwony.</para> +</sect2> + + +<sect2 id="name"> +<title +>Nazwy</title> +<para +>Przy użyciu języka programowania &logo; tworzy się nowe obiekty. Pisząc programy często potrzebować będziemy <link linkend="containers" +>kontenerów</link +> a w niektórych przypadkach <link linkend="learn" +>nauczyciela</link +> do tworzenia nowych komend. Tworząc <link linkend="containers" +>kontener</link +> lub nową komendę za pomocą <link linkend="learn" +>nauczyciela</link +> należy określić ich nazwę.</para> +<para +>Można wybrać dowolną nazwę, pod warunkiem, iż nie odnosi się ona już do niczego. Np. nie można nazwać kontenera <link linkend="forward" +>naprzód</link +>, jako, że jest to nazwa komendy. <screen> +# tutaj naprzód jest używane jako kontener, ale ta nazwa jest już używana jako komenda +# zatem pokaże się komunikat błędu: +naprzód = 20 + +# natomiast działać będzie: +naprzód 20 +</screen +> Nazwy mogą zawierać tylko litery, cyfry oraz linie poziome (_). ale muszą zaczynać się od litery. </para> +<para +>Więcej przykładów oraz dokładniejsze wyjaśnienie znajduje się w dokumentacji <link linkend="containers" +>kontenerów</link +> oraz <link linkend="learn" +>nauczyciela</link +>. </para> +</sect2> + +<sect2 id="assignment"> +<title +>Przypisania</title> +<para +>Przypisań dokonuje się za pomocą symbolu <userinput +>=</userinput +>. W językach programowania zaleca się czytanie symbolu <userinput +>=</userinput +> nie jako równa się ale jako oznacza. Zwrot równa się bardziej odpowiada symbolowi <userinput +>==</userinput +> będącemu <link linkend="questions" +>zapytaniem</link +>.</para> +<para +>Przypisań dokonuje się z dwóch powodów, (1) by dodać zawartość do <link linkend="containers" +>kontenerów</link +>, oraz (2) by zmodyfikować zawartość kontenerów. Na przykład: <screen +>x = 10 +# kontener x zawiera teraz liczbę 10 +W = "Mój wiek to: " +# kontener W zawiera teraz łańcuch"Mój wiek to: " +# poniższa instrukcja drukuje na płótnie zawartość kontenerów 'W' i 'x' +pisz W + x +</screen> +</para> +<para +>Więcej przykładów znajduje się z sekcji wyjaśniającej <link linkend="containers" +>kontenery</link +>.</para> +</sect2> + +<sect2 id="math-symbols"> +<title +>Symbole matematyczne</title> +<para +>&kturtle; rozpoznaje wszystkie podstawowe symbole matematyczne: plus (<userinput +>+</userinput +>), minus (<userinput +>-</userinput +>), mnożenie (<userinput +>*</userinput +>), dzielenie (<userinput +>/</userinput +>) oraz nawiasy <userinput +>(</userinput +> i <userinput +>)</userinput +>.</para> +<para +>Dokładniejsze wyjaśnienie i więcej przykładów znajduje się w sekcji <link linkend="math" +>matematyka</link +>.</para> +</sect2> + +<sect2 id="question"> +<title +>Zapytania</title> +<para +>Możemy zadać proste pytania, na które możliwe są jedynie odpowiedzi 'prawda' lub 'fałsz'.</para> +<para +>Użycie pytań jest dokładniej wyjaśnione w sekcji <link linkend="questions" +>zapytania</link +>.</para> +</sect2> + +<sect2 id="questions-glue"> +<title +>Wyrazy łączące pytania</title> +<para +>Zapytania mogą być składane razem dzięki tak zwanym wyrazom łączącym. Takimi wyrazami są <userinput +>i</userinput +>, <userinput +>lub</userinput +>, oraz: <userinput +>nie</userinput +>.</para> +<para +>Użycie wyrazów łączących pytania wyjaśnione jest w sekcji <link linkend="question-glue" +>Łączenie pytań</link +>.</para> +</sect2> + + +<sect2 id="comment"> +<title +>Komentarze</title> +<para +>Komentarzami są linie zaczynające się od <userinput +>#</userinput +>. Na przykład: <screen> +# to jest komentarz! +pisz "to nie jest komentarz" +# poprzednia linia nie jest komentarzem natomiast wcześniejsza jest: +# pisz "to nie jest komentarz" +</screen +> Do kodu możemy dodawać komentarze dla nas bądź dla innych czytających. Komentarzy używa się do: (1) dodawania krótkich opisów programu, (2) wyjaśniania jak działa dany fragment kodu, oraz (3) wykomentowania linii kodu, które powinny być ignorowane (chwilowo) (patrz ostatnia linia przykładu).</para> +<para +>W <link linkend="the-code-editor" +>edytorze kodów</link +> komentarze są <glossterm +>podświetlone</glossterm +> na kolor ciemnożółty.</para> +</sect2> + +</sect1> + + +<sect1 id="commands"> +<title +>Komendy</title> +<para +>Używając komend mówimy żółwiowi lub &kturtle; by wykonywał konkretne polecenia. Niektóre komendy wymagają argumentów wyjściowych a niektóre dają coś na wyjściu. W tej sekcji wyjaśniamy działanie wszystkich komend używanych przez &kturtle;. Należy zauważyć, że wszystkie omawiane tutaj wbudowane komendy są w <link linkend="the-code-editor" +>edytorze kodu</link +> <glossterm +>podświetlone</glossterm +> na kolor ciemnozielony, co pomaga je rozróżnić.</para> + +<sect2 id="moving-the-turtle"> +<title +>Poruszanie żółwia</title> +<para +>Do poruszania żółwia po ekranie służy kilka komend</para> + +<sect3 id="forward"> + <title +>naprzód (np)</title> + <variablelist> + <varlistentry +> + <term +>naprzód</term> + <listitem +><para +><screen +>naprzód X</screen> +<userinput +>naprzód</userinput +> przesuwa żółwia do przodu o X pikseli. Gdy ołówek jest skierowany w dół żółw zostawia ślad. <userinput +>naprzód</userinput +> może być użyty za pomocą skrótu <userinput +>np</userinput +></para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="backward"> + <title +>wstecz (ws)</title> + <variablelist> + <varlistentry +> + <term +>w tył</term> + <listitem +><para +><screen +>wstecz X</screen> +<userinput +>wstecz</userinput +> przesuwa żółwia do tyłu o X pikseli. Gdy ołówek jest skierowany w dół żółw zostawia ślad. <userinput +>wstecz</userinput +> może być użyty za pomocą skrótu <userinput +>ws</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="turnleft"> + <title +>obróć_w_lewo (lw)</title> + <variablelist> + <varlistentry +> + <term +>skręć w lewo</term> + <listitem +><para +><screen +>obróć_w_lewo X</screen> +<userinput +>obróć_w_lewo</userinput +> powoduje, że żółw skręca w lewo o X stopni. <userinput +>obróć_w_lewo</userinput +> może być użyty za pomocą skrótu <userinput +>lw</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="turnright"> + <title +>obróć_w_prawo (pw)</title> + <variablelist> + <varlistentry +> + <term +>skręć w prawo</term> + <listitem +><para +><screen +>obróć_w_prawo X</screen> +<userinput +>obróć_w_prawo</userinput +> powoduje, że żółw skręca w prawo o X stopni. <userinput +>obróć_w_prawo</userinput +> może być użyty za pomocą skrótu <userinput +>pw</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="direction"> + <title +>kierunek (kie)</title> + <variablelist> + <varlistentry +> + <term +>kierunek</term> + <listitem +><para +><screen +>kierunek X</screen> +<userinput +>kierunek</userinput +> ustawia kierunek ruchu żółwia na X stopni licząc od zera, nie wiąże się to z poprzednim kierunkiem ruchu żółwia. <userinput +>kierunek</userinput +> może być użyty za pomocą skrótu <userinput +>kie</userinput +></para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="center"> + <title +>środek</title> + <variablelist> + <varlistentry +> + <term +>środek</term> + <listitem +><para +><screen +>środek</screen> +<userinput +>środek</userinput +> przesuwa żółwia na środek płótna.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="go"> + <title +>idź</title> + <variablelist> + <varlistentry +> + <term +>idź</term> + <listitem +><para +><screen +>idź X,Y</screen> +Komenda <userinput +>idź</userinput +> przesuwa żółwia na wskazaną lokalizację na płótnie. Ta lokalizacja to X <glossterm linkend="pixels" +>pikseli</glossterm +> od lewej strony płótna oraz Y <glossterm linkend="pixels" +>pikseli</glossterm +> od góry płótna. Użycie komendy <userinput +>idź</userinput +> nie powoduje, że żółw rysuje linie.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="gox"> + <title +>idźx</title> + <variablelist> + <varlistentry +> + <term +>idźx</term> + <listitem +><para +><screen +>idźx X</screen> +<userinput +>idźx</userinput +> powoduje przesunięcie żółwia do pozycji X <glossterm linkend="pixels" +>pikseli</glossterm +> od lewej strony płótna, podczas gdy wysokość pozostaje bez zmiany.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="goy"> + <title +>idźy</title> + <variablelist> + <varlistentry +> + <term +>idźy</term> + <listitem +><para +><screen +>idźy Y</screen> +<userinput +>idźy</userinput +> powoduje przesunięcie żółwia do pozycji Y <glossterm linkend="pixels" +>pikseli</glossterm +> od góry płótna, podczas gdy odległość od lewego brzegu pozostaje bez zmian.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="pen"> +<title +>Żółw posiada ołówek</title> +<para +>Żółw posiada ołówek, który rysuje linię gdy żółw się przesuwa. Istnieje kilka komend zarządzających ołówkiem. W tej sekcji wyjaśniamy te komendy.</para> +<sect3 id="penup"> + <title +>podnieś (pod)</title> + <variablelist> + <varlistentry +> + <term +>podnieś</term> + <listitem +><para +><screen +>podnieś</screen> +<userinput +>podnieś</userinput +> podnosi ołówek z płótna. Gdy ołówek jest <quote +>podniesiony</quote +> nie będzie rysowana linia gdy porusza się żółw. Zobacz także <userinput +>opuść</userinput +>. <userinput +>podnieś</userinput +> może być użyte za pomocą skrótu <userinput +>pod</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="pendown"> + <title +>opuść (opu)</title> + <variablelist> + <varlistentry +> + <term +>opuść</term> + <listitem +><para +><screen +>opuść</screen> +<userinput +>opuść</userinput +> kładzie ołówek na płótnie. Gdy ołówek jest <quote +>położony</quote +> będzie rysowana linia gdy porusza się żółw. Zobacz także <userinput +>podnieś</userinput +>. <userinput +>opuść</userinput +> może być użyte za pomocą skrótu <userinput +>opu</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="setpenwidth"> + <title +>ustaw_grubość_pisaka (ugp)</title> + <variablelist> + <varlistentry +> + <term +>ustaw_grubość_pisaka</term> + <listitem +><para +><screen +>ustaw_grubość_pisaka X</screen> +<userinput +>ustaw_grubość_pisaka</userinput +> ustawia grubość ołówka (grubość rysowanej linii) na X <glossterm linkend="pixels" +>pikseli</glossterm +>. <userinput +>ustaw_grubość_pisaka</userinput +> może być użyte za pomocą skrótu<userinput +>ugp</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="setfgcolor"> + <title +>kolor_pisaka (kp)</title> + <variablelist> + <varlistentry +> + <term +>kolor ołówka</term> + <listitem +><para +><screen +>kolor_pisaka R,G,B</screen> +<userinput +>kolor_pisaka</userinput +> ustawia kolor ołówka. <userinput +>kolor_pisaka</userinput +> przyjmuje <glossterm linkend="rgb" +>kombinację RGB</glossterm +> jako argument wejściowy. <userinput +>kolor_pisaka</userinput +> może być użyty za pomocą skrótu <userinput +>kp</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="canvas"> +<title +>Komendy do zarządzania płótnem</title> +<para +>Istnieje kilka komend sterujących płótnem.</para> +<sect3 id="resizecanvas"> + <title +>przeskaluj_tło (pt)</title> + <variablelist> + <varlistentry> + <term +>przeskaluj_tło</term> + <listitem +><para +><screen +>przeskaluj_tło X,Y</screen> +Za pomocą komendy <userinput +>przeskaluj_tło</userinput +> można ustawić rozmiar płótna. Komenda przyjmuje jako argumenty wejściowe liczby X i Y, gdzie X jest nową szerokością płótna w <glossterm linkend="pixels" +>pikselach</glossterm +>, a Y jest nową wysokością płótna w <glossterm linkend="pixels" +>pikselach</glossterm +>. <userinput +>przeskaluj_tło</userinput +> może być użyte za pomocą skrótu <userinput +>pt</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="setbgcolor"> + <title +>kolor_tła (kt)</title> + <variablelist> + <varlistentry +> + <term +>kolor_tła</term> + <listitem +><para +><screen +>kolor_tła R,G,B</screen> +Komenda <userinput +>kolor_tła</userinput +> ustawia kolor płótna. <userinput +>kolor_tła</userinput +> przyjmuje <glossterm linkend="rgb" +>kombinację RGB</glossterm +> jako argument wejściowy. <userinput +>kolor_tła</userinput +> może być użyty za pomocą skrótu <userinput +>kt</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="wrapon"> + <title +>zawijaj</title> + <variablelist> + <varlistentry +> + <term +>zawijaj</term> + <listitem +><para +><screen +>zawijaj</screen> +Przy pomocy komendy <userinput +>zawijaj</userinput +> można <quote +>włączyć</quote +> <glossterm linkend="wrapping" +>zawijanie</glossterm +> płótna. Znaczenie terminu <glossterm linkend="wrapping" +>zawijania</glossterm +> znajduje się w słowniku.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="wrapoff"> + <title +>nie_zawijaj</title> + <variablelist> + <varlistentry +> + <term +>nie_zawijaj</term> + <listitem +><para +><screen +>nie_zawijaj</screen> +Przy pomocy komendy <userinput +>zawijaj</userinput +> można <quote +>wyłączyć</quote +> <glossterm linkend="wrapping" +>zawijanie</glossterm +> płótna. Oznacza to, że żółw może wyjść poza płótno i <quote +>zgubić się</quote +>. Znaczenie terminu <glossterm linkend="wrapping" +>zawijania</glossterm +> znajduje się w słowniku.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="clean"> +<title +>Komendy czyszczenia</title> +<para +>Istnieją dwie komendy czyszczące płótno.</para> +<sect3 id="clear"> + <title +>czyść (cs)</title> + <variablelist> + <varlistentry +> + <term +>czyść</term> + <listitem +><para +><screen +>czyść</screen> +Komenda <userinput +>czyść</userinput +> 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. <userinput +>czyść</userinput +> może być użyta za pomocą skrótu <userinput +>cs</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="reset"> + <title +>zeruj</title> + <variablelist> + <varlistentry +> + <term +>zeruj</term> + <listitem +><para +><screen +>zeruj</screen> +Komenda<userinput +>zeruj</userinput +> czyści bardziej dokładnie niż komenda <userinput +>czyść</userinput +>. Po wykonaniu komendy <userinput +>zeruj</userinput +> 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ę.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="sprites"> +<title +>Żółw jest sprajtem</title> +<para +>Najpierw krótkie wytłumaczenia 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 <glossterm linkend="sprites" +>sprajty</glossterm +>. </para> +<para +>Poniżej znajduje się pełen przegląd komend do pracy ze sprajtami.</para> +<para +>[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]</para> +<sect3 id="spriteshow"> + <title +>pokaż</title> + <variablelist> + <varlistentry +> + <term +>pokaż (pk)</term> + <listitem +><para +><screen +>pokaż</screen> +Komenda <userinput +>pokaż</userinput +> sprawia, że żółw staje się widoczny (gdy był ukryty). <userinput +>pokaż</userinput +> może być użyty za pomocą skrótu <userinput +>pk</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="spritehide"> + <title +>ukryj (uk)</title> + <variablelist> + <varlistentry +> + <term +>ukryj</term> + <listitem +><para +><screen +>ukryj</screen> +Komenda <userinput +>ukryj</userinput +> sprawia, że żółw jest ukrywany. Opcja używana gdy żółw nie pasuje do rysunku. <userinput +>pokaż</userinput +> może być użyty za pomocą skrótu <userinput +>uk</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="writing"> +<title +>Czy żółw może pisać?</title> +<para +>Odpowiedź brzmi: <quote +>tak</quote +>. Żółw potrafi pisać: wszystko co każe mu się pisać.</para> +<sect3 id="print"> + <title +>pisz</title> + <variablelist> + <varlistentry +> + <term +>pisz</term> + <listitem +><para +><screen +>pisz X</screen> +<userinput +>pisz</userinput +> każe żółwiowi pisać podany tekst na płótnie. <userinput +>pisz</userinput +> przyjmuje jako argumenty wejściowe liczy i łańcuchy znaków. Używając symbolu <quote +>+</quote +> można <userinput +>napisać</userinput +> kilka liczb i łańcuchów znaków. Oto mały przykład: <screen +>rok = 2003 +autor = "Cies" +wypisuje autor + " rozpoczął projekt KTurtle w roku " + rok + " i dalej z radością nad nim pracuje!" +</screen> + </para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="fontsize"> + <title +>wielkość_czcionki</title> + <variablelist> + <varlistentry +> + <term +>wielkość_czcionki</term> + <listitem +><para +><screen +>wielkość_czcionki X</screen> +<userinput +>wielkość_czcionki</userinput +> ustawia rozmiar czcionki używany przy<userinput +>wypisywaniu</userinput +>. <userinput +>wielkość_czcionki</userinput +> przyjmuje liczbę jako argument wejściowy. Rozmiar czcionki podawany jest w <glossterm linkend="pixels" +>pikselach</glossterm +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="random"> +<title +>Komenda rzucająca kości za użytkownika</title> +<para +>Komenda rzucająca kości za użytkownika, nazywa się <userinput +>losowo</userinput +>, i jest bardzo użyteczna różnych przypadkach.</para> + <variablelist> + <varlistentry +> + <term +>losowo</term> + <listitem +><para +><screen +>losowo X,Y</screen> +<userinput +>losowo</userinput +> 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: <screen> +powtórz 500 [ + x = losowo 1,20 + naprzód x + obróć_w_lewo 10 - x +] +</screen +> Używając komendy <userinput +>losowo</userinput +> można dodać odrobiny chaosu do programu.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="dialogs"> +<title +>Argumenty wejściowe i pomoc przez okna dialogowe</title> +<para +>Okno dialogowe jest małym wyskakującym okienkiem, które zawiera pomoc dotyczącą argumentów wejściowych. &kturtle; posiada dwie komendy do okien dialogowych, mianowicie: <userinput +>wiadomość</userinput +> i <userinput +>okno_wejścia</userinput +></para> +<sect3 id="message"> + <title +>wiadomość</title> + <variablelist> + <varlistentry +> + <term +>wiadomość</term> + <listitem +><para +><screen +>wiadomość X</screen> +Komenda <userinput +>wiadomość</userinput +> przyjmuje jako argument wejściowy <link linkend="string" +>łańcuch znaków</link +>. Pokazuje się okno dialogowe zawierające tekst z <link linkend="string" +>łańcucha</link +>. <screen +>rok = 2003 +autor = "Cies" +wypisuje autor + " rozpoczął projekt KTurtle w roku " + rok + " i dalej z radością nad nim pracuje!" +</screen> + </para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="inputwindow"> + <title +>okno_wejścia</title> + <variablelist> + <varlistentry +> + <term +>okno_wejścia</term> + <listitem +><para +><screen +>okno_wejścia X</screen> +<userinput +>okno_wejścia</userinput +> jako argument wejściowy przyjmuje <link linkend="string" +>łańcuch znaków</link +>. Pokazuje się wyskakujące okno dialogowe zawierające tekst z łańcucha, tak jak <link linkend="message" +>wiadomość</link +>. Dodatkowo dodaje to pole wejściowe do okna. Przez to pole użytkownik może wprowadzić <link linkend="number" +>liczbę</link +> lub <link linkend="string" +>łańcuch</link +> który może być przechowywany w <link linkend="containers" +>kontenerze</link +>. Na przykład <screen> +wejście = okno_wejścia "Jaki jest Twój wiek?" +wyjście = 2003 - wejście +pisz "W 2003 będziesz mieć " + wyjście + " lat." +</screen +> Gdy użytkownik kasuje okno dialogowe, lub nie wprowadza niczego <link linkend="containers" +>kontener</link +> jest opróżniany.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +</sect1> + + + +<sect1 id="containers"> +<title +>Kontenery</title> +<para +>Kontenery są znakami bądź wyrazami używanymi przez programistów do przechowywania liczb lub tekstu. Kontenery zawierające liczby nazywane są <link linkend="variables" +>zmiennymi</link +>, kontenery zawierające tekst nazywane są <link linkend="string" +>łańcuchami</link +>.</para> + +<para +>Kontenery nie używane nie zawierają niczego. Przykład: <screen> +pisz N +</screen +> Nie zostanie wyświetlone nic. Jeżeli spróbujemy wykonać jakieś <link linkend="math" +>działanie matematyczne</link +> z pustym kontenerem pojawi się komunikat błędu. </para> + +<sect2 id="variables"> +<title +>Zmienne: kontenery liczbowe</title> +<para +>Rozpoczniemy od przykładu: <screen> +x = 3 +pisz x +</screen +> W pierwszej linii litera <userinput +>x</userinput +> staje się zmienną (kontenerem liczbowym). Jak widać wartość zmiennej <userinput +>x</userinput +> ustawiona jest na 3. W drugiej linii wartość jest wypisywana.</para> +<para +>Jeżeli chcielibyśmy wypisać znak <quote +>x</quote +> powinniśmy napisać <screen +>pisz "x" +</screen> +</para> +<para +>To było łatwe, teraz trudniejszy przykład: <screen> +A = 2004 +B = 25 +C = A + B + +# kolejna komenda wyświetli "2029" +pisz C +wstecz 30 +# kolejna komenda wyświetli "2004 plus 25" +pisz A + " plus " + B +wstecz 30 +# kolejna komenda wyświetli "1979" +pisz A - B +</screen +> W dwóch pierwszych linijkach zmienne <userinput +>A</userinput +> i <userinput +>B</userinput +> zostają ustawione na 2004 i 25. W trzeciej linii <userinput +>C</userinput +> zostaje ustawiona jako <userinput +>A + B</userinput +>, co wynosi 2029. Reszta przykładu składa się z 3 komend <userinput +>pisz</userinput +> z <userinput +>wstecz 30</userinput +> pomiędzy. <userinput +>wstecz 30</userinput +> zapewnia, że każde wyjście drukowane jest w nowej linii. W przykładzie można zaobserwować użycie zmiennych w <link linkend="math" +>obliczeniach matematycznych</link +>.</para> +</sect2> + +<sect2 id="strings"> +<title +>Kontenery zawierające tekst (łańcuchy)</title> +<para +>W kodzie programistycznym zwykły tekst rozpoczyna się i kończy zazwyczaj cudzysłowami. Do tej pory widzieliśmy: <screen> +pisz "Cześć programisto!" +</screen +> Tekst jest ograniczony cudzysłowami. Kawałki tego tekstu nazywamy <link linkend="strings" +>łańcuchami</link +>.</para> +<para +>Łańcuchy mogą być przechowywane w <link linkend="containers" +>kontenerach</link +> tak jak <link linkend="number" +>liczby</link +>. Łańcuchy są bardzo podobne do zmiennych. Największą różnicą jest to, że zamiast liczb zawierają tekst. Z tego powodu łańcuchy nie mogą być używane w <link linkend="math" +>wyrażeniach matematycznych</link +> i <link linkend="questions" +>pytaniach</link +>. Przykład użycia łańcuchów: <screen> +x = "Cześć " +imię = okno_wejścia "Podaj swoje imię..." +pisz x + imię + ", jak się masz?" +</screen +> W pierwszej linii <userinput +>x</userinput +> jest ustawiane jako <quote +>Cześć </quote +>. W drugiej linii łańcuch <userinput +>imię</userinput +> jest ustawiany jako wyjście komendy <userinput +>okno_wejścia</userinput +>. W kolejnej linii program wypisuje kompozycję trzech linii na płótnie.</para> +<para +>Program poprosi o podanie imienia. Po wprowadzeniu np. imienia <quote +>Paweł</quote +>, program wypisuje <quote +>Cześć Paweł jak się masz?</quote +>. Należy zauważyć, że plus (+) jest jedynym symbolem matematycznym używanym z łańcuchami.</para> +</sect2> +</sect1> + +<sect1 id="math"> +<title +>Czy żółw zna matematykę?</title> +<para +>Tak, &kturtle; zna matematykę. Potrafi dodawać (+), odejmować (-), mnożyć (*), a także dzielić (/). Oto przykład, który korzysta ze wszystkich tych działań: <screen> +a = 20 - 5 +b = 15 * 2 +c = 30 / 30 +d = 1 + 1 +pisz "a: "+a+", b: "+b+", c: "+c+", d: "+d +</screen +> Czy wiesz jakie wartości mają zmienne a, b, c oraz d? Proszę zauważyć <link linkend="assignment" +>przypisanie wartości zmiennej</link +> za pomocą symbolu <userinput +>=</userinput +>.</para> +<para +>Chcąc dokonać prostego obliczenia wpisujemy po prostu: <screen +>pisz 2004-12 +</screen +></para> +<para +>Teraz przykład z nawiasami: <screen> +pisz ( ( 20 - 5 ) * 2 / 30 ) + 1 +</screen +> 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).</para> +</sect1> + +<sect1 id="questions"> +<title +>Zadawanie pytań, otrzymywanie odpowiedzi...</title> +<para +><link linkend="if" +><userinput +>jeśli</userinput +></link +> i <link linkend="while" +><userinput +>dopóki</userinput +></link +> są <link linkend="controlling-execution" +>instrukcjami sterującymi</link +> które będą omawiane w następnej sekcji. W tej sekcji używamy instrukcji <link linkend="if" +><userinput +>jeśli</userinput +></link +> by wyjaśnić zapytania.</para> +<sect2 id="q"> +<title +>Zapytania</title> +<para +>Przykład prostego pytania: <screen> +x = 6 +jeśli x > 5 [ + pisz "cześć" +] +</screen +> Pytaniem w tym przykładzie jest <userinput +>x > 5</userinput +> . Jeżeli odpowiedź jest prawdziwa wykonywany jest kod w nawiasach. Zapytania są bardzo istotną częścią częścią programowania i są często używane z <link linkend="controlling-execution" +>instrukcjami sterującymi</link +>, jak np. <link linkend="if" +><userinput +>jeśli</userinput +></link +>. Wszystkie liczby i <link linkend="variables" +>zmienne</link +> (kontenery liczbowe) mogą być porównywane ze sobą przy pomocy zapytań.</para> +<para +>Poniżej znajdują się wszystkie możliwe pytania: <table> +<title +>Typy zapytań</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +><userinput +>a == b</userinput +></entry> +<entry +>równa się</entry> +<entry +>odpowiedź jest <quote +>prawdą</quote +> gdy <userinput +>a</userinput +> równa się <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a != b</userinput +></entry> +<entry +>nie równe</entry> +<entry +>odpowiedź jest <quote +>prawdą</quote +> gdy <userinput +>a</userinput +> nie równa się <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a > b</userinput +></entry> +<entry +>większe niż</entry> +<entry +>odpowiedź jest <quote +>prawdą</quote +> gdy <userinput +>a</userinput +> jest większe niż <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a < b</userinput +></entry> +<entry +>mniejsze niż</entry> +<entry +>odpowiedź jest <quote +>prawdą</quote +> gdy <userinput +>a</userinput +> jest mniejsze niż <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a >= b</userinput +></entry> +<entry +>większe lub równe</entry> +<entry +>odpowiedź jest <quote +>prawdą</quote +> gdy <userinput +>a</userinput +> jest większe lub równe <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a <= b</userinput +></entry> +<entry +>mniejsze lub równe</entry> +<entry +>odpowiedź jest <quote +>prawdą</quote +> gdy <userinput +>a</userinput +> mniejsze lub równe <userinput +>b</userinput +></entry> +</row> +</tbody> +</tgroup> +</table> +</para> +<para +>W <link linkend="the-code-editor" +>edytorze kodu</link +> pytania są <glossterm +>podświetlone</glossterm +> na kolor jasno niebieski.</para +> +</sect2> + +<sect2 id="question-glue"> +<title +>Łączniki pytań</title> +<para +>Wyrazy łączące pytania umożliwiają łączenie kilku małych pytań w jedno duże. <screen> +a = 1 +b = 5 +jeśli (a < 5) i (b == 5) [ + pisz "cześć" +] +</screen +> W tym przykładzie wyraz łączący <userinput +>i</userinput +> jest użyty do połączenia dwóch pytań (<userinput +>a < 5</userinput +>, <userinput +>b == 5</userinput +>). Jeżeli po jednej stronie <userinput +>i</userinput +> odpowiedź będzie <quote +>fałszywa</quote +> odpowiedź na całe pytanie będzie <quote +>fałszem</quote +>, gdyż używając wyrazu <userinput +>i</userinput +> obie strony muszą być <quote +>prawdziwe</quote +> by całe pytanie było <quote +>prawdą</quote +>. Proszę nie zapominać o użyciu nawiasów wokół pytań!</para> + +<para +>Poniżej znajduje się schematyczne wytłumaczenie: <table> +<title +>Wyrazy łączące pytania</title> +<tgroup cols="2"> +<tbody> +<row> +<entry +><userinput +>i</userinput +></entry> +<entry +>By wyrażenie było prawdziwe obie strony muszą być prawdziwe</entry> +</row> +<row> +<entry +><userinput +>lub</userinput +></entry> +<entry +>By wyrażenie było prawdziwe, wystarczy by jedna strona była prawdziwa</entry> +</row> +<row> +<entry +><userinput +>nie</userinput +></entry> +<entry +>Wyjątkowy przypadek: działa jedynie z pytaniami! Zmienia prawdę na fałsz a fałsz na prawdę.</entry> +</row> +</tbody> +</tgroup> +</table> +</para> +<para +>W <link linkend="the-code-editor" +>edytorze kodu</link +> wyrazy łączące pytania są <glossterm +>podświetlone</glossterm +> na purpurowo.</para> + +<sect3 id="and"> +<title +>i</title> +<para +>Gdy dwa pytania są połączone za pomocą <userinput +>i</userinput +>, obie strony <userinput +>i</userinput +> muszą być prawdziwe by wynik był prawdziwy. Na przykład: <screen> +a = 1 +b = 5 +jeśli ((a < 10) i (b == 5)) i (a < b) [ + pisz "cześć" +] +</screen +> W tym przykładzie można zaobserwować pytanie zagnieżdżone w pytaniu.</para> +</sect3> + +<sect3 id="or"> +<title +>lub</title> +<para +>Gdy jedno z dwóch wyrażeń połączonych wyrazem <userinput +>lub</userinput +> jest prawdziwe wynik jest prawdziwy. Na przykład: <screen> +a = 1 +b = 5 +jeśli ((a < 10) lub (b == 10)) lub (a == 0) [ + pisz "cześć" +] +</screen +> W tym przykładzie można zaobserwować pytanie zagnieżdżone w pytaniu.</para> +</sect3> + +<sect3 id="not"> +<title +>nie</title> +<para +><userinput +>nie</userinput +> jest specjalnym wyrazem, gdyż odnosi się tylko do jednego wyrażenia. <userinput +>nie</userinput +> zamienia fałsz na prawdę a prawdę na fałsz. Na przykład: <screen> +a = 1 +b = 5 +jeśli nie ((a < 10) i (b == 5)) [ + pisz "cześć" +] przeciwnie [ + pisz "nie cześć ;-)" +] +</screen +> W tym przykładzie wyrażenie jest prawdziwe, ale <userinput +>nie</userinput +> zamienia je na fałszywe. Więc na końcu na<link linkend="the-canvas" +>płótnie</link +><userinput +>"nie cześć ;-)"</userinput +>.</para> +</sect3> + +</sect2> + +</sect1> + +<sect1 id="controlling-execution"> +<title +>Kontola wykonywania</title> +<para +>Kontrolery wykonania umożliwiają użytkownikowi sterowanie wykonywaniem programu przez —.</para> +<para +>Komendy kontrolujące wykonanie programu <glossterm +>podświetlone</glossterm +> są na ciemnozielony kolor oraz mają pogrubioną czcionkę. Nawiasy kwadratowe używane są głównie z komendami kontrolującymi wykonanie i są <glossterm +>podświetlone</glossterm +> na jasno zielono.</para> + +<sect2 id="wait"> +<title +>Zatrzymanie żółwia</title> +<para +>Napisawszy jakiś program w &kturtle; można zauważyć, że żółw bardzo szybko wykonuje rysunki. Poniższa komenda zatrzymuje żółwia na określoną ilość czasu.</para> + <variablelist> + <varlistentry> + <term +>czekaj</term> + <listitem +><para +><screen +>czekaj X</screen> +<userinput +>czekaj</userinput +> zatrzymuje żółwia na X sekund. <screen> +powtórz 36 [ + naprzód 5 + obróć_w_prawo 10 + czekaj 0.5 +] +</screen +> 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.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="if"> +<title +>Instrukcja "jeśli"</title> + <variablelist> + <varlistentry> + <term +>jeśli</term> + <listitem +><para +><screen +>jeśli <link linkend="questions" +>pytanie</link +> [ ... ]</screen> +Kod umieszczony w nawiasach jest wykonywany jedynie wtedy gdy <userinput +>jeśli</userinput +> wartość <link linkend="questions" +>wyrażenia</link +> jest <quote +>prawdziwa</quote +>. Więcej informacji na temat <link linkend="questions" +>wyrażeń</link +> znaleźć można w <link linkend="questions" +>sekcji wyrażenia</link +>. <screen> +x = 6 +jeśli x > 5 [ + pisz "x jest większe niż pięć!" +] +</screen +> W pierwszej linijce <userinput +>x</userinput +> jest ustawiane jako 6. W drugiej linijce, znajduje się <link linkend="questions" +>pytanie</link +> <userinput +>x > 5</userinput +>. Jako, że wyrażenie to jest <quote +>prawdziwe</quote +> kontroler wykonania <userinput +>jeśli</userinput +> zezwala na wykonanie kodu w nawiasie.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="while"> +<title +>Pętla "dopóki"</title> + <variablelist> + <varlistentry> + <term +>dopóki</term> + <listitem +><para +><screen +>dopóki <link linkend="questions" +>wyrażenie</link +> [ ... ]</screen> +Wyrażenie sterujące <userinput +>dopóki</userinput +> jest podobne do <link linkend="if" +><userinput +>jeśli</userinput +></link +>. Różnica polega na tym, że <userinput +>dopóki</userinput +> powtarza wykonywanie kodu między nawiasami dopóki wartość <link linkend="questions" +>wyrażenia</link +> nie będzie <quote +>fałszywa</quote +>. <screen> +x = 1 +dopóki x < 5 [ + naprzód 10 + czekaj 1 + x = x + 1 +] +</screen +> W pierwszej linii zmienna <userinput +>x</userinput +> ustawiana jest na 1. W drugiej linii znajduje się <link linkend="questions" +>wyrażenie</link +> <userinput +>x < 5</userinput +>. Jako, że wyrażenie to jest <quote +>prawdziwe</quote +> wyrażenie sterujące <userinput +>dopóki</userinput +> rozpoczyna wykonywanie kodu między nawiasami dopóki wartość <link linkend="questions" +>wyrażenia</link +> nie będzie <quote +>fałszywa</quote +>. W tym przypadku kod w nawiasie zostanie wykonany 4 razy, gdyż po każdym wykonaniu piątej linii <userinput +>x</userinput +> wzrasta o 1.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="else"> +<title +>Jeżeli nie, innymi słowami: "przeciwnie"</title> + <variablelist> + <varlistentry> + <term +>przeciwnie</term> + <listitem +><para +><screen +>jeśli wyrażenie [ ... ] przeciwnie [ ... ]</screen> +<userinput +>przeciwnie</userinput +> może być użyte w dodatku do wyrażenia sterującego <link linkend="if" +><userinput +>jeśli</userinput +></link +>. Kod pomiędzy nawiasami po <userinput +>przeciwnie</userinput +> zostanie tylko wtedy gdy wartość <link linkend="questions" +>wyrażenia</link +> jest <quote +>fałszywa</quote +>. <screen> +zeruj +x = 4 +jeśli x > 5 [ + pisz "x jest większe niż pięć!" +] przeciwnie [ + pisz "x jest mniejsze niż 6!" +] +</screen +> <link linkend="questions" +>Wyrażenie</link +> sprawdza czy <userinput +>x</userinput +> jest większy niż 5. Ponieważ w pierwszej linijce <userinput +>x</userinput +> wynosi 4, wartość wyrażenia jest <quote +>fałszywa</quote +>. Oznacza to, że kod w nawiasach po <userinput +>przeciwnie</userinput +> zostanie wykonany.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="for"> +<title +>Pętla "dla", pętla zliczająca</title> + <variablelist> + <varlistentry> + <term +>dla</term> + <listitem +><para +><screen +>dla <userinput +>punkt początkowy</userinput +> do <userinput +>punkt końcowy</userinput +> [ ... ]</screen> +Pętla <userinput +>dla</userinput +> jest <quote +>pętlą zliczającą</quote +>, &ie; zlicza za użytkownika. <screen> +dla x = 1 do 10 [ + pisz x * 7 + naprzód 15 +] +</screen +> Za każdym razem gdy kod w nawiasach jest wykonywany wartość zmiennej <userinput +>x</userinput +> zwiększa się o 1, dopóki zmienna <userinput +>x</userinput +> nie osiągnie wartości 10. Kod w nawiasach wypisuje wartość zmiennej <userinput +>x</userinput +> pomnożonej przez 7. Po wykonaniu programu na płótnie będzie można zobaczyć tabele wielokrotności liczby 7.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +</sect1> + + +<sect1 id="learn"> +<title +>Tworzenie własnych komend za pomocą <quote +>nauczyciela</quote +></title> +<para +><userinput +>nauczyciel</userinput +> jest specjalną komendą, służącą do tworzenia własnych komend. Utworzone komendy mogą przyjmować argumenty <glossterm linkend="input-output" +>wejściowe</glossterm +> i zwracać <glossterm linkend="input-output" +>argumenty wyjściowe</glossterm +>. Zobaczmy jak tworzone są nowe komendy: <screen> +poznaj okrąg x [ + powtórz 36 [ + naprzód x + obróć_w_lewo 10 + ] +] +</screen +> Nowa komenda zostanie nazwana <userinput +>okrąg</userinput +>. <userinput +>okrąg</userinput +> oczekuje jednego <glossterm linkend="input-output" +>argumentu wejściowego</glossterm +>, liczby określającej rozmiar okręgu. <userinput +>okrąg</userinput +> nie zwraca żadnego <glossterm linkend="input-output" +>argumentu wyjściowego</glossterm +>. Komenda <userinput +>okrąg</userinput +> może być teraz używana jak normalna komenda w reszcie kodu. Oto przykład: <screen +>poznaj okrąg X [ + powtórz 36 [ + naprzód X + obróć_w_lewo 10 + ] +] + +idź 30,30 +okrąg 20 + +idź 40,40 +okrąg 50 +</screen> +</para> +<para +>W następnym przykładzie tworzona jest komenda zwracająca wartość. <screen> +zeruj + +poznaj pomnóżPrzezSiebie n [ + r = n * 1 + r = n * n + powrót r +] +i = okno_wejścia "Proszę wprowadzić liczbę i wcisnąć Enter" +pisz i + " pomnożone przez siebie daje: " + pomnóżPrzezSiebie i +</screen +> W przykładzie tworzona jest komenda <userinput +>pomnóżPrzezSiebie</userinput +>. Argument wejściowy komendy jest mnożony przez siebie i zwracany, za pomocą komendy <anchor id="return"/><userinput +>powrót</userinput +>. Komenda <userinput +>powrót</userinput +> umożliwia zwrócenie wartość z utworzonej własnej funkcji. </para> +</sect1> + +</chapter> |