Warning, /education/kturtle/po/pl/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.
0001 <chapter id="reference"> 0002 <title 0003 >Dokumentacja programistyczna języka &turtlescript;</title> 0004 <para 0005 >To jest dokumentacja &turtlescript;. W pierwszej części tego rozdziału poznasz reguły <link linkend="grammar" 0006 >składni</link 0007 > programów pisanych w &turtlescript;. Druga część opisuje wyłącznie <link linkend="mathematical-operators" 0008 >operatory matematyczne</link 0009 >, <link linkend="boolean-operators" 0010 >operatory logiczne (prawda/fałsz)</link 0011 > i <link linkend="comparing-operators" 0012 >operatory porównania</link 0013 >. Trzecia część to po prostu wielki wykaz wszystkich <link linkend="commands" 0014 >poleceń</link 0015 > omówionych po kolei. Część czwarta wyjaśnia jak <link linkend="assignment-of-variables" 0016 >przypisać</link 0017 > wartości do <link linkend="assignment-of-variables" 0018 >zmiennych</link 0019 >. Na koniec, w części piątej wyjaśnimy, jak zorganizować wykonanie poleceń używając <link linkend="controlling-execution" 0020 >elementów sterujących</link 0021 > oraz w części szóstej jak tworzyć własne polecenia z użyciem <link linkend="learn" 0022 >poznaj</link 0023 >.</para> 0024 0025 <sect1 id="grammar"> 0026 <title 0027 >Składnia &turtlescript;</title> 0028 <para 0029 >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ć.</para> 0030 <para 0031 >W tej części niektóre typy słów i symboli języka &turtlescript; zostaną krótko omówione. Wyjaśnimy <link linkend="comment" 0032 >komentarze</link 0033 >, <link linkend="command" 0034 >polecenia</link 0035 > i trzy rodzaje danych: <link linkend="number" 0036 >liczby</link 0037 >, <link linkend="string" 0038 >teksty</link 0039 > i <link linkend="boolean-value" 0040 >wartości logiczne (prawda/fałsz)</link 0041 >.</para> 0042 0043 0044 <sect2 id="comment"> 0045 <title 0046 >Komentarze</title> 0047 <para 0048 >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 <userinput 0049 >#</userinput 0050 > jest uznane za komentarz. Dla przykładu program, który nic nie robi: <screen> 0051 # ten mały program nic nie robi, to tylko komentarz! 0052 </screen 0053 >Jest on trochę bezużyteczny, ale świetnie wyjaśnia zasadę.</para> 0054 <para 0055 >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 <link linkend="print" 0056 >pisz</link 0057 >.<screen> 0058 # ten program został napisany przez Cies Breijs. 0059 pisz "ten tekst zostanie wypisany na płótnie" 0060 # poprzedni wiersz nie jest komentarzem, ale następny jest: 0061 # pisz "ten tekst nie zostanie wypisany!" 0062 </screen 0063 > Pierwszy wiersz opisuje program. Drugi jest wykonany przez &kturtle;, który wypisuje <userinput 0064 >ten tekst zostanie wypisany na płótnie</userinput 0065 > na płótnie. Trzeci wiersz to komentarz. Czwarty też jest komentarzem, który zawiera w sobie polecenie języka &turtlescript;. Jeśli symbol <userinput 0066 >#</userinput 0067 > 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'.</para> 0068 <para 0069 >W <link linkend="the-editor" 0070 >edytorze kodów</link 0071 > komentarze są <glossterm 0072 >podświetlone</glossterm 0073 > na kolor jasnoszary.</para> 0074 </sect2> 0075 0076 <sect2 id="command"> 0077 <title 0078 >Polecenia</title> 0079 <para 0080 >Używając poleceń mówisz żółwiowi lub programowi &kturtle;, co ma robić. Niektóre polecenia wymagają wejścia, niektóre zwracają wyjście. <screen> 0081 # naprzód jest poleceniem wymagającym wejścia, tutaj test to liczba 100: 0082 naprzód 100 0083 </screen 0084 > Pierwszy wiersz to <link linkend="comment" 0085 >komentarz</link 0086 >. Drugi zawiera polecenie <userinput 0087 >naprzód</userinput 0088 > i <link linkend="number" 0089 >liczbę</link 0090 > <userinput 0091 >100</userinput 0092 >. Liczba nie jest częścią polecenia, jest to wejście polecenia.</para> 0093 <para 0094 >Szczegółowy opis wszystkich poleceń &kturtle; znajduje się <link linkend="commands" 0095 >tutaj</link 0096 >. Wbudowane polecenia są <glossterm 0097 >podświetlane</glossterm 0098 > kolorem ciemnoniebieskim.</para> 0099 </sect2> 0100 0101 <sect2 id="number"> 0102 <title 0103 >Liczby</title> 0104 <para 0105 >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> 0106 <para 0107 >Mamy liczby naturalne: <userinput 0108 >0</userinput 0109 >, <userinput 0110 >1</userinput 0111 >, <userinput 0112 >2</userinput 0113 >, <userinput 0114 >3</userinput 0115 >, <userinput 0116 >4</userinput 0117 >, <userinput 0118 >5</userinput 0119 >, itd. Liczby ujemne: <userinput 0120 >-1</userinput 0121 >, <userinput 0122 >-2</userinput 0123 >, <userinput 0124 >-3</userinput 0125 >, itd. Oraz liczby dziesiętne np: <userinput 0126 >0.1</userinput 0127 >, <userinput 0128 >3.14</userinput 0129 >, <userinput 0130 >33.3333</userinput 0131 >, <userinput 0132 >-5.05</userinput 0133 >, <userinput 0134 >-1.0</userinput 0135 >. </para> 0136 <para 0137 >Liczby mogą być używane z <link linkend="mathematical-operators" 0138 >operatorami matematycznymi</link 0139 > i <link linkend="comparing-operators" 0140 >operatorami porównania</link 0141 >. Możesz je również przechowywać w <link linkend="assignment-of-variables" 0142 >zmiennych</link 0143 >. Liczby są <glossterm 0144 >podświetlane</glossterm 0145 > kolorem ciemnoczerwonym.</para> 0146 </sect2> 0147 0148 <!-- constants like pi? --> 0149 0150 <sect2 id="string"> 0151 <title 0152 >Teksty</title> 0153 <para 0154 >Najpierw przykład: <screen> 0155 pisz "Cześć, Jestem tekstem." 0156 </screen 0157 > W tym przykładzie <userinput 0158 >pisz</userinput 0159 > jest poleceniem, a <userinput 0160 >"Cześć, Jestem tekstem."</userinput 0161 > tekstem. Tekst zaczyna i kończy się znakiem <userinput 0162 >"</userinput 0163 >, dzięki niemu &kturtle; rozpoznaje tekst.</para> 0164 <para 0165 >Teksty mogą być umieszczane w <link linkend="assignment-of-variables" 0166 >zmiennych</link 0167 >, tak jak <link linkend="number" 0168 >liczby</link 0169 >, ale w przeciwieństwie do nich, teksty nie mogą być używane z <link linkend="mathematical-operators" 0170 >operatorami matematycznymi</link 0171 > i <link linkend="comparing-operators" 0172 >operatorami porównania</link 0173 >. Teksty są <glossterm 0174 >podświetlone</glossterm 0175 > kolorem czerwonym.</para> 0176 </sect2> 0177 0178 <sect2 id="boolean-value"> 0179 <title 0180 >Wartości logiczne (prawda/fałsz)</title> 0181 <para 0182 >Są tylko dwie wartości logiczne: <userinput 0183 >prawda</userinput 0184 > i <userinput 0185 >fałsz</userinput 0186 >. Czasami są nazywane: włączone i wyłączone, tak i nie, jeden i zero, ale w języku &turtlescript; nazywamy je zawsze <userinput 0187 >prawda</userinput 0188 > i <userinput 0189 >fałsz</userinput 0190 >. Spójrz na ten fragment kodu &turtlescript;: <screen> 0191 $a = prawda 0192 </screen 0193 > Patrząc na <link linkend="the-inspector" 0194 >podgląd</link 0195 > zobaczysz, że <link linkend="assignment-of-variables" 0196 >zmienna</link 0197 > <userinput 0198 >$a</userinput 0199 > ma wartość <userinput 0200 >prawda</userinput 0201 > i typ "wartość logiczna".</para> 0202 <para 0203 >Często wartości logiczne są wyjściem <link linkend="comparing-operators" 0204 >operatorów porównania</link 0205 >, tak jak w poniższym fragmencie kodu &turtlescript;: <screen> 0206 $odpowiedź = 10 > 3 0207 </screen 0208 > <link linkend="assignment-of-variables" 0209 >Zmienna</link 0210 > <userinput 0211 >$odpowiedź</userinput 0212 > na wartość <userinput 0213 >prawda</userinput 0214 >, ponieważ <userinput 0215 >10</userinput 0216 > jest większe od <userinput 0217 >3</userinput 0218 >.</para> 0219 <para 0220 >Wartości logiczne, <userinput 0221 >prawda</userinput 0222 > i <userinput 0223 >fałsz</userinput 0224 >, są <glossterm 0225 >podświetlone</glossterm 0226 > kolorem ciemnoczerwonym.</para> 0227 </sect2> 0228 0229 </sect1> 0230 0231 0232 0233 <sect1 id="operators"> 0234 <title 0235 >Operatory matematyczne, logiczne i porównania</title> 0236 <para 0237 >Tytuł tej części może brzmieć tajemniczo, ale to tylko pozory.</para> 0238 0239 <sect2 id="mathematical-operators"> 0240 <title 0241 >Operatory matematyczne</title> 0242 <para 0243 >Rozpoznawane są proste operatory matematyczne takie jak: dodawanie (<userinput 0244 >+</userinput 0245 >), odejmowanie (<userinput 0246 >-</userinput 0247 >), mnożenie (<userinput 0248 >*</userinput 0249 >), dzielenie (<userinput 0250 >/</userinput 0251 >) i potęgowanie (<userinput 0252 >^</userinput 0253 >).</para> 0254 0255 <para 0256 >Oto prosty przykład użycia operatorów matematycznych w języku &turtlescript;: <screen> 0257 $dodawanie = 1 + 1 0258 $odejmowanie = 20 - 5 0259 $mnożenie = 15 * 2 0260 $dzielenie = 30 / 30 0261 $potęgowanie = 2 ^ 2 0262 </screen 0263 > Rezultaty działań zostały <link linkend="assignment-of-variables" 0264 >przypisane</link 0265 > do <link linkend="assignment-of-variables" 0266 >zmiennych</link 0267 >. Używając <link linkend="the-inspector" 0268 >podglądu</link 0269 > możesz zobaczyć ich wartości.</para> 0270 <para 0271 >Chcąc dokonać prostego obliczenia wpisujemy po prostu: <screen 0272 >pisz 2010-12 0273 </screen 0274 ></para> 0275 <para 0276 >Teraz przykład z nawiasami: <screen> 0277 pisz ( ( 20 - 5 ) * 2 / 30 ) + 1 0278 </screen 0279 > 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.</para> 0280 <para 0281 >&kturtle; posiada także bardziej zaawansowane działania w formie poleceń. Spójrz na poniższe polecenia, pamiętaj, że dotyczą zaawansowanych operacji: <link linkend="round" 0282 >zaokrąglij</link 0283 >, <link linkend="random" 0284 >los</link 0285 >, <link linkend="sqrt" 0286 >sqrt</link 0287 > , <link linkend="pi" 0288 >pi</link 0289 >, <link linkend="sin" 0290 >sin</link 0291 >, <link linkend="cos" 0292 >cos</link 0293 >, <link linkend="tan" 0294 >tan</link 0295 >, <link linkend="arcsin" 0296 >arcsin</link 0297 >, <link linkend="arccos" 0298 >arccos</link 0299 >, <link linkend="arctan" 0300 >arctan</link 0301 >.</para> 0302 </sect2> 0303 0304 <sect2 id="boolean-operators"> 0305 <title 0306 >Operatory logiczne (prawda/fałsz)</title> 0307 <para 0308 ><link linkend="mathematical-operators" 0309 >Operatory matematyczne</link 0310 > są stosowane głównie do <link linkend="number" 0311 >liczb</link 0312 >, a operatory logiczne do <link linkend="boolean-value" 0313 >wartości logicznych</link 0314 > (<userinput 0315 >prawda</userinput 0316 > i <userinput 0317 >fałsz</userinput 0318 >). Są tylko trzy operatory logiczne, mianowicie: <userinput 0319 >i</userinput 0320 >, <userinput 0321 >lub</userinput 0322 > oraz <userinput 0323 >nie</userinput 0324 >. Poniższy fragment kodu &turtlescript; pokazuje, jak je stosować: <screen> 0325 $i_1_1 = prawda i prawda # -> prawda 0326 $i_1_0 = prawda i fałsz # -> fałsz 0327 $i_0_1 = fałsz i prawda # -> fałsz 0328 $i_0_0 = fałsz i fałsz # -> fałsz 0329 0330 $lub_1_1 = prawda lub prawda # ->prawda 0331 $lub_1_0 = prawda lub fałsz # -> prawda 0332 $lub_0_1 = fałsz lub prawda # -> prawda 0333 $lub_0_0 = fałsz lub fałsz # -> fałsz 0334 0335 $nie_1 = nie prawda # -> fałsz 0336 $nie_0 = nie fałsz # -> prawda 0337 </screen 0338 > Używając <link linkend="the-inspector" 0339 >podglądu</link 0340 > zobaczysz wartości, ponadto dopisaliśmy je w małych komentarzach na końcach wierszy. <userinput 0341 >i</userinput 0342 > zwraca <userinput 0343 >prawda</userinput 0344 > tylko, kiedy po oby stronach jest <userinput 0345 >prawda</userinput 0346 >. <userinput 0347 >lub</userinput 0348 > zwraca <userinput 0349 >prawda</userinput 0350 > jeśli przynajmniej jedna strona to <userinput 0351 >prawda</userinput 0352 >. Operator <userinput 0353 >nie</userinput 0354 > zamienia <userinput 0355 >prawda</userinput 0356 > na <userinput 0357 >fałsz</userinput 0358 > oraz <userinput 0359 >fałsz</userinput 0360 > na <userinput 0361 >prawda</userinput 0362 >.</para> 0363 <para 0364 >Operatory logiczne są <glossterm 0365 >podświetlone</glossterm 0366 > kolorem różowym.</para> 0367 0368 <sect3 id="boolean-operators-advanced-examples"> 0369 <title 0370 >Więcej, bardziej zaawansowanych przykładów</title> 0371 <para 0372 >Przemyśl poniższy przykład, który korzysta z <userinput 0373 >i</userinput 0374 >: <screen> 0375 $a = 1 0376 $b = 5 0377 jeśli (($a < 10) i ($b == 5)) i ($a < $b) { 0378 pisz "cześć" 0379 } 0380 </screen 0381 > W tym fragmencie programu &turtlescript; trzy wyniki <link linkend="comparing-operators" 0382 >operatorów porównania</link 0383 > są połączone operatorem <userinput 0384 >i</userinput 0385 >. To znaczy, że wszystkie trzy muszą mieć wartość "prawda", aby wypisać napis "cześć".</para> 0386 0387 <para 0388 >Przykład z użyciem <userinput 0389 >lub</userinput 0390 >: <screen> 0391 $n = 1 0392 jeśli ($n < 10) lub ($n == 2) { 0393 pisz "cześć" 0394 } 0395 </screen 0396 > W tym programie &turtlescript; lewa strona <userinput 0397 >lub</userinput 0398 > ma wartość 'prawda', a prawa 'fałsz'. Ponieważ chociaż jedna strona operatora <userinput 0399 >lub</userinput 0400 > ma wartość 'prawda', <userinput 0401 >lub</userinput 0402 > zwraca prawda. To znaczy, że napis "cześć" jest wypisany.</para> 0403 0404 <para 0405 >Ostatni przykład, tym razem z użyciem operatora <userinput 0406 >nie</userinput 0407 >, który zmienia "prawda" na "fałsz" i "fałsz" na "prawda". Spójrz: <screen 0408 >$n = 1 0409 jeśli nie ($n == 3) { 0410 pisz "cześć" 0411 } jeśliNie { 0412 pisz "nie cześć ;-)" 0413 } 0414 </screen 0415 ></para> 0416 </sect3> 0417 </sect2> 0418 0419 <sect2 id="comparing-operators"> 0420 <title 0421 >Operatory porównania</title> 0422 <para 0423 >Rozważ te proste porównanie: <screen> 0424 $odpowiedź = 10 > 3 0425 </screen 0426 > Tutaj <userinput 0427 >10</userinput 0428 > jest porównane z <userinput 0429 >3</userinput 0430 > poprzez operator "większy od". Wynik tego porównania to <link linkend="boolean-value" 0431 >wartość logiczna</link 0432 > <userinput 0433 >prawda</userinput 0434 >, która jest przypisana do <link linkend="assignment-of-variables" 0435 >zmiennej</link 0436 > <userinput 0437 >$odpowiedź</userinput 0438 >.</para> 0439 <para 0440 >Wszystkie <link linkend="number" 0441 >liczby</link 0442 > i <link linkend="assignment-of-variables" 0443 >zmienne</link 0444 > (zawierające liczby) mogą być porównywane dzięki operatorom porównania.</para> 0445 <para 0446 >Oto wszystkie możliwe operatory porównania: <table 0447 > <title 0448 >Typy pytań</title 0449 > <tgroup cols="3" 0450 > <tbody 0451 > <row 0452 > <entry 0453 ><userinput 0454 >$A == $B</userinput 0455 ></entry 0456 > <entry 0457 >równy</entry 0458 > <entry 0459 >wynikiem jest <quote 0460 >prawda</quote 0461 >, kiedy <userinput 0462 >$A</userinput 0463 > jest równe <userinput 0464 >$B</userinput 0465 ></entry 0466 > </row 0467 > <row 0468 > <entry 0469 ><userinput 0470 >$A != $B</userinput 0471 ></entry 0472 > <entry 0473 >nierówny</entry 0474 > <entry 0475 >wynikiem jest <quote 0476 >prawda</quote 0477 >, kiedy <userinput 0478 >$A</userinput 0479 > jest różne od <userinput 0480 >$B</userinput 0481 ></entry 0482 > </row 0483 > <row 0484 > <entry 0485 ><userinput 0486 >$A > $B</userinput 0487 ></entry 0488 > <entry 0489 >większe od</entry 0490 > <entry 0491 > wynikiem jest <quote 0492 >prawda</quote 0493 >, kiedy <userinput 0494 >$A</userinput 0495 > jest większe od <userinput 0496 >$B</userinput 0497 ></entry 0498 > </row 0499 > <row 0500 > <entry 0501 ><userinput 0502 >$A < $B</userinput 0503 ></entry 0504 > <entry 0505 >mniejsze od</entry 0506 > <entry 0507 >wynikiem jest <quote 0508 >prawda</quote 0509 >, kiedy <userinput 0510 >$A</userinput 0511 > jest mniejsze od <userinput 0512 >$B</userinput 0513 ></entry 0514 > </row 0515 > <row 0516 > <entry 0517 ><userinput 0518 >$A >= $B</userinput 0519 ></entry 0520 > <entry 0521 >większe od lub równe</entry 0522 > <entry 0523 >wynikiem jest <quote 0524 >prawda</quote 0525 >, kiedy <userinput 0526 >$A</userinput 0527 > jest większe lub równe <userinput 0528 >$B</userinput 0529 ></entry 0530 > </row 0531 > <row 0532 > <entry 0533 ><userinput 0534 >$A <= $B</userinput 0535 ></entry 0536 > <entry 0537 >mniejsze od lub równe</entry 0538 > <entry 0539 >wynikiem jest <quote 0540 >prawda</quote 0541 >, kiedy <userinput 0542 >$A</userinput 0543 > jest mniejsze lub równe <userinput 0544 >$B</userinput 0545 ></entry 0546 > </row 0547 > </tbody 0548 > </tgroup 0549 > </table 0550 > Pamiętaj, że $A i $B muszą być <link linkend="number" 0551 >liczbami</link 0552 > lub <link linkend="assignment-of-variables" 0553 >zmiennymi</link 0554 >, które zawierają liczby.</para> 0555 </sect2> 0556 0557 0558 </sect1> 0559 0560 0561 0562 <sect1 id="commands"> 0563 <title 0564 >Polecenia</title> 0565 <para 0566 >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ć <link linkend="learn" 0567 >poznaj</link 0568 > do tworzenia własnych poleceń. Wbudowane polecenia są <glossterm 0569 >podświetlone</glossterm 0570 > kolorem ciemnoniebieskim.</para> 0571 0572 <sect2 id="moving-the-turtle"> 0573 <title 0574 >Poruszanie żółwia</title> 0575 <para 0576 >Do poruszania żółwia po ekranie służy kilka poleceń.</para> 0577 0578 <variablelist> 0579 <anchor id="forward"/> 0580 <varlistentry 0581 > 0582 <term 0583 >naprzód (np)<indexterm 0584 ><primary 0585 >naprzód (np)</primary 0586 ></indexterm 0587 ></term> 0588 <listitem 0589 ><para 0590 ><screen 0591 >naprzód X</screen> 0592 <userinput 0593 >naprzód</userinput 0594 > przesuwa żółwia do przodu o X pikseli. Gdy ołówek jest skierowany w dół żółw zostawia ślad. <userinput 0595 >naprzód</userinput 0596 > może być użyty za pomocą skrótu <userinput 0597 >np</userinput 0598 ></para 0599 ></listitem> 0600 </varlistentry> 0601 </variablelist> 0602 <variablelist> 0603 <anchor id="backward"/> 0604 <varlistentry 0605 > 0606 <term 0607 >wstecz (ws)<indexterm 0608 ><primary 0609 >wstecz (ws)</primary 0610 ></indexterm 0611 ></term> 0612 <listitem 0613 ><para 0614 ><screen 0615 >wstecz X</screen> 0616 <userinput 0617 >wstecz</userinput 0618 > przesuwa żółwia do tyłu o X pikseli. Gdy ołówek jest skierowany w dół żółw zostawia ślad. <userinput 0619 >wstecz</userinput 0620 > może być użyty za pomocą skrótu <userinput 0621 >ws</userinput 0622 >.</para 0623 ></listitem> 0624 </varlistentry> 0625 </variablelist> 0626 <variablelist> 0627 <anchor id="turnleft"/> 0628 <varlistentry 0629 > 0630 <term 0631 >lewo (lw)<indexterm 0632 ><primary 0633 >lewo (lw)</primary 0634 ></indexterm 0635 ></term> 0636 <listitem 0637 ><para 0638 ><screen 0639 >lewo X</screen> 0640 <userinput 0641 >lewo</userinput 0642 > powoduje, że żółw skręca w lewo o X stopni. <userinput 0643 >lewo</userinput 0644 > może być użyty za pomocą skrótu <userinput 0645 >lw</userinput 0646 >.</para 0647 ></listitem> 0648 </varlistentry> 0649 </variablelist> 0650 <variablelist> 0651 <anchor id="turnright"/> 0652 <varlistentry 0653 > 0654 <term 0655 >prawo (pw)<indexterm 0656 ><primary 0657 >prawo (pw)</primary 0658 ></indexterm 0659 ></term> 0660 <listitem 0661 ><para 0662 ><screen 0663 >prawo X</screen> 0664 <userinput 0665 >prawo</userinput 0666 > powoduje, że żółw skręca w prawo o X stopni. <userinput 0667 >prawo</userinput 0668 > może być użyty za pomocą skrótu <userinput 0669 >pw</userinput 0670 >.</para 0671 ></listitem> 0672 </varlistentry> 0673 </variablelist> 0674 <variablelist> 0675 <anchor id="direction"/> 0676 <varlistentry 0677 > 0678 <term 0679 >ustalKierunek (uk)<indexterm 0680 ><primary 0681 >ustalKierunek (uk)</primary 0682 ></indexterm 0683 ></term> 0684 <listitem 0685 ><para 0686 ><screen 0687 >ustalKierunek X</screen> 0688 <userinput 0689 >ustalKierunek</userinput 0690 > ustawia kierunek ruchu żółwia na X stopni licząc od zera, nie wiąże się to z poprzednim kierunkiem ruchu żółwia. <userinput 0691 >ustalKierunek</userinput 0692 > może być użyty za pomocą skrótu <userinput 0693 >uk</userinput 0694 >.</para 0695 ></listitem> 0696 </varlistentry> 0697 </variablelist> 0698 <variablelist> 0699 <anchor id="center"/> 0700 <varlistentry 0701 > 0702 <term 0703 >środek<indexterm 0704 ><primary 0705 >środek</primary 0706 ></indexterm 0707 ></term> 0708 <listitem 0709 ><para 0710 ><screen 0711 >środek</screen> 0712 <userinput 0713 >środek</userinput 0714 > przesuwa żółwia na środek płótna.</para 0715 ></listitem> 0716 </varlistentry> 0717 </variablelist> 0718 <variablelist> 0719 <anchor id="go"/> 0720 <varlistentry 0721 > 0722 <term 0723 >idź<indexterm 0724 ><primary 0725 >idź</primary 0726 ></indexterm 0727 ></term> 0728 <listitem 0729 ><para 0730 ><screen 0731 >idź X,Y</screen> 0732 Polecenie <userinput 0733 >idź</userinput 0734 > przesuwa żółwia na wskazaną lokalizację na płótnie. Ta lokalizacja to X <glossterm linkend="pixels" 0735 >pikseli</glossterm 0736 > od lewej strony płótna oraz Y <glossterm linkend="pixels" 0737 >pikseli</glossterm 0738 > od góry płótna. </para 0739 ></listitem> 0740 </varlistentry> 0741 </variablelist> 0742 <variablelist> 0743 <anchor id="gox"/> 0744 <varlistentry 0745 > 0746 <term 0747 >idźx<indexterm 0748 ><primary 0749 >idźx</primary 0750 ></indexterm 0751 ></term> 0752 <listitem 0753 ><para 0754 ><screen 0755 >idźx X</screen> 0756 <userinput 0757 >idźx</userinput 0758 > powoduje przesunięcie żółwia do pozycji X <glossterm linkend="pixels" 0759 >pikseli</glossterm 0760 > od lewej strony płótna, podczas gdy wysokość pozostaje bez zmiany.</para 0761 ></listitem> 0762 </varlistentry> 0763 </variablelist> 0764 <variablelist> 0765 <anchor id="goy"/> 0766 <varlistentry 0767 > 0768 <term 0769 >idźy<indexterm 0770 ><primary 0771 >idźy</primary 0772 ></indexterm 0773 ></term> 0774 <listitem 0775 ><para 0776 ><screen 0777 >idźy Y</screen> 0778 <userinput 0779 >idźy</userinput 0780 > powoduje przesunięcie żółwia do pozycji Y <glossterm linkend="pixels" 0781 >pikseli</glossterm 0782 > od góry płótna, podczas gdy odległość od lewego brzegu pozostaje bez zmian.</para 0783 ></listitem> 0784 </varlistentry> 0785 </variablelist> 0786 <note 0787 ><para 0788 >Polecenia <userinput 0789 >idź</userinput 0790 >, <userinput 0791 >idźx</userinput 0792 >, <userinput 0793 >idźy</userinput 0794 > i <userinput 0795 >środek</userinput 0796 > nie rysują linii, niezależnie od tego, czy pisak jest włączony, czy nie.</para> 0797 </note> 0798 </sect2> 0799 0800 <sect2 id="locate-the-turtle"> 0801 <title 0802 >Gdzie jest żółw?</title> 0803 <para 0804 >Istnieją dwa polecenia, zwracające pozycję żółwia na ekranie.</para> 0805 0806 <variablelist> 0807 <anchor id="getx"/> 0808 <varlistentry 0809 > 0810 <term 0811 >pozx<indexterm 0812 ><primary 0813 >pozx</primary 0814 ></indexterm 0815 ></term> 0816 <listitem 0817 ><para 0818 ><userinput 0819 >pozx</userinput 0820 > zwraca liczbę pikseli od lewej na płótnie do bieżącej pozycji żółwia.</para 0821 ></listitem> 0822 </varlistentry> 0823 </variablelist> 0824 <variablelist> 0825 <anchor id="gety"/> 0826 <varlistentry 0827 > 0828 <term 0829 >pozy<indexterm 0830 ><primary 0831 >pozy</primary 0832 ></indexterm 0833 ></term> 0834 <listitem 0835 ><para 0836 ><userinput 0837 >pozy</userinput 0838 > zwraca liczbę pikseli od góry płótna do bieżącej pozycji żółwia.</para 0839 ></listitem> 0840 </varlistentry> 0841 </variablelist> 0842 </sect2> 0843 0844 <sect2 id="pen"> 0845 <title 0846 >Żółw posiada ołówek</title> 0847 <para 0848 >Żół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.</para> 0849 <variablelist> 0850 <anchor id="penup"/> 0851 <varlistentry 0852 > 0853 <term 0854 >podnieś (pod)<indexterm 0855 ><primary 0856 >podnieś (pod)</primary 0857 ></indexterm 0858 ></term> 0859 <listitem 0860 ><para 0861 ><screen 0862 >podnieś</screen> 0863 <userinput 0864 >podnieś</userinput 0865 > podnosi ołówek z płótna. Gdy ołówek jest <quote 0866 >podniesiony</quote 0867 >, nie będzie rysowana linia w czasie poruszania się żółwia. Zobacz także <userinput 0868 >opuść</userinput 0869 >. <userinput 0870 >podnieś</userinput 0871 > może być użyte za pomocą skrótu <userinput 0872 >pod</userinput 0873 >.</para 0874 ></listitem> 0875 </varlistentry> 0876 </variablelist> 0877 <variablelist> 0878 <anchor id="pendown"/> 0879 <varlistentry 0880 > 0881 <term 0882 >opuść (opu)<indexterm 0883 ><primary 0884 >opuść (opu)</primary 0885 ></indexterm 0886 ></term> 0887 <listitem 0888 ><para 0889 ><screen 0890 >opuść</screen> 0891 <userinput 0892 >opuść</userinput 0893 > kładzie ołówek na płótnie. Gdy ołówek jest <quote 0894 >położony</quote 0895 >, będzie rysowana linia w czasie poruszania się żółwia. Zobacz także <userinput 0896 >podnieś</userinput 0897 >. <userinput 0898 >opuść</userinput 0899 > może być użyte za pomocą skrótu <userinput 0900 >opu</userinput 0901 >.</para 0902 ></listitem> 0903 </varlistentry> 0904 </variablelist> 0905 <variablelist> 0906 <anchor id="setpenwidth"/> 0907 <varlistentry 0908 > 0909 <term 0910 >ustalGrubość (ugp)<indexterm 0911 ><primary 0912 >ustalGrubość (ugp)</primary 0913 ></indexterm 0914 ></term> 0915 <listitem 0916 ><para 0917 ><screen 0918 >ustalGrubość X</screen> 0919 <userinput 0920 >ustalGrubość</userinput 0921 > ustawia grubość ołówka (grubość rysowanej linii) na X <glossterm linkend="pixels" 0922 >pikseli</glossterm 0923 >. <userinput 0924 >ustalGrubość</userinput 0925 > może być użyte za pomocą skrótu <userinput 0926 >ugp</userinput 0927 >.</para 0928 ></listitem> 0929 </varlistentry> 0930 </variablelist> 0931 <variablelist> 0932 <anchor id="setfgcolor"/> 0933 <varlistentry 0934 > 0935 <term 0936 >ustalKolPis (ukp)<indexterm 0937 ><primary 0938 >ustalKolPis (ukp)</primary 0939 ></indexterm 0940 ></term> 0941 <listitem 0942 ><para 0943 ><screen 0944 >ustalKolPis R,G,B</screen> 0945 <userinput 0946 >ustalKolPis</userinput 0947 > ustawia kolor ołówka. <userinput 0948 >ustalKolPis</userinput 0949 > przyjmuje <glossterm linkend="rgb" 0950 >kombinację RGB</glossterm 0951 > jako argument wejściowy. <userinput 0952 >ustalKolPis</userinput 0953 > może być użyty za pomocą skrótu <userinput 0954 >ukp</userinput 0955 >.</para 0956 ></listitem> 0957 </varlistentry> 0958 </variablelist> 0959 </sect2> 0960 0961 <sect2 id="canvas"> 0962 <title 0963 >Polecenia do zarządzania płótnem</title> 0964 <para 0965 >Istnieje kilka poleceń sterujących płótnem.</para> 0966 <variablelist> 0967 <anchor id="resizecanvas"/> 0968 <varlistentry> 0969 <term 0970 >ustalRozmiar (urt)<indexterm 0971 ><primary 0972 >ustalRozmiar (urt)</primary 0973 ></indexterm 0974 ></term> 0975 <listitem 0976 ><para 0977 ><screen 0978 >ustalRozmiar X,Y</screen> 0979 Za pomocą polecenia <userinput 0980 >ustalRozmiar</userinput 0981 > 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 <glossterm linkend="pixels" 0982 >pikselach</glossterm 0983 >, a Y jest nową wysokością płótna w <glossterm linkend="pixels" 0984 >pikselach</glossterm 0985 >. <userinput 0986 >ustalRozmiar</userinput 0987 > może być użyte za pomocą skrótu <userinput 0988 >urt</userinput 0989 >.</para 0990 ></listitem> 0991 </varlistentry> 0992 </variablelist> 0993 <variablelist> 0994 <anchor id="setbgcolor"/> 0995 <varlistentry 0996 > 0997 <term 0998 >ustalKolTła (ukt)<indexterm 0999 ><primary 1000 >ustalKolTła (ukt)</primary 1001 ></indexterm 1002 ></term> 1003 <listitem 1004 ><para 1005 ><screen 1006 >ustalKolTła R,G,B</screen> 1007 Polecenie <userinput 1008 >ustalKolTła</userinput 1009 > ustawia kolor płótna. <userinput 1010 >ustalKolTła</userinput 1011 > przyjmuje <glossterm linkend="rgb" 1012 >kombinację RGB</glossterm 1013 > jako argument wejściowy. <userinput 1014 >ustalKolTła</userinput 1015 > może być użyty za pomocą skrótu <userinput 1016 >ukt</userinput 1017 >.</para 1018 ></listitem> 1019 </varlistentry> 1020 </variablelist> 1021 </sect2> 1022 1023 <sect2 id="clean"> 1024 <title 1025 >polecenia czyszczenia</title> 1026 <para 1027 >Istnieją dwa polecenia czyszczące płótno.</para> 1028 <variablelist> 1029 <anchor id="clear"/> 1030 <varlistentry 1031 > 1032 <term 1033 >zmaż (cbg)<indexterm 1034 ><primary 1035 >zmaż (cbg)</primary 1036 ></indexterm 1037 ></term> 1038 <listitem 1039 ><para 1040 ><screen 1041 >zmaż</screen> 1042 Polecenie <userinput 1043 >zmaż</userinput 1044 > 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.</para 1045 ></listitem> 1046 </varlistentry> 1047 </variablelist> 1048 <variablelist> 1049 <anchor id="reset"/> 1050 <varlistentry 1051 > 1052 <term 1053 >czyść<indexterm 1054 ><primary 1055 >czyść</primary 1056 ></indexterm 1057 ></term> 1058 <listitem 1059 ><para 1060 ><screen 1061 >czyść</screen> 1062 Polecenie <userinput 1063 >czyść</userinput 1064 > czyści bardziej dokładnie niż polecenie <userinput 1065 >zmaż</userinput 1066 >. Po wykonaniu polecenia <userinput 1067 >czyść</userinput 1068 > 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.</para 1069 ></listitem> 1070 </varlistentry> 1071 </variablelist> 1072 </sect2> 1073 1074 <sect2 id="sprites"> 1075 <title 1076 >Żółw jest sprajtem</title> 1077 <para 1078 >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 <glossterm linkend="sprites" 1079 >sprajty</glossterm 1080 >. </para> 1081 <para 1082 >Poniżej znajduje się pełen przegląd poleceń do pracy ze sprajtami.</para> 1083 <para 1084 >[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> 1085 <variablelist> 1086 <anchor id="spriteshow"/> 1087 <varlistentry 1088 > 1089 <term 1090 >pokaż (pż)<indexterm 1091 ><primary 1092 >pokaż (pż)</primary 1093 ></indexterm 1094 ></term> 1095 <listitem 1096 ><para 1097 ><screen 1098 >pokaż</screen> 1099 Polecenie <userinput 1100 >pokaż</userinput 1101 > sprawia, że żółw staje się widoczny (gdy był ukryty). <userinput 1102 >pokaż</userinput 1103 > może być użyty za pomocą skrótu <userinput 1104 >pż</userinput 1105 >.</para 1106 ></listitem> 1107 </varlistentry> 1108 </variablelist> 1109 <variablelist> 1110 <anchor id="spritehide"/> 1111 <varlistentry 1112 > 1113 <term 1114 >ukryj (sż)<indexterm 1115 ><primary 1116 >ukryj (sż)</primary 1117 ></indexterm 1118 ></term> 1119 <listitem 1120 ><para 1121 ><screen 1122 >ukryj</screen> 1123 Polecenie <userinput 1124 >ukryj</userinput 1125 > sprawia, że żółw jest ukrywany. Opcja używana gdy żółw nie pasuje do rysunku. <userinput 1126 >ukryj</userinput 1127 > może być użyty za pomocą skrótu <userinput 1128 >sż</userinput 1129 >.</para 1130 ></listitem> 1131 </varlistentry> 1132 </variablelist> 1133 </sect2> 1134 1135 <sect2 id="writing"> 1136 <title 1137 >Czy żółw może pisać?</title> 1138 <para 1139 >Odpowiedź brzmi: <quote 1140 >tak</quote 1141 >. Żółw potrafi pisać: wszystko co każe mu się pisać.</para> 1142 <variablelist> 1143 <anchor id="print"/> 1144 <varlistentry 1145 > 1146 <term 1147 >pisz<indexterm 1148 ><primary 1149 >pisz</primary 1150 ></indexterm 1151 ></term> 1152 <listitem 1153 ><para 1154 ><screen 1155 >pisz X</screen> 1156 <userinput 1157 >pisz</userinput 1158 > każe żółwiowi pisać podany tekst na płótnie. <userinput 1159 >pisz</userinput 1160 > przyjmuje jako argumenty wejściowe liczby i/lub teksty. Używając symbolu <quote 1161 >+</quote 1162 > można <userinput 1163 >napisać</userinput 1164 > kilka liczb i tekstów. Oto mały przykład: <screen 1165 >$rok = 2003 1166 $autor = "Cies" 1167 pisz $autor + " rozpoczął projekt KTurtle w roku " + $rok + " i dalej z radością nad nim pracuje!" 1168 </screen> 1169 </para 1170 ></listitem> 1171 </varlistentry> 1172 </variablelist> 1173 <variablelist> 1174 <anchor id="fontsize"/> 1175 <varlistentry 1176 > 1177 <term 1178 >rozmiarTekstu<indexterm 1179 ><primary 1180 >rozmiarTekstu</primary 1181 ></indexterm 1182 ></term> 1183 <listitem 1184 ><para 1185 ><screen 1186 >rozmiarTekstu X</screen> 1187 <userinput 1188 >rozmiarTekstu</userinput 1189 > ustawia rozmiar czcionki używany przy poleceniu <userinput 1190 >pisz</userinput 1191 >. <userinput 1192 >rozmiarTekstu</userinput 1193 > przyjmuje liczbę jako argument wejściowy. Rozmiar czcionki podawany jest w <glossterm linkend="pixels" 1194 >pikselach</glossterm 1195 >.</para 1196 ></listitem> 1197 </varlistentry> 1198 </variablelist> 1199 </sect2> 1200 1201 <sect2 id="math-commands"> 1202 <title 1203 >Polecenia matematyczne</title> 1204 <para 1205 >Poniższe polecenia programu &kturtle; służą do bardziej zaawansowanych operacji matematycznych.</para> 1206 <variablelist> 1207 <anchor id="round"/> 1208 <varlistentry> 1209 <term 1210 >zaokrąglij<indexterm 1211 ><primary 1212 >zaokrąglij</primary 1213 ></indexterm 1214 ></term> 1215 <listitem 1216 ><para 1217 ><screen 1218 >zaokrąglij(x)</screen> 1219 <userinput 1220 >zaokrąglij</userinput 1221 > daną liczbę do najbliższej liczby całkowitej. <screen> 1222 pisz zaokrąglij(10.8) 1223 naprzód 20 1224 pisz zaokrąglij(10.3) 1225 </screen 1226 >Ten kod spowoduje wypisanie przez żółwia liczb 11 i 10.</para 1227 ></listitem> 1228 </varlistentry> 1229 </variablelist> 1230 <variablelist> 1231 <anchor id="random"/> 1232 <varlistentry 1233 > 1234 <term 1235 >losowa (los)<indexterm 1236 ><primary 1237 >losowa (los)</primary 1238 ></indexterm 1239 ></term> 1240 <listitem 1241 ><para 1242 ><screen 1243 >losowa X,Y</screen> 1244 <userinput 1245 >losowa</userinput 1246 > 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> 1247 powtórz 500 { 1248 $x = losowa 1,20 1249 naprzód $x 1250 lewo 10 - $x 1251 } 1252 </screen 1253 > Używając polecenia <userinput 1254 >losowa</userinput 1255 > można dodać odrobiny chaosu do programu.</para 1256 ></listitem> 1257 </varlistentry> 1258 </variablelist> 1259 <variablelist> 1260 <anchor id="sqrt"/> 1261 <varlistentry 1262 > 1263 <term 1264 >sqrt<indexterm 1265 ><primary 1266 >sqrt</primary 1267 ></indexterm 1268 ></term> 1269 <listitem 1270 ><para 1271 ><screen 1272 >sqrt X</screen> 1273 Polecenie <userinput 1274 >sqrt</userinput 1275 > służy do znalezienia pierwiastka kwadratowego liczby X.</para 1276 ></listitem> 1277 </varlistentry> 1278 </variablelist> 1279 <!-- 1280 <variablelist> 1281 <anchor id="exp"/> 1282 <varlistentry 1283 > 1284 <term 1285 >exp<indexterm 1286 ><primary 1287 >exp</primary 1288 ></indexterm 1289 ></term> 1290 <listitem 1291 ><para 1292 ><screen 1293 >sqrt X</screen> 1294 </para 1295 ></listitem> 1296 </varlistentry> 1297 </variablelist> 1298 --> 1299 <variablelist> 1300 <anchor id="pi"/> 1301 <varlistentry 1302 > 1303 <term 1304 >pi<indexterm 1305 ><primary 1306 >pi</primary 1307 ></indexterm 1308 ></term> 1309 <listitem 1310 ><para 1311 ><screen 1312 >pi</screen> 1313 To polecenie zwraca stałą Pi, czyli <userinput 1314 >3.14159</userinput 1315 >.</para 1316 ></listitem> 1317 </varlistentry> 1318 </variablelist> 1319 <variablelist> 1320 <anchor id="sin"/> 1321 <anchor id="cos"/> 1322 <anchor id="tan"/> 1323 <varlistentry> 1324 <term 1325 >sin<indexterm 1326 ><primary 1327 >sin</primary 1328 ></indexterm 1329 >, cos<indexterm 1330 ><primary 1331 >cos</primary 1332 ></indexterm 1333 >, tan<indexterm 1334 ><primary 1335 >tan</primary 1336 ></indexterm 1337 ></term> 1338 <listitem 1339 ><para> 1340 <screen 1341 >sin X 1342 cos X 1343 tan X 1344 </screen> 1345 Te trzy polecenia reprezentują znane na całym świecie funkcje trygonometryczne <userinput 1346 >sin</userinput 1347 >, <userinput 1348 >cos</userinput 1349 > i <userinput 1350 >tan</userinput 1351 >. Wejściem tych poleceń jest <link linkend="number" 1352 >liczba</link 1353 > X.</para 1354 ></listitem> 1355 </varlistentry> 1356 </variablelist> 1357 <variablelist> 1358 <anchor id="arcsin"/> 1359 <anchor id="arccos"/> 1360 <anchor id="arctan"/> 1361 <varlistentry> 1362 <term 1363 >arcsin<indexterm 1364 ><primary 1365 >arcsin</primary 1366 ></indexterm 1367 >, arccos<indexterm 1368 ><primary 1369 >arccos</primary 1370 ></indexterm 1371 >, arctan<indexterm 1372 ><primary 1373 >arctan</primary 1374 ></indexterm 1375 ></term> 1376 <listitem 1377 ><para> 1378 <screen 1379 >arcsin X 1380 arccos X 1381 arctan X 1382 </screen> 1383 Te trzy polecenia są odwrotnościami funkcji <link linkend="sin" 1384 >sin</link 1385 >, <link linkend="cos" 1386 >cos</link 1387 > i <link linkend="tan" 1388 >tan</link 1389 >. Wejściem tych poleceń jest <link linkend="number " 1390 >liczba</link 1391 > X.</para 1392 ></listitem> 1393 </varlistentry> 1394 </variablelist> 1395 </sect2> 1396 1397 <sect2 id="dialogs"> 1398 <title 1399 >Argumenty wejściowe i pomoc przez okna dialogowe</title> 1400 <para 1401 >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: <userinput 1402 >wiadomość</userinput 1403 > i <userinput 1404 >spytaj</userinput 1405 ></para> 1406 <variablelist> 1407 <anchor id="message"/> 1408 <varlistentry 1409 > 1410 <term 1411 >wiadomość<indexterm 1412 ><primary 1413 >wiadomość</primary 1414 ></indexterm 1415 ></term> 1416 <listitem 1417 ><para 1418 ><screen 1419 >wiadomość X</screen> 1420 Polecenie <userinput 1421 >wiadomość</userinput 1422 > przyjmuje jako argument wejściowy <link linkend="string" 1423 >tekst</link 1424 >. Pokazuje się okno dialogowe zawierające właśnie ten <link linkend="string" 1425 >tekst</link 1426 >. <screen 1427 >wiadomość "Cies rozpoczął projekt KTurtle w roku 2003 i dalej z radością nad nim pracuje!" 1428 </screen> 1429 </para 1430 ></listitem> 1431 </varlistentry> 1432 </variablelist> 1433 <variablelist> 1434 <anchor id="ask"/> 1435 <varlistentry 1436 > 1437 <term 1438 >spytaj<indexterm 1439 ><primary 1440 >spytaj</primary 1441 ></indexterm 1442 ></term> 1443 <listitem 1444 ><para 1445 ><screen 1446 >spytaj X</screen> 1447 <userinput 1448 >spytaj</userinput 1449 > przyjmuje jako wejście <link linkend="string" 1450 >tekst</link 1451 >. Pokazuje go w oknie dialogowym (podobnie jak <link linkend="message" 1452 >wiadomość</link 1453 >), ale zawiera dodatkowo pole wejściowe. Po wpisaniu tam przez użytkownika <link linkend="number" 1454 >liczby</link 1455 > lub <link linkend="string" 1456 >tekstu</link 1457 >, zostanie on zapisany do <link linkend="assignment-of-variables" 1458 >zmiennej</link 1459 > lub zwrócony jako wejście dla innego <link linkend="commands" 1460 >polecenia</link 1461 >. Na przykład: <screen> 1462 $wejście = spytaj "W którym roku się urodziłeś?" 1463 $wyjście = 2003 - $wejście 1464 pisz "W 2003 roku miałeś " + $wyjście + " lat." 1465 </screen 1466 > Jeśli użytkownik anuluje okno lub nie wprowadzi nic, <link linkend="assignment-of-variables" 1467 >zmienna</link 1468 > będzie pusta.</para 1469 ></listitem> 1470 </varlistentry> 1471 </variablelist> 1472 </sect2> 1473 1474 </sect1> 1475 1476 1477 1478 <sect1 id="assignment-of-variables"> 1479 <title 1480 >Przypisanie do zmiennych</title> 1481 <para 1482 >Najpierw zobaczmy jak wyglądają zmienne, a później jak przypisywać do nich wartości. </para> 1483 1484 <para 1485 >Zmienne są słowami, które zaczynają się znakiem <quote 1486 >$</quote 1487 >, w <link linkend="the-editor" 1488 >edytorze</link 1489 > są <glossterm 1490 >podświetlone</glossterm 1491 > kolorem purpurowym.</para> 1492 1493 <para 1494 >Zmienne mogą przechowywać <link linkend="number" 1495 >liczby</link 1496 >, <link linkend="string" 1497 >teksty</link 1498 > lub <link linkend="boolean-value" 1499 >wartości logiczne (prawda/fałsz)</link 1500 >. Dzięki przypisaniu, <userinput 1501 >=</userinput 1502 >, zmienne zyskują wartość. Przechowują ją, dopóki program działa lub do czasu, kiedy zostanie przypisana inna wartość.</para> 1503 1504 <para 1505 >Możesz używać raz przypisanych zmiennych, jakby były wartościami. Przykładowo jak w poniższym fragmencie kodu &turtlescript;: <screen> 1506 $x = 10 1507 $x = $x / 3 1508 pisz $x 1509 </screen 1510 > Na początku do zmiennej <userinput 1511 >$x</userinput 1512 > jest przypisana liczba <userinput 1513 >10</userinput 1514 >. Później <userinput 1515 >$x</userinput 1516 > jest nadpisana jej wartością podzieloną przez <userinput 1517 >3</userinput 1518 > — <userinput 1519 >$x</userinput 1520 >, czyli wynikiem działania <userinput 1521 >10 / 3</userinput 1522 >. Na koniec <userinput 1523 >$x</userinput 1524 > jest wypisywana. W wierszu drugim i trzecim możesz zobaczyć jak <userinput 1525 >$x</userinput 1526 > jest użyte jako wartość.</para> 1527 1528 <para 1529 >Zmienne muszą mieć przypisane wartości, przed użyciem. Na przykład: <screen> 1530 wypisz $n 1531 </screen 1532 > Wystąpi błąd przy wykonaniu.</para> 1533 1534 <para 1535 >Zwróć uwagę na następujący fragment kodu &turtlescript;: <screen> 1536 $a = 2004 1537 $b = 25 1538 1539 # następne polecenie wypisze "2029" 1540 pisz $a + $b 1541 wstecz 30 1542 # następne polecenie wypisze "2004 plus 25 równa się 2029" 1543 pisz $a + " plus " + $b + " równa się " + ($a + $b) 1544 </screen 1545 > W pierwszych dwóch wierszach do <userinput 1546 >$a</userinput 1547 > i <userinput 1548 >$b</userinput 1549 > są przypisane na 2004 i 25. Następnie są dwa polecenia <userinput 1550 >pisz</userinput 1551 > oraz <userinput 1552 >wstecz 30</userinput 1553 > pomiędzy nimi. Komentarze przed <userinput 1554 >pisz</userinput 1555 > wyjaśniają, co mają robić. Polecenie <userinput 1556 >wstecz 30</userinput 1557 > 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 <link linkend="operators" 1558 >operatorami</link 1559 > lub być wejściem przy wywołaniu <link linkend="commands" 1560 >poleceń</link 1561 >.</para> 1562 1563 <para 1564 >Jeszcze jeden przykład: <screen> 1565 $imię = spytaj "Jakie jest Twoje imię?" 1566 pisz "Cześć " + $imię + "! Powodzenia w w czasie nauki programowania..." 1567 </screen 1568 > Całkiem prosty. Ponownie możesz zobaczyć jak zmienna <userinput 1569 >$imię</userinput 1570 > jest traktowana jak tekst.</para> 1571 1572 <para 1573 >Kiedy używasz zmiennych, <link linkend="the-inspector" 1574 >podgląd</link 1575 > jest bardzo pomocny. Pokazuje wartości zmiennych, które są aktualnie używane.</para> 1576 </sect1> 1577 1578 1579 1580 <sect1 id="controlling-execution"> 1581 <title 1582 >Kontrola wykonywania</title> 1583 <para 1584 >Kontrolery wykonania umożliwiają użytkownikowi sterowanie wykonywaniem programu przez —.</para> 1585 <para 1586 >Polecenia kontrolujące wykonanie programu <glossterm 1587 >podświetlone</glossterm 1588 > są na ciemnozielony kolor oraz mają pogrubioną czcionkę. Nawiasy używane są głównie z poleceniami kontrolującymi wykonanie i są <glossterm 1589 >podświetlone</glossterm 1590 > na czarno.</para> 1591 1592 <sect2 id="wait"> 1593 <title 1594 >Zatrzymanie żółwia</title> 1595 <para 1596 >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.</para> 1597 <variablelist> 1598 <varlistentry> 1599 <term 1600 >czekaj<indexterm 1601 ><primary 1602 >czekaj</primary 1603 ></indexterm 1604 ></term> 1605 <listitem 1606 ><para 1607 ><screen 1608 >czekaj X</screen> 1609 <userinput 1610 >czekaj</userinput 1611 > zatrzymuje żółwia na X sekund. <screen> 1612 powtórz 36 { 1613 naprzód 5 1614 prawo 10 1615 czekaj 0.5 1616 } 1617 </screen 1618 > 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 1619 ></listitem> 1620 </varlistentry> 1621 </variablelist> 1622 </sect2> 1623 1624 <sect2 id="if"> 1625 <title 1626 >Instrukcja "jeśli"</title> 1627 <variablelist> 1628 <varlistentry> 1629 <term 1630 >jeśli<indexterm 1631 ><primary 1632 >jeśli</primary 1633 ></indexterm 1634 ></term> 1635 <listitem 1636 ><para 1637 ><screen 1638 >if <link linkend="boolean-value" 1639 >wartość logiczna</link 1640 > { ... }</screen> 1641 Kod umieszczony w nawiasach jest wykonywany jedynie wtedy, <userinput 1642 >jeśli</userinput 1643 > <link linkend="boolean-value" 1644 >wartość logiczna</link 1645 > to <quote 1646 >prawda</quote 1647 >. <screen> 1648 $x = 6 1649 jeśli $x > 5 { 1650 pisz "$x jest większe od 5!" 1651 } 1652 </screen 1653 > W pierwszym wierszu <userinput 1654 >$x</userinput 1655 > jest ustawione jako 6. W drugim wierszu <link linkend="comparing-operators" 1656 >operator porównania</link 1657 > jest wykorzystany do sprawdzenia <userinput 1658 >$x > 5</userinput 1659 >. Jako, że wartością jest <quote 1660 >prawda</quote 1661 >, bo 6 jest większe od 5, kontroler wykonania <userinput 1662 >jeśli</userinput 1663 > pozwoli na wykonanie kodu pomiędzy nawiasami. </para 1664 ></listitem> 1665 </varlistentry> 1666 </variablelist> 1667 </sect2> 1668 1669 <sect2 id="else"> 1670 <title 1671 >Jeżeli nie, innymi słowy: "przeciwnie"</title> 1672 <variablelist> 1673 <varlistentry> 1674 <term 1675 >jeśliNie<indexterm 1676 ><primary 1677 >jeśliNie</primary 1678 ></indexterm 1679 ></term> 1680 <listitem 1681 ><para 1682 ><screen 1683 >jeśli <link linkend="boolean-value" 1684 >wartość logiczna</link 1685 > { ... } jeśliNie { ... }</screen> 1686 <userinput 1687 >jeśliNie</userinput 1688 > może być użyte w dodatku do wyrażenia sterującego <link linkend="if" 1689 ><userinput 1690 >jeśli</userinput 1691 ></link 1692 >. Kod pomiędzy nawiasami po <userinput 1693 >jeśliNie</userinput 1694 > jest wykonany tylko wtedy, gdy <link linkend="boolean-value" 1695 >wartość logiczna</link 1696 > to <quote 1697 >fałsz</quote 1698 >. <screen> 1699 czyść 1700 $x = 4 1701 jeśli $x > 5 { 1702 pisz "$x jest większe od 5!" 1703 } jeśliNie { 1704 pisz "$x jest mniejsze od 5!" 1705 } 1706 </screen 1707 > <link linkend="comparing-operators" 1708 >Operator porównania</link 1709 > sprawdza wartość <userinput 1710 >$x > 5</userinput 1711 >. Jako że 4 nie jest większe od 5 przyjmuje wartość <quote 1712 >fałsz</quote 1713 >. To znaczy, że kod pomiędzy nawiasami po <userinput 1714 >jeśliNie</userinput 1715 > zostaje wykonana.</para 1716 ></listitem> 1717 </varlistentry> 1718 </variablelist> 1719 </sect2> 1720 1721 <sect2 id="while"> 1722 <title 1723 >Pętla "dopóki"</title> 1724 <variablelist> 1725 <varlistentry> 1726 <term 1727 >dopóki<indexterm 1728 ><primary 1729 >dopóki</primary 1730 ></indexterm 1731 ></term> 1732 <listitem 1733 ><para 1734 ><screen 1735 >dopóki <link linkend="boolean-value" 1736 >wartość logiczna</link 1737 > { ... }</screen> 1738 Wyrażenie sterujące <userinput 1739 >dopóki</userinput 1740 > jest podobne do <link linkend="if" 1741 ><userinput 1742 >jeśli</userinput 1743 ></link 1744 >. Różnica polega na tym, że <userinput 1745 >dopóki</userinput 1746 > powtarza wykonywanie kodu między nawiasami dopóki <link linkend="boolean-value" 1747 >wartość logiczna</link 1748 > nie będzie <quote 1749 >fałszem</quote 1750 >. <screen> 1751 $x = 1 1752 dopóki $x < 5 { 1753 naprzód 10 1754 czekaj 1 1755 $x = $x + 1 1756 } 1757 </screen 1758 > W pierwszym wierszu <userinput 1759 >$x</userinput 1760 > zyskuje wartość 1. W następnym wierszu <userinput 1761 >$x < 5</userinput 1762 > jest sprawdzane. Jako, że to wyrażenie jest <quote 1763 >prawdą</quote 1764 > wyrażenie sterujące <userinput 1765 >dopóki</userinput 1766 > rozpoczyna wykonywanie kodu między nawiasami dopóki wartość <userinput 1767 >$x < 5</userinput 1768 > nie będzie <quote 1769 >fałszem</quote 1770 >. W tym przypadku kod w nawiasie zostanie wykonany 4 razy, gdyż po każdym wykonaniu piątym wierszu <userinput 1771 >$x</userinput 1772 > wzrasta o 1.</para 1773 ></listitem> 1774 </varlistentry> 1775 </variablelist> 1776 </sect2> 1777 1778 <sect2 id="repeat"> 1779 <title 1780 >Pętla "powtórz"</title> 1781 <variablelist> 1782 <varlistentry> 1783 <term 1784 >powtórz<indexterm 1785 ><primary 1786 >powtórz</primary 1787 ></indexterm 1788 ></term> 1789 <listitem 1790 ><para 1791 ><screen 1792 >powtórz <link linkend="number" 1793 >liczba</link 1794 > { ... }</screen> 1795 Kontroler wykonawczy <userinput 1796 >powtórz</userinput 1797 > przypomina w dużej mierze <link linkend="while" 1798 ><userinput 1799 >dopóki</userinput 1800 ></link 1801 >. Różnica polega na tym, że <userinput 1802 >powtórz</userinput 1803 > powtarza (w pętli) kod między nawiasami tyle razy, jaką ma wartość przekazana liczba.</para 1804 ></listitem> 1805 </varlistentry> 1806 </variablelist> 1807 </sect2> 1808 1809 <sect2 id="for"> 1810 <title 1811 >Pętla "dla", pętla zliczająca</title> 1812 <variablelist> 1813 <varlistentry> 1814 <term 1815 >dla<indexterm 1816 ><primary 1817 >dla</primary 1818 ></indexterm 1819 ><indexterm 1820 ><primary 1821 >co</primary 1822 ></indexterm 1823 ></term> 1824 <listitem 1825 ><para 1826 ><screen 1827 >dla <link linkend="assignment-of-variables" 1828 >zmienna</link 1829 > = <link linkend="number" 1830 >liczba</link 1831 > do <link linkend="number" 1832 >liczba</link 1833 > { ... }</screen> 1834 Pętla <userinput 1835 >dla</userinput 1836 > jest <quote 1837 >pętlą zliczającą</quote 1838 >, 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.<screen> 1839 dla $x = 1 do 10 { 1840 pisz $x * 7 1841 naprzód 15 1842 } 1843 </screen 1844 > Za każdym razem gdy kod w nawiasach jest wykonywany wartość zmiennej <userinput 1845 >$x</userinput 1846 > zwiększa się o 1, dopóki zmienna <userinput 1847 >$x</userinput 1848 > nie osiągnie wartości 10. Kod w nawiasach wypisuje wartość zmiennej <userinput 1849 >$x</userinput 1850 > pomnożonej przez 7. Po wykonaniu programu na płótnie będzie można zobaczyć tabele wielokrotności liczby 7. </para> 1851 <para 1852 >Domyślny rozmiar polecenia co pętli to 1 możesz użyć innej wartości z <screen 1853 >dla <link linkend="assignment-of-variables" 1854 >zmienna</link 1855 > = <link linkend="number" 1856 >liczba</link 1857 > do <link linkend="number" 1858 >liczba</link 1859 > co <link linkend="number" 1860 >liczba</link 1861 > { ... }</screen 1862 ></para 1863 ></listitem> 1864 </varlistentry> 1865 </variablelist> 1866 </sect2> 1867 1868 <sect2 id="break"> 1869 <title 1870 >Zostaw pętlę</title> 1871 <variablelist> 1872 <varlistentry> 1873 <term 1874 >przerwij<indexterm 1875 ><primary 1876 >przerwij</primary 1877 ></indexterm 1878 ></term> 1879 <listitem 1880 ><para 1881 ><screen 1882 >przerwij</screen> 1883 Kończy niezwłocznie bieżącą pętlę i przenosi kontrolę do wyrażenia obecnego przy tej pętli.</para 1884 ></listitem> 1885 </varlistentry> 1886 </variablelist> 1887 </sect2> 1888 1889 <sect2 id="exit"> 1890 <title 1891 >Zatrzymanie wykonania Twojego programu</title> 1892 <variablelist> 1893 <varlistentry> 1894 <term 1895 >wyjdź<indexterm 1896 ><primary 1897 >wyjdź</primary 1898 ></indexterm 1899 ></term> 1900 <listitem 1901 ><para 1902 ><screen 1903 >wyjdź</screen> 1904 Kończy wykonywanie Twojego programu.</para 1905 ></listitem> 1906 </varlistentry> 1907 </variablelist> 1908 </sect2> 1909 </sect1> 1910 1911 1912 <sect1 id="learn"> 1913 1914 1915 <!--<sect2 id="name"> 1916 <title 1917 >Names</title> 1918 <para 1919 >When using the &turtlescript; programming language you create new things. If you write a program you will often need <link linkend="containers" 1920 >containers</link 1921 > and in some cases you need <link linkend="learn" 1922 >learn</link 1923 > to create new commands. When making a new command with <link linkend="learn" 1924 >learn</link 1925 > you will have to specify a name.</para> 1926 <para 1927 >You can choose any name, as long as it does not already have a meaning. For instance you cannot name a function <link linkend="forward" 1928 >forward</link 1929 >, since that name is already used for an internal command. 1930 <screen 1931 > 1932 # here forward is used as a new command, 1933 # but it already has a meaning so 1934 # this will produce an error: 1935 learn forward { 1936 print "this is invalid" 1937 } 1938 1939 # this works: 1940 learn myforward { 1941 print "this is ok" 1942 } 1943 </screen> 1944 Names can contain only letters, numbers and underscores (_). Yet they have to start with a letter. Container names have to start with the container prefix ($). 1945 <screen 1946 > 1947 # here forward is used as a container, 1948 # starting with the $ prefix, so it does 1949 # not conflict with the forward command 1950 $forward = 20 1951 print $forward 1952 </screen> 1953 </para> 1954 <para 1955 >Containers are <glossterm 1956 >highlighted</glossterm 1957 > with bolded purple in the <link linkend="the-editor" 1958 >code editor</link 1959 >.</para> 1960 <para> 1961 Please read the documentation on <link linkend="containers" 1962 >containers</link 1963 > and the <link linkend="learn" 1964 >learn</link 1965 > command for a better explanation and more examples. 1966 </para> 1967 </sect2 1968 >--> 1969 1970 1971 1972 1973 1974 <title 1975 >Tworzenie własnych poleceń za pomocą <quote 1976 >nauczyciela</quote 1977 ></title> 1978 <para 1979 ><userinput 1980 >poznaj</userinput 1981 > jest specjalnym poleceniem, służącą do tworzenia własnych poleceń. Utworzone polecenia mogą przyjmować argumenty <glossterm linkend="input-output" 1982 >wejściowe</glossterm 1983 > i zwracać <glossterm linkend="input-output" 1984 >argumenty wyjściowe</glossterm 1985 >. Zobaczmy jak tworzone są nowe polecenia: <screen> 1986 poznaj okrąg $x { 1987 powtórz 36 { 1988 naprzód $x 1989 lewo 10 1990 } 1991 } 1992 </screen 1993 > Nowe polecenie zostanie nazwane <userinput 1994 >okrąg</userinput 1995 >. <userinput 1996 >okrąg</userinput 1997 > oczekuje jednego <glossterm linkend="input-output" 1998 >argumentu wejściowego</glossterm 1999 >, liczby określającej rozmiar okręgu. <userinput 2000 >okrąg</userinput 2001 > nie zwraca żadnego <glossterm linkend="input-output" 2002 >argumentu wyjściowego</glossterm 2003 >. Polecenie <userinput 2004 >okrąg</userinput 2005 > może być teraz używane jak normalne polecenie w reszcie kodu. Oto przykład: <screen 2006 >poznaj okrąg $X { 2007 powtórz 36 { 2008 naprzód $X 2009 lewo 10 2010 } 2011 } 2012 2013 idź 200,200 2014 okrąg 20 2015 2016 idź 300,200 2017 okrąg 40 2018 </screen> 2019 </para> 2020 <para 2021 >W następnym przykładzie tworzone jest polecenie zwracające wartość. <screen> 2022 poznaj silnia $x { 2023 $s = 1 2024 dla $i = 1 do $x { 2025 $s = $s * $i 2026 } 2027 wynik $s 2028 } 2029 2030 pisz silnia 5 2031 </screen 2032 > W tym przykładzie zostało stworzone nowe polecenie o nazwie <userinput 2033 >silnia</userinput 2034 >. Jeśli wejściem tego polecenia jest <userinput 2035 >5</userinput 2036 >, to wyjściem jest <userinput 2037 >5*4*3*2*1</userinput 2038 >. Dzięki użyciu <userinput 2039 >wynik</userinput 2040 > <glossterm linkend="input-output" 2041 >wyjście</glossterm 2042 > jest określone i zwracane przy wykonaniu.</para> 2043 <para 2044 >Polecenia mogą mieć więcej niż jedno <glossterm linkend="input-output" 2045 > wejście</glossterm 2046 >. W następnym przykładzie utworzona zostanie polecenie rysujące prostokąt. <screen> 2047 poznaj prostokąt $x, $y { 2048 naprzód $y 2049 prawo 90 2050 naprzód $x 2051 prawo 90 2052 naprzód $y 2053 prawo 90 2054 naprzód $x 2055 prawo 90 2056 } 2057 </screen 2058 > Możesz teraz uruchomić <userinput 2059 >prostokąt 50, 100</userinput 2060 >, a żółw narysuje prostokąt na płótnie. </para> 2061 2062 </sect1> 2063 2064 </chapter>