Warning, /education/kturtle/po/uk/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.
0001 <chapter id="reference"> 0002 <title 0003 >Довідка з програмування на &turtlescript;</title> 0004 <para 0005 >Тут наведено довідник з мови &kturtle;, &turtlescript;. У першому розділі цієї глави ми поглянемо на деякі з аспектів <link linkend="grammar" 0006 >граматики</link 0007 > програм &turtlescript;. Другий розділ присвячено <link linkend="mathematical-operators" 0008 >математичним операторам</link 0009 >, <link linkend="boolean-operators" 0010 >булевим (логічним) операторам</link 0011 > і <link linkend="comparing-operators" 0012 >операторам порівняння</link 0013 >. Третій розділ є величезним списком всіх <link linkend="commands" 0014 >команд</link 0015 > з почерговим їх обговоренням. У четвертому розділі наведено пояснення щодо <link linkend="assignment-of-variables" 0016 >надання</link 0017 > значень <link linkend="assignment-of-variables" 0018 >змінним</link 0019 >. Нарешті, ми пояснимо як впорядкувати виконання команд за допомогою <link linkend="controlling-execution" 0020 >інструкцій регулювання виконання</link 0021 > у п’ятому розділі і як створювати власні команди за допомогою команди <link linkend="learn" 0022 ><userinput 0023 >вивчи</userinput 0024 ></link 0025 > у розділі під номером шість.</para> 0026 0027 <sect1 id="grammar"> 0028 <title 0029 >Граматика &turtlescript;</title> 0030 <para 0031 >Як і у будь-якій мові, у &turtlescript; існують різні типи слів і символів. В українській ми відрізняємо дієслова (наприклад «йти» або «співати») та іменники (наприклад «сестра» або «будинок»). Ці слова використовують з різною метою. &turtlescript; — це мова програмування, за її посередництвом ви можете повідомити &kturtle; про потрібні вам дії.</para> 0032 <para 0033 >У цьому розділі ми коротко зупинимося на деяких з різних типів слів та символів &turtlescript;. Ми надамо пояснення щодо <link linkend="comment" 0034 >коментарів</link 0035 >, <link linkend="command" 0036 >команд</link 0037 > та трьох інших типів буквених виразів: <link linkend="number" 0038 >чисел</link 0039 >, <link linkend="string" 0040 >рядків</link 0041 > і <link linkend="boolean-value" 0042 >булевих (так/ні) значень</link 0043 >.</para> 0044 0045 0046 <sect2 id="comment"> 0047 <title 0048 >Коментарі</title> 0049 <para 0050 >Програма складається з інструкцій, які виконуються після запуску команди, і так званих коментарів. Коментарі не виконуються, &kturtle; просто ігнорує їх під час виконання програми. Коментарі призначено для програмістів: вони допомагають їм краще розуміти програму. Все, що буде вказано після символу <userinput 0051 >#</userinput 0052 > у &turtlescript; вважається коментарем. Ось приклад невеличкої програми, яка не виконує жодних дій: <screen> 0053 # ця невеличка програма нічого не робить, вона складається лише з коментаря! 0054 </screen 0055 > Програма, хоч і зовсім непотрібна, але добре пояснює суть коментарів.</para> 0056 <para 0057 >Коментарі є дуже корисними, якщо програма стає трохи складнішою. Коментарі є «порадником» для інших програмістів. У наведеній нижче програмі коментарі використано разом з командою <link linkend="print" 0058 >напиши</link 0059 >. <screen> 0060 # Цю програму було створено Cies Breijs. 0061 напиши "цей текст буде написано на полотні" 0062 # попередній рядок не є коментарем, а наступний — коментар: 0063 # напиши "цей текст не буде написано!" 0064 </screen 0065 > У першому рядку наведено опис програми. Другий рядок буде виконано &kturtle;: черепашка намалює напис <userinput 0066 >цей текст буде написано на полотні</userinput 0067 > на полотні. Третій рядок є коментарем. У четвертому рядку наведено коментар з фрагментом коду &turtlescript;, якщо вилучити символ <userinput 0068 >#</userinput 0069 > з четвертого рядка, &kturtle; виконає інструкцію з друку. Програмісти кажуть: інструкцію «напиши» у четвертому рядку було «закоментовано».</para> 0070 <para 0071 >Закоментовані рядки <glossterm 0072 >підсвічуються</glossterm 0073 > світло-сірим кольором у <link linkend="the-editor" 0074 >редакторі коду</link 0075 >.</para> 0076 </sect2> 0077 0078 <sect2 id="command"> 0079 <title 0080 >Команди</title> 0081 <para 0082 >За допомогою команди ви можете повідомити черепашці або &kturtle; про те, що слід виконати певну дію. Для деяких команд потрібні вхідні дані, деякі команди самі виводять дані. <screen> 0083 # для команди вперед потрібні вхідні дані, у нашому випадку ними є число 100: 0084 вперед 100 0085 </screen 0086 > Перший рядок програми є <link linkend="comment" 0087 >коментарем</link 0088 >. У другому рядку міститься команда <userinput 0089 >вперед</userinput 0090 > і <link linkend="number" 0091 >число</link 0092 > <userinput 0093 >100</userinput 0094 >. Число не є частиною команди, воно є «вхідними даними» команди.</para> 0095 <para 0096 >Для роботи деяких команд, наприклад <userinput 0097 >перейди</userinput 0098 >, потрібно декілька вхідних значень. Ці декілька значень слід відокремлювати між собою символом <userinput 0099 >,</userinput 0100 > (комою).</para> 0101 <para 0102 >Щоб прочитати детальний огляд всіх команд, які підтримує &kturtle;, перейдіть за цим <link linkend="commands" 0103 >посиланням</link 0104 >. Вбудовані команди буде <glossterm 0105 >підсвічено</glossterm 0106 > темно-синім.</para> 0107 </sect2> 0108 0109 <sect2 id="number"> 0110 <title 0111 >Числа</title> 0112 <para 0113 >Скоріше за все, ви вже знаєте дещо про числа. Спосіб, у який числа використовуються у &kturtle;, не дуже відрізняється від розмовної мови або математики.</para> 0114 <para 0115 >Існують так звані натуральні числа: <userinput 0116 >0</userinput 0117 >, <userinput 0118 >1</userinput 0119 >, <userinput 0120 >2</userinput 0121 >, <userinput 0122 >3</userinput 0123 >, <userinput 0124 >4</userinput 0125 >, <userinput 0126 >5</userinput 0127 > тощо. Від’ємні числа: <userinput 0128 >-1</userinput 0129 >, <userinput 0130 >-2</userinput 0131 >, <userinput 0132 >-3</userinput 0133 > тощо. Крім того, існують десяткові дроби або числа з крапкою: <userinput 0134 >0.1</userinput 0135 >, <userinput 0136 >3.14</userinput 0137 >, <userinput 0138 >33.3333</userinput 0139 >, <userinput 0140 >-5.05</userinput 0141 >, <userinput 0142 >-1.0</userinput 0143 >. Символ <userinput 0144 >.</userinput 0145 > (крапка) є символом, що використовується для відокремлення дробової частини. </para> 0146 <para 0147 >Числа можна використовувати у <link linkend="mathematical-operators" 0148 >математичних операторах</link 0149 > і <link linkend="comparing-operators" 0150 >операторах порівняння</link 0151 >. Їх також можна зберігати у <link linkend="assignment-of-variables" 0152 >змінних</link 0153 >. Числа буде <glossterm 0154 >підсвічено</glossterm 0155 > темно-червоним кольором.</para> 0156 </sect2> 0157 0158 <!-- constants like pi? --> 0159 0160 <sect2 id="string"> 0161 <title 0162 >Рядки</title> 0163 <para 0164 >Спочатку наведемо приклад: <screen> 0165 напиши "Привіт, я — рядок." 0166 </screen 0167 > У цьому прикладі <userinput 0168 >напиши</userinput 0169 > — команда, а <userinput 0170 >"Привіт, я — рядок."</userinput 0171 > — рядок. Рядки починаються і закінчуються позначкою лапок, <userinput 0172 >"</userinput 0173 >, за цими позначками і розпізнає рядки програма &kturtle;.</para> 0174 <para 0175 >Рядки можна зберігати у <link linkend="assignment-of-variables" 0176 >змінних</link 0177 >, подібно до <link linkend="number" 0178 >чисел</link 0179 >. Але, на відміну від чисел, рядки не можна використовувати у <link linkend="mathematical-operators" 0180 >математичних діях</link 0181 > або <link linkend="comparing-operators" 0182 >діях з порівняння</link 0183 >. Рядки буде <glossterm 0184 >підсвічено</glossterm 0185 > червоним кольором.</para> 0186 </sect2> 0187 0188 <sect2 id="boolean-value"> 0189 <title 0190 >Булеві (так/ні) значення</title> 0191 <para 0192 >Існує лише два булевих значення: <userinput 0193 >так</userinput 0194 ><indexterm 0195 ><primary 0196 >так</primary 0197 ></indexterm 0198 > і <userinput 0199 >ні</userinput 0200 ><indexterm 0201 ><primary 0202 >ні</primary 0203 ></indexterm 0204 >. У цих значень є і інші назви: увімкнути і вимкнути, одиниця і нуль. Але у &turtlescript; ми завжди називатимемо їх <userinput 0205 >так</userinput 0206 > і <userinput 0207 >ні</userinput 0208 >. Погляньте на цей фрагмент коду &turtlescript;: <screen> 0209 $a = так 0210 </screen 0211 > Якщо ви зазирнете до вікна <link linkend="the-inspector" 0212 >інспектора</link 0213 > ви побачите, що значенням <link linkend="assignment-of-variables" 0214 >змінної</link 0215 > <userinput 0216 >$a</userinput 0217 > є <userinput 0218 >так</userinput 0219 >, і що ця змінна належить до булевого типу.</para> 0220 <para 0221 >Часто булеві значення є результатом обчислення <link linkend="comparing-operators" 0222 >оператора порівняння</link 0223 >, наприклад, у такому фрагменті коду &turtlescript;: <screen> 0224 $відповідь = 10 > 3 0225 </screen 0226 > Значенням <link linkend="assignment-of-variables" 0227 >змінної</link 0228 > <userinput 0229 >$відповідь</userinput 0230 > буде <userinput 0231 >так</userinput 0232 >, оскільки <userinput 0233 >10</userinput 0234 > більше за <userinput 0235 >3</userinput 0236 >.</para> 0237 <para 0238 >Булеві значення, <userinput 0239 >так</userinput 0240 > і <userinput 0241 >ні</userinput 0242 >, буде <glossterm 0243 >підсвічено</glossterm 0244 > темно-червоним.</para> 0245 </sect2> 0246 0247 </sect1> 0248 0249 0250 0251 <sect1 id="operators"> 0252 <title 0253 >Математичні, булеві оператори та оператори порівняння</title> 0254 <para 0255 >Заголовок цього розділу наче натякає на щось складне, але все не так складно, як здається.</para> 0256 0257 <sect2 id="mathematical-operators"> 0258 <title 0259 >Математичні оператори</title> 0260 <para 0261 >Ось основні математичні символи: додавання (<userinput 0262 >+</userinput 0263 >), віднімання (<userinput 0264 >-</userinput 0265 >), множення (<userinput 0266 >*</userinput 0267 >), ділення (<userinput 0268 >/</userinput 0269 >) і піднесення до степеня (<userinput 0270 >^</userinput 0271 >).</para> 0272 0273 <para 0274 >Ось невеличкий приклад математичних операторів, якими ви можете скористатися у &turtlescript;: <screen> 0275 $add = 1 + 1 0276 $subtract = 20 - 5 0277 $multiply = 15 * 2 0278 $divide = 30 / 30 0279 $power = 2 ^ 2 0280 </screen 0281 > Результат виконання математичних операцій слід <link linkend="assignment-of-variables" 0282 >призначати</link 0283 > різноманітним <link linkend="assignment-of-variables" 0284 >змінним</link 0285 >. За допомогою <link linkend="the-inspector" 0286 >інспектора</link 0287 > ви зможете переглянути ці змінні.</para> 0288 <para 0289 >Якщо вам потрібно виконати прості обчислення, ви можете зробити щось на зразок цього: <screen 0290 >напиши 2010-12 0291 </screen 0292 ></para> 0293 <para 0294 >А тепер приклад з дужками: <screen> 0295 напиши ( ( 20 - 5 ) * 2 / 30 ) + 1 0296 </screen 0297 > Спочатку буде обчислено вираз у дужках. У нашому випадку, буде обчислено 20-5, потім це значення буде помножено на 2, поділено на 30, і додано до нього 1 (у результаті отримаємо 2). Дужками можна скористатися і у інших випадках.</para> 0298 <para 0299 >У &kturtle; передбачено і додаткові математичні можливості у формі команд. Нижче наведено список команд, але без означення способу, у який вони працюють: <link linkend="round" 0300 >округли</link 0301 >, <link linkend="random" 0302 >випадкове</link 0303 >, <link linkend="sqrt" 0304 >корінь</link 0305 >, <link linkend="pi" 0306 >пі</link 0307 >, <link linkend="sin" 0308 >sin</link 0309 >, <link linkend="cos" 0310 >cos</link 0311 >, <link linkend="tan" 0312 >tg</link 0313 >, <link linkend="arcsin" 0314 >arcsin</link 0315 >, <link linkend="arccos" 0316 >arccos</link 0317 >, <link linkend="arctan" 0318 >arctg</link 0319 >.</para> 0320 </sect2> 0321 0322 <sect2 id="boolean-operators"> 0323 <title 0324 >Булеві (так/ні) оператори</title> 0325 <para 0326 >Тоді як <link linkend="mathematical-operators" 0327 >математичні оператори</link 0328 > в основному призначено для <link linkend="number" 0329 >чисел</link 0330 >, булеві оператори призначено для <link linkend="boolean-value" 0331 >булевих значень</link 0332 > (<userinput 0333 >так</userinput 0334 > і <userinput 0335 >ні</userinput 0336 >). Передбачено лише три булеві оператори, а саме: <userinput 0337 >та</userinput 0338 ><indexterm 0339 ><primary 0340 >та</primary 0341 ></indexterm 0342 >, <userinput 0343 >або</userinput 0344 ><indexterm 0345 ><primary 0346 >або</primary 0347 ></indexterm 0348 > і <userinput 0349 >ні</userinput 0350 ><indexterm 0351 ><primary 0352 >ні</primary 0353 ></indexterm 0354 >. У наведеному нижче фрагменті &turtlescript; показано використання всіх цих операторів: <screen> 0355 $та_1_1 = так та так # -> так 0356 $та_1_0 = так та ні # -> ні 0357 $та_0_1 = ні та так # -> ні 0358 $та_0_0 = ні та ні # -> ні 0359 0360 $або_1_1 = так або так # -> так 0361 $або_1_0 = так або ні # -> так 0362 $або_0_1 = ні або так # -> так 0363 $або_0_0 = ні або ні # -> ні 0364 0365 $не_1 = не так # -> ні 0366 $не_0 = не ні # -> так 0367 </screen 0368 > За допомогою <link linkend="the-inspector" 0369 >інспектора</link 0370 > ви зможете переглянути значення, крім того, ми навели результати виконання дій у коментарях. Результат застосування <userinput 0371 >та</userinput 0372 > дорівнює <userinput 0373 >так</userinput 0374 >, лише якщо з обох боків від нього стоять значення <userinput 0375 >так</userinput 0376 >. Результатом застосування <userinput 0377 >або</userinput 0378 > буде <userinput 0379 >так</userinput 0380 >, якщо з одного з боків від оператора стоїть <userinput 0381 >так</userinput 0382 >. Оператор <userinput 0383 >не</userinput 0384 > перетворює <userinput 0385 >так</userinput 0386 > на <userinput 0387 >ні</userinput 0388 >, а <userinput 0389 >ні</userinput 0390 > на <userinput 0391 >так</userinput 0392 >.</para> 0393 <para 0394 >Булеві оператори буде <glossterm 0395 >підсвічено</glossterm 0396 > рожевим.</para> 0397 0398 <sect3 id="boolean-operators-advanced-examples"> 0399 <title 0400 >Декілька додаткових прикладів</title> 0401 <para 0402 >Розглянемо наведений нижче приклад з <userinput 0403 >та</userinput 0404 >: <screen> 0405 $a = 1 0406 $b = 5 0407 якщо (($a < 10) та ($b == 5)) та ($a < $b) { 0408 напиши "привіт" 0409 } 0410 </screen 0411 > У цьому фрагменті &turtlescript; результат застосування трьох <link linkend="comparing-operators" 0412 >операторів порівняння</link 0413 > буде об’єднано за допомогою операторів <userinput 0414 >та</userinput 0415 >. Це означає, що для того, щоб черепашка написала «привіт», потрібно, щоб всі дії з порівняння давали результат «так».</para> 0416 0417 <para 0418 >Приклад з <userinput 0419 >або</userinput 0420 >: <screen> 0421 $n = 1 0422 якщо ($n < 10) або ($n == 2) { 0423 напиши "привіт" 0424 } 0425 </screen 0426 > У цьому фрагменті коду &turtlescript; частина, розташована ліворуч від <userinput 0427 >або</userinput 0428 >, дає «так», а частина, розташована праворуч, — «ні». Оскільки одна з двох частин виразу у операторі <userinput 0429 >або</userinput 0430 > дорівнює «так», результатом обчислення <userinput 0431 >або</userinput 0432 > буде «так». Це означає, що черепашка напише «привіт».</para> 0433 0434 <para 0435 >І нарешті, приклад з <userinput 0436 >не</userinput 0437 >, у якому ми змінними «так» на «ні», а «ні» — на «так». Дивіться: <screen 0438 >$n = 1 0439 якщо не ($n == 3) { 0440 напиши "привіт" 0441 } інакше { 0442 напиши "не привіт ;-)" 0443 } 0444 </screen 0445 ></para> 0446 </sect3> 0447 </sect2> 0448 0449 <sect2 id="comparing-operators"> 0450 <title 0451 >Оператори порівняння</title> 0452 <para 0453 >Розглянемо таке елементарне порівняння: <screen> 0454 $answer = 10 > 3 0455 </screen 0456 > Тут ми порівнюємо <userinput 0457 >10</userinput 0458 > з <userinput 0459 >3</userinput 0460 > за допомогою оператора «більше, ніж». Результатом цього порівняння буде <link linkend="boolean-value" 0461 >булеве значення</link 0462 > <userinput 0463 >так</userinput 0464 >, яке буде збережено у <link linkend="assignment-of-variables" 0465 >змінній</link 0466 > <userinput 0467 >$answer</userinput 0468 >.</para> 0469 <para 0470 >Всі <link linkend="number" 0471 >числа</link 0472 > і <link linkend="assignment-of-variables" 0473 >змінні</link 0474 > (які містять числа) можна порівнювати за допомогою операторів порівняння.</para> 0475 <para 0476 >Ось список можливих операторів порівняння: <table 0477 > <title 0478 >Типи питань</title 0479 > <tgroup cols="3" 0480 > <tbody 0481 > <row 0482 > <entry 0483 ><userinput 0484 >$A == $B</userinput 0485 ></entry 0486 > <entry 0487 >дорівнює</entry 0488 > <entry 0489 >відповіддю буде <quote 0490 >так</quote 0491 >, якщо <userinput 0492 >$A</userinput 0493 > рівне <userinput 0494 >$B</userinput 0495 ></entry 0496 > </row 0497 > <row 0498 > <entry 0499 ><userinput 0500 >$A != $B</userinput 0501 ></entry 0502 > <entry 0503 >не дорівнює</entry 0504 > <entry 0505 >відповіддю буде <quote 0506 >так</quote 0507 >, якщо <userinput 0508 >$A</userinput 0509 > не дорівнює <userinput 0510 >$B</userinput 0511 ></entry 0512 > </row 0513 > <row 0514 > <entry 0515 ><userinput 0516 >$A > $B</userinput 0517 ></entry 0518 > <entry 0519 >більше, ніж</entry 0520 > <entry 0521 >відповіддю буде <quote 0522 >так</quote 0523 >, якщо <userinput 0524 >$A</userinput 0525 > більше, ніж <userinput 0526 >$B</userinput 0527 ></entry 0528 > </row 0529 > <row 0530 > <entry 0531 ><userinput 0532 >$A < $B</userinput 0533 ></entry 0534 > <entry 0535 >менше, ніж</entry 0536 > <entry 0537 >відповіддю буде <quote 0538 >так</quote 0539 >, якщо <userinput 0540 >$A</userinput 0541 > менше, ніж <userinput 0542 >$B</userinput 0543 ></entry 0544 > </row 0545 > <row 0546 > <entry 0547 ><userinput 0548 >$A >= $B</userinput 0549 ></entry 0550 > <entry 0551 >більше або дорівнює</entry 0552 > <entry 0553 >відповіддю буде <quote 0554 >так</quote 0555 >, якщо <userinput 0556 >$A</userinput 0557 > більше або дорівнює <userinput 0558 >$B</userinput 0559 ></entry 0560 > </row 0561 > <row 0562 > <entry 0563 ><userinput 0564 >$A <= $B</userinput 0565 ></entry 0566 > <entry 0567 >менше або дорівнює</entry 0568 > <entry 0569 >відповіддю буде <quote 0570 >так</quote 0571 >, якщо <userinput 0572 >$A</userinput 0573 > менше або дорівнює <userinput 0574 >$B</userinput 0575 ></entry 0576 > </row 0577 > </tbody 0578 > </tgroup 0579 > </table 0580 > Будь ласка, зауважте, що <userinput 0581 >$A</userinput 0582 > і <userinput 0583 >$B</userinput 0584 > мають бути <link linkend="number" 0585 >числами</link 0586 > або <link linkend="assignment-of-variables" 0587 >змінними</link 0588 >, які містять числа.</para> 0589 </sect2> 0590 0591 0592 </sect1> 0593 0594 0595 0596 <sect1 id="commands"> 0597 <title 0598 >Команди</title> 0599 <para 0600 >За допомогою команд ви наказуєте черепашці або програмі &kturtle; виконати якусь дію. Деяким з команд потрібні вхідні дані, деякі — самі виводять дані. У цьому розділі буде пояснено всі вбудовані команди, які можна використовувати у &kturtle;. Крім того, ви можете скористатися командою <link linkend="learn" 0601 ><userinput 0602 >вивчи</userinput 0603 ></link 0604 >, щоб створити власні команди. Вбудовані команди, які ми тут обговорюємо, <glossterm 0605 >підсвічуються</glossterm 0606 > темно-синім кольором.</para> 0607 0608 <sect2 id="moving-the-turtle"> 0609 <title 0610 >Пересування черепашки</title> 0611 <para 0612 >Існує декілька команд для пересування черепашки екраном.</para> 0613 0614 <variablelist> 0615 <anchor id="forward"/> 0616 <varlistentry 0617 > 0618 <term 0619 >вперед (вп)<indexterm 0620 ><primary 0621 >вперед (вп)</primary 0622 ></indexterm 0623 ></term> 0624 <listitem 0625 ><para 0626 ><screen 0627 >вперед X</screen> 0628 <userinput 0629 >вперед</userinput 0630 > наказує черепашці просунутися вперед на X пікселів. Якщо перо опущено, черепашка залишатиме по собі слід у вигляді лінії. Команду <userinput 0631 >вперед</userinput 0632 > можна скоротити до <userinput 0633 >вп</userinput 0634 >.</para 0635 ></listitem> 0636 </varlistentry> 0637 </variablelist> 0638 <variablelist> 0639 <anchor id="backward"/> 0640 <varlistentry 0641 > 0642 <term 0643 >назад (нд)<indexterm 0644 ><primary 0645 >назад (нд)</primary 0646 ></indexterm 0647 ></term> 0648 <listitem 0649 ><para 0650 ><screen 0651 >назад X</screen> 0652 Команда <userinput 0653 >назад</userinput 0654 > наказує черепашці просунутися назад на X пікселів. Якщо перо опущено, черепашка залишатиме по собі слід у вигляді лінії. Команду <userinput 0655 >назад</userinput 0656 > можна скоротити до <userinput 0657 >нд</userinput 0658 ></para 0659 ></listitem> 0660 </varlistentry> 0661 </variablelist> 0662 <variablelist> 0663 <anchor id="turnleft"/> 0664 <varlistentry 0665 > 0666 <term 0667 >ліворуч (лв)<indexterm 0668 ><primary 0669 >ліворуч (tl)</primary 0670 ></indexterm 0671 ></term> 0672 <listitem 0673 ><para 0674 ><screen 0675 >ліворуч X</screen> 0676 Команда <userinput 0677 >ліворуч</userinput 0678 > наказує черепашці повернутися на X градусів ліворуч. Команду <userinput 0679 >ліворуч</userinput 0680 > можна скоротити до <userinput 0681 >лв</userinput 0682 >.</para 0683 ></listitem> 0684 </varlistentry> 0685 </variablelist> 0686 <variablelist> 0687 <anchor id="turnright"/> 0688 <varlistentry 0689 > 0690 <term 0691 >праворуч (пр)<indexterm 0692 ><primary 0693 >праворуч (пв)</primary 0694 ></indexterm 0695 ></term> 0696 <listitem 0697 ><para 0698 ><screen 0699 >праворуч X</screen> 0700 Команда <userinput 0701 >праворуч</userinput 0702 > наказує черепашці повернутися на X градусів праворуч. Команду <userinput 0703 >праворуч</userinput 0704 > можна скоротити до <userinput 0705 >пв</userinput 0706 >.</para 0707 ></listitem> 0708 </varlistentry> 0709 </variablelist> 0710 <variablelist> 0711 <anchor id="direction"/> 0712 <varlistentry 0713 > 0714 <term 0715 >напрямок (нпр)<indexterm 0716 ><primary 0717 >напрямок (нпр)</primary 0718 ></indexterm 0719 ></term> 0720 <listitem 0721 ><para 0722 ><screen 0723 >напрямок X</screen> 0724 Команда <userinput 0725 >напрямок</userinput 0726 > спрямовує черепашку у напрямку X градусів, відрахованих від нульового напрямку, безвідносно від попереднього напрямку, куди її було спрямовано. Команду <userinput 0727 >напрямок</userinput 0728 > можна скоротити до <userinput 0729 >нпр</userinput 0730 >.</para 0731 ></listitem> 0732 </varlistentry> 0733 </variablelist> 0734 <variablelist> 0735 <anchor id="getdirection"/> 0736 <varlistentry 0737 > 0738 <term 0739 >візьми_напрям<indexterm 0740 ><primary 0741 >візьми_напрям</primary 0742 ></indexterm 0743 ></term> 0744 <listitem 0745 ><para 0746 ><screen 0747 >візьми_напрям</screen> 0748 Команда <userinput 0749 >візьми_напрям</userinput 0750 > повертає напрямок черепашки у форматі градусів, відрахованих від нульового напрямку, де нулеві відповідає напрямок вгору.</para 0751 ></listitem> 0752 </varlistentry> 0753 </variablelist> 0754 <variablelist> 0755 <anchor id="center"/> 0756 <varlistentry 0757 > 0758 <term 0759 >центр<indexterm 0760 ><primary 0761 >центр</primary 0762 ></indexterm 0763 ></term> 0764 <listitem 0765 ><para 0766 ><screen 0767 >центр</screen> 0768 Команда <userinput 0769 >центр</userinput 0770 > пересуває черепашку у центр полотна.</para 0771 ></listitem> 0772 </varlistentry> 0773 </variablelist> 0774 <variablelist> 0775 <anchor id="go"/> 0776 <varlistentry 0777 > 0778 <term 0779 >перейди<indexterm 0780 ><primary 0781 >перейди</primary 0782 ></indexterm 0783 ></term> 0784 <listitem 0785 ><para 0786 ><screen 0787 >перейди X,Y</screen> 0788 Команда <userinput 0789 >перейди</userinput 0790 > наказує черепашці перейти до вказаного місця на полотні. Це місце знаходиться у X <glossterm linkend="pixels" 0791 >пікселях</glossterm 0792 > від лівого краю полотна, і у Y <glossterm linkend="pixels" 0793 >пікселях</glossterm 0794 > від верхнього краю полотна.</para 0795 ></listitem> 0796 </varlistentry> 0797 </variablelist> 0798 <variablelist> 0799 <anchor id="gox"/> 0800 <varlistentry 0801 > 0802 <term 0803 >перейди_x<indexterm 0804 ><primary 0805 >перейди_x (пx)</primary 0806 ></indexterm 0807 ></term> 0808 <listitem 0809 ><para 0810 ><screen 0811 >перейди_x X</screen> 0812 Команда <userinput 0813 >перейди_x</userinput 0814 > наказує черепашці перейти до точки, розміщеної за X <glossterm linkend="pixels" 0815 >пікселів</glossterm 0816 > від лівого краю полотна, залишаючись на тій самій висоті. Команду <userinput 0817 >перейди_x</userinput 0818 > можна скоротити до <userinput 0819 >пx</userinput 0820 >.</para 0821 ></listitem> 0822 </varlistentry> 0823 </variablelist> 0824 <variablelist> 0825 <anchor id="goy"/> 0826 <varlistentry 0827 > 0828 <term 0829 >перейди_y<indexterm 0830 ><primary 0831 >перейди_y (пy)</primary 0832 ></indexterm 0833 ></term> 0834 <listitem 0835 ><para 0836 ><screen 0837 >перейди_y Y</screen> 0838 Команда <userinput 0839 >перейди_y</userinput 0840 > наказує черепашці перейти до точки, розміщеної за Y <glossterm linkend="pixels" 0841 >пікселів</glossterm 0842 > від верхнього краю полотна, залишаючись на тій же відстані від його лівого краю. Команду <userinput 0843 >перейди_y</userinput 0844 > можна скоротити до <userinput 0845 >пy</userinput 0846 >.</para 0847 ></listitem> 0848 </varlistentry> 0849 </variablelist> 0850 <note 0851 ><para 0852 >Під час виконання команд <userinput 0853 >перейди</userinput 0854 >, <userinput 0855 >перейди_x</userinput 0856 >, <userinput 0857 >перейди_y</userinput 0858 > і <userinput 0859 >центр</userinput 0860 > черепашка не малюватиме лінії, незалежно від того, піднято чи опущено перо.</para> 0861 </note> 0862 </sect2> 0863 0864 <sect2 id="locate-the-turtle"> 0865 <title 0866 >Де знаходиться черепашка?</title> 0867 <para 0868 >Існує дві команди, які повертають позицію черепашки на екрані.</para> 0869 0870 <variablelist> 0871 <anchor id="getx"/> 0872 <varlistentry 0873 > 0874 <term 0875 >візьми_x<indexterm 0876 ><primary 0877 >візьми_x</primary 0878 ></indexterm 0879 ></term> 0880 <listitem 0881 ><para 0882 ><userinput 0883 >візьми_x</userinput 0884 > повертає кількість пікселів від лівого краю полотна до поточної позиції черепашки.</para 0885 ></listitem> 0886 </varlistentry> 0887 </variablelist> 0888 <variablelist> 0889 <anchor id="gety"/> 0890 <varlistentry 0891 > 0892 <term 0893 >візьми_y<indexterm 0894 ><primary 0895 >візьми_y</primary 0896 ></indexterm 0897 ></term> 0898 <listitem 0899 ><para 0900 ><userinput 0901 >візьми_y</userinput 0902 > повертає кількість пікселів від верхнього краю полотна до поточної позиції черепашки.</para 0903 ></listitem> 0904 </varlistentry> 0905 </variablelist> 0906 </sect2> 0907 0908 <sect2 id="pen"> 0909 <title 0910 >У черепашки є перо</title> 0911 <para 0912 >У черепашки є перо, яке малює лінію під час руху черепашки. Існує декілька команд, які керують цим пером. У цьому розділі пояснено зміст цих команд.</para> 0913 <variablelist> 0914 <anchor id="penup"/> 0915 <varlistentry 0916 > 0917 <term 0918 >підніми_перо (пп)<indexterm 0919 ><primary 0920 >підніми_перо (пп)</primary 0921 ></indexterm 0922 ></term> 0923 <listitem 0924 ><para 0925 ><screen 0926 >підніми_перо</screen> 0927 Команда <userinput 0928 >підніми_перо</userinput 0929 > піднімає перо над полотном. Якщо перо <quote 0930 >піднято</quote 0931 > під час руху черепашки лінії не малюватиметься. Прочитайте також інформацію щодо команди <userinput 0932 >опусти_перо</userinput 0933 >. Команду <userinput 0934 >підніми_перо</userinput 0935 > можна скоротити до <userinput 0936 >pu</userinput 0937 >.</para 0938 ></listitem> 0939 </varlistentry> 0940 </variablelist> 0941 <variablelist> 0942 <anchor id="pendown"/> 0943 <varlistentry 0944 > 0945 <term 0946 >опусти_перо (оп)<indexterm 0947 ><primary 0948 >опусти_перо (оп)</primary 0949 ></indexterm 0950 ></term> 0951 <listitem 0952 ><para 0953 ><screen 0954 >опусти_перо</screen> 0955 Команда <userinput 0956 >опусти_перо</userinput 0957 > опускає перо на полотно. Якщо перо <quote 0958 >опущено</quote 0959 > на полотно, під час рухів, черепашка лишатиме по собі слід. Прочитайте також інформацію щодо команди <userinput 0960 >підніми_перо</userinput 0961 >. Команду <userinput 0962 >опусти_перо</userinput 0963 > можна скоротити до <userinput 0964 >оп</userinput 0965 >.</para 0966 ></listitem> 0967 </varlistentry> 0968 </variablelist> 0969 <variablelist> 0970 <anchor id="setpenwidth"/> 0971 <varlistentry 0972 > 0973 <term 0974 >розмір_пера (рп)<indexterm 0975 ><primary 0976 >розмір_пера (рп)</primary 0977 ></indexterm 0978 ></term> 0979 <listitem 0980 ><para 0981 ><screen 0982 >розмір_пера X</screen> 0983 Команда <userinput 0984 >розмір_пера</userinput 0985 > встановлює товщину лінії, яку лишає перо, у значення X <glossterm linkend="pixels" 0986 >пікселів</glossterm 0987 >. Команду <userinput 0988 >розмір_пера</userinput 0989 > можна скоротити до <userinput 0990 >рп</userinput 0991 >.</para 0992 ></listitem> 0993 </varlistentry> 0994 </variablelist> 0995 <variablelist> 0996 <anchor id="setfgcolor"/> 0997 <varlistentry 0998 > 0999 <term 1000 >колір_пера (кп)<indexterm 1001 ><primary 1002 >колір_пера (кп)</primary 1003 ></indexterm 1004 ></term> 1005 <listitem 1006 ><para 1007 ><screen 1008 >колір_пера R,G,B</screen> 1009 Команда <userinput 1010 >колір_пера</userinput 1011 > встановлює колір лінії, яку лишає по собі перо. Команда <userinput 1012 >колір_пера</userinput 1013 > отримує дані для кольору у вигляді <glossterm linkend="rgb" 1014 >RGB-комбінації</glossterm 1015 >. Команду <userinput 1016 >колір_пера</userinput 1017 > можна скоротити до <userinput 1018 >кп</userinput 1019 >.</para 1020 ></listitem> 1021 </varlistentry> 1022 </variablelist> 1023 </sect2> 1024 1025 <sect2 id="canvas"> 1026 <title 1027 >Команди керування полотном</title> 1028 <para 1029 >Існує декілька команд, які надають можливість керувати полотном.</para> 1030 <variablelist> 1031 <anchor id="resizecanvas"/> 1032 <varlistentry> 1033 <term 1034 >розмір_полотна (рпл)<indexterm 1035 ><primary 1036 >розмір_полотна (рпл)</primary 1037 ></indexterm 1038 ></term> 1039 <listitem 1040 ><para 1041 ><screen 1042 >розмір_полотна X,Y</screen> 1043 За допомогою команди <userinput 1044 >розмір_полотна</userinput 1045 > ви можете встановити розмір полотна. Ця команда отримує вхідні значення X і Y, де X — нова ширина полотна у <glossterm linkend="pixels" 1046 >пікселях</glossterm 1047 >, а Y — нова висота полотна у <glossterm linkend="pixels" 1048 >пікселях</glossterm 1049 >. Команду <userinput 1050 >розмір_полотна</userinput 1051 > можна скоротити до <userinput 1052 >рпл</userinput 1053 >.</para 1054 ></listitem> 1055 </varlistentry> 1056 </variablelist> 1057 <variablelist> 1058 <anchor id="setbgcolor"/> 1059 <varlistentry 1060 > 1061 <term 1062 >колір_полотна (кпл)<indexterm 1063 ><primary 1064 >колір_полотна (кпл)</primary 1065 ></indexterm 1066 ></term> 1067 <listitem 1068 ><para 1069 ><screen 1070 >колір_полотна R,G,B</screen> 1071 Команда <userinput 1072 >колір_полотна</userinput 1073 > встановлює колір тла полотна. Команда <userinput 1074 >колір_полотна</userinput 1075 > отримує вхідні дані у вигляді <glossterm linkend="rgb" 1076 >RGB-комбінації</glossterm 1077 >. Команду <userinput 1078 >колір_полотна</userinput 1079 > можна скоротити до <userinput 1080 >кпл</userinput 1081 >.</para 1082 ></listitem> 1083 </varlistentry> 1084 </variablelist> 1085 </sect2> 1086 1087 <sect2 id="clean"> 1088 <title 1089 >Команди для очищення</title> 1090 <para 1091 >Існує дві команди для очищення полотна, у разі якщо ви зробили помилку.</para> 1092 <variablelist> 1093 <anchor id="clear"/> 1094 <varlistentry 1095 > 1096 <term 1097 >зітри (зтр)<indexterm 1098 ><primary 1099 >зітри (зтр)</primary 1100 ></indexterm 1101 ></term> 1102 <listitem 1103 ><para 1104 ><screen 1105 >зітри</screen> 1106 За допомогою команди <userinput 1107 >зітри</userinput 1108 > ви можете витерти всі малюнки з полотна. При цьому всі інші параметри, позиція і напрямок черепашки, колір тла полотна, видимість черепашки і розмір полотна, залишаться незмінними:</para 1109 ></listitem> 1110 </varlistentry> 1111 </variablelist> 1112 <variablelist> 1113 <anchor id="reset"/> 1114 <varlistentry 1115 > 1116 <term 1117 >перезапусти<indexterm 1118 ><primary 1119 >перезапусти</primary 1120 ></indexterm 1121 ></term> 1122 <listitem 1123 ><para 1124 ><screen 1125 >перезапусти</screen> 1126 Команда <userinput 1127 >перезапусти</userinput 1128 > очищує все набагато ґрунтовніше за команду <userinput 1129 >зітри</userinput 1130 >. Після виконання команди <userinput 1131 >перезапусти</userinput 1132 > все виглядатиме так, неначе ви тільки-но запустили &kturtle;. Черепашку буде розташовано по центру екрана, колір тла стане білим, черепашка малюватиме чорну лінію на полотні, а саме полотно матиме розмір 400 на 400 пікселів.</para 1133 ></listitem> 1134 </varlistentry> 1135 </variablelist> 1136 </sect2> 1137 1138 <sect2 id="sprites"> 1139 <title 1140 >Черепашка — це спрайт</title> 1141 <para 1142 >Спочатку, коротеньке пояснення того, що таке спрайти: спрайти — це маленькі зображення, які можна пересувати екраном, які ми часто бачимо у комп’ютерних іграх. Наша черепашка — також спрайт. Докладнішу інформацію ви зможете отримати з розділу глосарія, присвяченого <glossterm linkend="sprites" 1143 >спрайтам</glossterm 1144 >.</para> 1145 <para 1146 >Далі, ви зможете ознайомитися з повним списком всіх команд для роботи зі спрайтами.</para> 1147 <note 1148 ><para 1149 >Поточна версія &kturtle; ще не підтримує використання інших спрайтів, окрім черепашки. У майбутніх версіях ви зможете змінити черепашку на щось інше, що вам сподобається.</para 1150 ></note> 1151 <variablelist> 1152 <anchor id="spriteshow"/> 1153 <varlistentry 1154 > 1155 <term 1156 >покажи_черепашку (пч)<indexterm 1157 ><primary 1158 >покажи_черепашку (пч)</primary 1159 ></indexterm 1160 ></term> 1161 <listitem 1162 ><para 1163 ><screen 1164 >покажи_черепашку</screen> 1165 Команда <userinput 1166 >покажи_черепашку</userinput 1167 > робить черепашку знову видимою після того, як її було сховано. Команду <userinput 1168 >покажи_черепашку</userinput 1169 > можна скоротити до <userinput 1170 >пч</userinput 1171 >.</para 1172 ></listitem> 1173 </varlistentry> 1174 </variablelist> 1175 <variablelist> 1176 <anchor id="spritehide"/> 1177 <varlistentry 1178 > 1179 <term 1180 >сховай_черепашку (сч)<indexterm 1181 ><primary 1182 >сховай_черепашку (сч)</primary 1183 ></indexterm 1184 ></term> 1185 <listitem 1186 ><para 1187 ><screen 1188 >сховай_черепашку</screen> 1189 Команда <userinput 1190 >сховай_черепашку</userinput 1191 > ховає черепашку. Цією командою можна скористатися, якщо черепашка не вписується у ваш малюнок. Команду <userinput 1192 >сховай_черепашку</userinput 1193 > можна скоротити до <userinput 1194 >сч</userinput 1195 >.</para 1196 ></listitem> 1197 </varlistentry> 1198 </variablelist> 1199 </sect2> 1200 1201 <sect2 id="writing"> 1202 <title 1203 >Чи може черепашка писати?</title> 1204 <para 1205 >Відповідь: <quote 1206 >так</quote 1207 >. Черепашка може писати: вона напише для вас все, що ви їй накажете написати.</para> 1208 <variablelist> 1209 <anchor id="print"/> 1210 <varlistentry 1211 > 1212 <term 1213 >напиши<indexterm 1214 ><primary 1215 >напиши</primary 1216 ></indexterm 1217 ></term> 1218 <listitem 1219 ><para 1220 ><screen 1221 >напиши X</screen> 1222 Команда <userinput 1223 >напиши</userinput 1224 > використовується для того, щоб наказати черепашці написати щось на полотні. Команда <userinput 1225 >напиши</userinput 1226 > отримує числа і рядки як вхідні дані. Ви можете <userinput 1227 >писати</userinput 1228 > комбінації з чисел і рядків за допомогою символу <quote 1229 >+</quote 1230 >. Ось подивіться на цей приклад: <screen 1231 >$рік = 2003 1232 $автор = "Сіес" 1233 напиши $автор + " почав роботу над проєктом KTurtle у " + $year + "році, і все ще отримує задоволення від роботи над ним!" 1234 </screen> 1235 </para 1236 ></listitem> 1237 </varlistentry> 1238 </variablelist> 1239 <variablelist> 1240 <anchor id="fontsize"/> 1241 <varlistentry 1242 > 1243 <term 1244 >розмір_літер<indexterm 1245 ><primary 1246 >розмір_літер</primary 1247 ></indexterm 1248 ></term> 1249 <listitem 1250 ><para 1251 ><screen 1252 >розмір_літер X</screen> 1253 Команда <userinput 1254 >розмір_літер</userinput 1255 > встановлює розмір шрифту, який використовуватиме команда <userinput 1256 >напиши</userinput 1257 >. Команда <userinput 1258 >розмір_літер</userinput 1259 > отримує одне вхідне значення, ним має бути число. Розмір встановлюється у <glossterm linkend="pixels" 1260 >пікселях</glossterm 1261 >.</para 1262 ></listitem> 1263 </varlistentry> 1264 </variablelist> 1265 </sect2> 1266 1267 <sect2 id="math-commands"> 1268 <title 1269 >Математичні команди</title> 1270 <para 1271 >Наведені нижче команди є додатковими математичними командами &kturtle;.</para> 1272 <variablelist> 1273 <anchor id="round"/> 1274 <varlistentry> 1275 <term 1276 >округли<indexterm 1277 ><primary 1278 >округли</primary 1279 ></indexterm 1280 ></term> 1281 <listitem 1282 ><para 1283 ><screen 1284 >округли(x)</screen> 1285 округлює задане число до найближчого цілого. <screen> 1286 напиши округли(10.8) 1287 вперед 20 1288 напиши округли(10.3) 1289 </screen 1290 > Виконуючи цей код, черепашка напише числа 11 і 10.</para 1291 ></listitem> 1292 </varlistentry> 1293 </variablelist> 1294 <variablelist> 1295 <anchor id="random"/> 1296 <varlistentry 1297 > 1298 <term 1299 >випадкове (вип)<indexterm 1300 ><primary 1301 >випадкове (вип)</primary 1302 ></indexterm 1303 ></term> 1304 <listitem 1305 ><para 1306 ><screen 1307 >випадкове X,Y</screen> 1308 Команда <userinput 1309 >випадкове</userinput 1310 > отримує вхідні дані і виводить вихідні. Як вхідні дані їй потрібні два числа, перше (X) вказує на мінімальне значення числа, яке можна вивести, а друге (Y) — встановлює максимальне значення цього числа. У результаті дії команди буде виведено випадково вибране число, яке буде більше або рівне за мінімальне значення і менше або рівне за максимальне значення. Ось невеликий приклад: <screen> 1311 повтори 500 { 1312 $x = випадкове 1,20 1313 вперед $x 1314 ліворуч 10 - $x 1315 } 1316 </screen 1317 > За допомогою команди <userinput 1318 >випадкове</userinput 1319 > ви можете ввести елемент випадковості у вашу програму.</para 1320 ></listitem> 1321 </varlistentry> 1322 </variablelist> 1323 <variablelist> 1324 <anchor id="mod"/> 1325 <varlistentry 1326 > 1327 <term 1328 >mod<indexterm 1329 ><primary 1330 >mod</primary 1331 ></indexterm 1332 ></term> 1333 <listitem 1334 ><para 1335 ><screen 1336 >mod X,Y</screen> 1337 Команда <userinput 1338 >mod</userinput 1339 > повертає залишок від ділення першого числа на друге.</para 1340 ></listitem> 1341 </varlistentry> 1342 </variablelist> 1343 <variablelist> 1344 <anchor id="sqrt"/> 1345 <varlistentry 1346 > 1347 <term 1348 >корінь<indexterm 1349 ><primary 1350 >корінь</primary 1351 ></indexterm 1352 ></term> 1353 <listitem 1354 ><para 1355 ><screen 1356 >корінь X</screen> 1357 Команду <userinput 1358 >корінь</userinput 1359 > призначено для обчислення квадратного кореня з числа, X.</para 1360 ></listitem> 1361 </varlistentry> 1362 </variablelist> 1363 <!-- 1364 <variablelist> 1365 <anchor id="exp"/> 1366 <varlistentry 1367 > 1368 <term 1369 >exp<indexterm 1370 ><primary 1371 >exp</primary 1372 ></indexterm 1373 ></term> 1374 <listitem 1375 ><para 1376 ><screen 1377 >sqrt X</screen> 1378 </para 1379 ></listitem> 1380 </varlistentry> 1381 </variablelist> 1382 --> 1383 <variablelist> 1384 <anchor id="pi"/> 1385 <varlistentry 1386 > 1387 <term 1388 >пі<indexterm 1389 ><primary 1390 >пі</primary 1391 ></indexterm 1392 ></term> 1393 <listitem 1394 ><para 1395 ><screen 1396 >пі</screen> 1397 Ця команда повертає сталу π, <userinput 1398 >3.14159</userinput 1399 >.</para 1400 ></listitem> 1401 </varlistentry> 1402 </variablelist> 1403 <variablelist> 1404 <anchor id="sin"/> 1405 <anchor id="cos"/> 1406 <anchor id="tan"/> 1407 <varlistentry> 1408 <term 1409 >sin<indexterm 1410 ><primary 1411 >sin</primary 1412 ></indexterm 1413 >, cos<indexterm 1414 ><primary 1415 >cos</primary 1416 ></indexterm 1417 >, tg<indexterm 1418 ><primary 1419 >tg</primary 1420 ></indexterm 1421 ></term> 1422 <listitem 1423 ><para> 1424 <screen 1425 >sin X 1426 cos X 1427 tg X 1428 </screen> 1429 За допомогою цих команд задаються три відомі тригонометричні функції <userinput 1430 >sin</userinput 1431 >, <userinput 1432 >cos</userinput 1433 > і <userinput 1434 >tg</userinput 1435 >. Вхідним параметром для всіх цих команд, X, є <link linkend="number" 1436 >число</link 1437 >.</para 1438 ></listitem> 1439 </varlistentry> 1440 </variablelist> 1441 <variablelist> 1442 <anchor id="arcsin"/> 1443 <anchor id="arccos"/> 1444 <anchor id="arctan"/> 1445 <varlistentry> 1446 <term 1447 >arcsin<indexterm 1448 ><primary 1449 >arcsin</primary 1450 ></indexterm 1451 >, arccos<indexterm 1452 ><primary 1453 >arccos</primary 1454 ></indexterm 1455 >, arctg<indexterm 1456 ><primary 1457 >arctg</primary 1458 ></indexterm 1459 ></term> 1460 <listitem 1461 ><para> 1462 <screen 1463 >arcsin X 1464 arccos X 1465 arctg X 1466 </screen> 1467 Ці команди є оберненими функціями <link linkend="sin" 1468 >sin</link 1469 >, <link linkend="cos" 1470 >cos</link 1471 > і <link linkend="tan" 1472 >tg</link 1473 >. Вхідним параметром для всіх цих команд, X, є <link linkend="number" 1474 >число</link 1475 >.</para 1476 ></listitem> 1477 </varlistentry> 1478 </variablelist> 1479 </sect2> 1480 1481 <sect2 id="dialogs"> 1482 <title 1483 >Введення і отримання інформації за допомогою діалогових вікон</title> 1484 <para 1485 >Діалогове вікно — це невеличке контекстне вікно, у якому розміщено деяку інформацію від програми, або у яке слід ввести деяку інформацію, потрібну програмі. У &kturtle; є дві команди для виклику діалогових вікон, а саме: <userinput 1486 >повідом</userinput 1487 > і <userinput 1488 >спитай</userinput 1489 ></para> 1490 <variablelist> 1491 <anchor id="message"/> 1492 <varlistentry 1493 > 1494 <term 1495 >повідом<indexterm 1496 ><primary 1497 >повідом</primary 1498 ></indexterm 1499 ></term> 1500 <listitem 1501 ><para 1502 ><screen 1503 >повідом X</screen> 1504 Команда <userinput 1505 >повідом</userinput 1506 > отримує як вхідні дані <link linkend="string" 1507 >рядок</link 1508 >. У результаті виконання команди буде показано контекстне вікно з текстом, який визначає вхідний <link linkend="string" 1509 >рядок</link 1510 >. <screen 1511 >повідом "Сієс почав роботу над проєктом KTurtle у 2003 році, і все ще отримує задоволення від роботи над ним!" 1512 </screen> 1513 </para 1514 ></listitem> 1515 </varlistentry> 1516 </variablelist> 1517 <variablelist> 1518 <anchor id="ask"/> 1519 <varlistentry 1520 > 1521 <term 1522 >спитай<indexterm 1523 ><primary 1524 >спитай</primary 1525 ></indexterm 1526 ></term> 1527 <listitem 1528 ><para 1529 ><screen 1530 >спитай X</screen> 1531 Команда <userinput 1532 >спитай</userinput 1533 > отримує вхідні дані у вигляді <link linkend="string" 1534 >рядка</link 1535 >. У результаті виконання команди буде показано діалогове вікно, у якому міститиметься текст з рядка, точно так само як і у команді <link linkend="message" 1536 >повідом</link 1537 >. Але, окрім цього, у вікні буде і поле для введенні інформації. У це поле введення користувач може ввести <link linkend="number" 1538 >число</link 1539 > або <link linkend="string" 1540 >рядок</link 1541 >, який можна зберегти у <link linkend="assignment-of-variables" 1542 >змінній</link 1543 > або передано, як параметр, <link linkend="commands" 1544 >команді</link 1545 >. Приклад: <screen> 1546 $питання = спитай "Скільки вам років?" 1547 $роки = 2003 - $in 1548 напиши "У 2003 році вам було " + $роки + " років." 1549 </screen 1550 > Якщо користувач закриває діалогове вікно введення або нічого не вводить у поле для введення, <link linkend="assignment-of-variables" 1551 >змінній</link 1552 > надається порожнє значення.</para 1553 ></listitem> 1554 </varlistentry> 1555 </variablelist> 1556 </sect2> 1557 1558 </sect1> 1559 1560 1561 1562 <sect1 id="assignment-of-variables"> 1563 <title 1564 >Присвоювання змінним значень</title> 1565 <para 1566 >Спочатку ми розглянемо змінні, а потім поговоримо про те, як надати цим змінним значень. </para> 1567 1568 <para 1569 >Змінними є слова, що починаються на <quote 1570 >$</quote 1571 >, у <link linkend="the-editor" 1572 >редакторі</link 1573 > ці слова <glossterm 1574 >підсвічуються</glossterm 1575 > пурпуровим кольором.</para> 1576 1577 <para 1578 >Змінні можуть містити будь-які <link linkend="number" 1579 >числа</link 1580 >, <link linkend="string" 1581 >рядки</link 1582 > або <link linkend="boolean-value" 1583 >булеві значення</link 1584 >. За допомогою оператора присвоювання, <userinput 1585 >=</userinput 1586 >, ви можете надати змінній її значення. Змінна зберігатиме свій вміст до завершення виконання програми або до зміни значення змінної на якесь інше.</para> 1587 1588 <para 1589 >Після надання значень ви можете використовувати змінні так, неначебто вони збігаються з власним вмістом. Ось приклад з фрагментом коду &turtlescript;: <screen> 1590 $x = 10 1591 $x = $x / 3 1592 напиши $x 1593 </screen 1594 > Спочатку змінній <userinput 1595 >$x</userinput 1596 > надано значення <userinput 1597 >10</userinput 1598 >. Потім <userinput 1599 >$x</userinput 1600 > надано значення цієї ж змінної, поділеної на <userinput 1601 >3</userinput 1602 > — тобто <userinput 1603 >$x</userinput 1604 > надано значення частки <userinput 1605 >10 / 3</userinput 1606 >. Нарешті, <userinput 1607 >$x</userinput 1608 > буде намальовано черепашкою. Ви можете бачити, що у рядках два і три <userinput 1609 >$x</userinput 1610 > використано замість вмісту змінної.</para> 1611 1612 <para 1613 >Для того, щоб змінними можна було користуватися, цим змінним слід надати значення. Приклад: <screen> 1614 напиши $n 1615 </screen 1616 > Результатом виконання буде повідомлення про помилку.</para> 1617 1618 <para 1619 >Будь ласка, погляньте на цей приклад &turtlescript;: <screen> 1620 $a = 2004 1621 $b = 25 1622 1623 # наступна команда намалює рядок "2029" 1624 напиши $a + $b 1625 назад 30 1626 # а ця команда надрукує "2004 плюс 25 дорівнює 2029": 1627 напиши $a + " плюс " + $b + " дорівнює " + ($a + $b) 1628 </screen 1629 > У перших двох рядках встановлено значення змінних <userinput 1630 >$a</userinput 1631 > і <userinput 1632 >$b</userinput 1633 > 2004 і 25. Далі йдуть дві команди <userinput 1634 >напиши</userinput 1635 > з командою <userinput 1636 >назад 30</userinput 1637 > між ними. Коментарі перед командами <userinput 1638 >напиши</userinput 1639 > пояснюють призначення цих команд. Команду <userinput 1640 >назад 30</userinput 1641 > додано для того, щоб забезпечити вивід кожної з порцій даних у окремому рядку. Як бачите змінними можна користуватися як замінниками їх вмісту, ви можете використовувати змінні з будь-якими <link linkend="operators" 1642 >операторами</link 1643 > або передавати їх як вхідні дані під час виклику<link linkend="commands" 1644 >команд</link 1645 >.</para> 1646 1647 <para 1648 >Ще один приклад: <screen> 1649 $ім’я = спитай "Як вас звати?" 1650 напиши "Привіт, " + $ім’я + "! Успіхів у вивченні мистецтва програмування..." 1651 </screen 1652 > Досить зрозуміло. Знову ж таки, змінну <userinput 1653 >$ім’я</userinput 1654 > використано як рядок.</para> 1655 1656 <para 1657 ><link linkend="the-inspector" 1658 >Інспектор</link 1659 > буде дуже корисним під час роботи зі змінними. Цей інструмент покаже вам значення всіх використаних у програмі змінних.</para> 1660 </sect1> 1661 1662 1663 1664 <sect1 id="controlling-execution"> 1665 <title 1666 >Контроль над виконанням</title> 1667 <para 1668 >Регулятори виконання надають вам змогу — як це і випливає з їх назви — керувати виконанням програми.</para> 1669 <para 1670 >Команди керування виконанням <glossterm 1671 >підсвічуються</glossterm 1672 > темно-зеленим кольором і виокремлюються жирним шрифтом. З регуляторами виконання використовують і фігурні дужки, які <glossterm 1673 >підсвічуються</glossterm 1674 > чорним кольором і виокремлюються чорним шрифтом.</para> 1675 1676 <sect2 id="wait"> 1677 <title 1678 >Черепашко, зачекай!</title> 1679 <para 1680 >Якщо ви вже повправлялися у програмуванні у &kturtle;, ви, мабуть зауважили, що черепашка малює дуже швидко. Ця команда примушує черепашку почекати деякий проміжок часу.</para> 1681 <variablelist> 1682 <varlistentry> 1683 <term 1684 >чекай<indexterm 1685 ><primary 1686 >чекай</primary 1687 ></indexterm 1688 ></term> 1689 <listitem 1690 ><para 1691 ><screen 1692 >чекай X</screen> 1693 Команда <userinput 1694 >чекай</userinput 1695 > наказує черепашці чекати X секунд. <screen> 1696 повтори 36 { 1697 вперед 5 1698 праворуч 10 1699 чекай 0.5 1700 } 1701 </screen 1702 > За допомогою цього коду малюється коло, але черепашка чекатиме по пів секунди перш ніж перейти до наступного кроку. Це створює враження черепашки, що рухається повільно.</para 1703 ></listitem> 1704 </varlistentry> 1705 </variablelist> 1706 </sect2> 1707 1708 <sect2 id="if"> 1709 <title 1710 >Виконання <quote 1711 >якщо</quote 1712 ></title> 1713 <variablelist> 1714 <varlistentry> 1715 <term 1716 >якщо<indexterm 1717 ><primary 1718 >якщо</primary 1719 ></indexterm 1720 ></term> 1721 <listitem 1722 ><para 1723 ><screen 1724 >якщо <link linkend="boolean-value" 1725 >булеве значення</link 1726 > { ... }</screen> 1727 Код між двома фігурними дужками буде виконано, лише <userinput 1728 >якщо</userinput 1729 > (якщо) результат обчислення <link linkend="boolean-value" 1730 >булевого значення</link 1731 > дорівнюватиме <quote 1732 >так</quote 1733 >. <screen> 1734 $x = 6 1735 якщо $x > 5 { 1736 напиши "$x більше за п’ять!" 1737 } 1738 </screen 1739 > У першому рядку змінній <userinput 1740 >$x</userinput 1741 > надається значення 6. У другому рядку використано <link linkend="comparing-operators" 1742 >оператор порівняння</link 1743 > для знаходження значення <userinput 1744 >$x > 5</userinput 1745 >. Оскільки відповіддю на це питання є <quote 1746 >так</quote 1747 > регулятор виконання <userinput 1748 >якщо</userinput 1749 > дозволить виконання коду між фігурними дужками.</para 1750 ></listitem> 1751 </varlistentry> 1752 </variablelist> 1753 </sect2> 1754 1755 <sect2 id="else"> 1756 <title 1757 >Якщо «ні», значить «інакше»</title> 1758 <variablelist> 1759 <varlistentry> 1760 <term 1761 >інакше<indexterm 1762 ><primary 1763 >інакше</primary 1764 ></indexterm 1765 ></term> 1766 <listitem 1767 ><para 1768 ><screen 1769 >якщо <link linkend="boolean-value" 1770 >булеве значення</link 1771 > { ... } інакше { ... }</screen> 1772 Команду <userinput 1773 >інакше</userinput 1774 > можна використовувати як додаток до регулятора виконання <link linkend="if" 1775 ><userinput 1776 >якщо</userinput 1777 ></link 1778 >. код між фігурними дужками після <userinput 1779 >інакше</userinput 1780 > виконуватиметься, лише якщо <link linkend="boolean-value" 1781 >булеве значення</link 1782 > дорівнюватиме <quote 1783 >ні</quote 1784 >. <screen> 1785 перезапусти 1786 $x = 4 1787 якщо $x > 5 { 1788 напиши "$x більше за п’ять!" 1789 } інакше { 1790 напиши "$x менше за шість!" 1791 } 1792 </screen 1793 > <link linkend="comparing-operators" 1794 >Оператор порівняння</link 1795 > обчислює значення <userinput 1796 >$x > 5</userinput 1797 >. Оскільки 4 не перевищує 5 значенням буде <quote 1798 >ні</quote 1799 >. Це означає, що буде виконано код між фігурними дужками після команди <userinput 1800 >інакше</userinput 1801 >.</para 1802 ></listitem> 1803 </varlistentry> 1804 </variablelist> 1805 </sect2> 1806 1807 <sect2 id="while"> 1808 <title 1809 >Цикл «поки»</title> 1810 <variablelist> 1811 <varlistentry> 1812 <term 1813 >поки<indexterm 1814 ><primary 1815 >поки</primary 1816 ></indexterm 1817 ></term> 1818 <listitem 1819 ><para 1820 ><screen 1821 >поки <link linkend="boolean-value" 1822 >булеве значення</link 1823 > { ... }</screen> 1824 Регулятор виконання <userinput 1825 >поки</userinput 1826 > багато у чому схожий на <link linkend="if" 1827 ><userinput 1828 >якщо</userinput 1829 ></link 1830 >. Різниця між ними полягає у тому, що <userinput 1831 >поки</userinput 1832 > продовжує виконання коду між фігурними дужками (цикл), аж доки <link linkend="boolean-value" 1833 >булевий вираз</link 1834 > не дорівнюватиме <quote 1835 >ні</quote 1836 >. <screen> 1837 $x = 1 1838 поки $x < 5 { 1839 вперед 10 1840 чекай 1 1841 $x = $x + 1 1842 } 1843 </screen 1844 > У першому рядку змінній <userinput 1845 >$x</userinput 1846 > надано значення 1. У другому рядку виконано порівняння <userinput 1847 >$x < 5</userinput 1848 >. Оскільки відповіддю на це питання буде <quote 1849 >так</quote 1850 > регулятор виконання <userinput 1851 >поки</userinput 1852 > починатиме виконання коду між фігурними дужками з початку, до того часу, коли значенням <userinput 1853 >$x < 5</userinput 1854 > не стане <quote 1855 >ні</quote 1856 >. У нашому випадку, код між фігурними дужками буде виконано чотири рази, оскільки кожного разу, коли виконується п’ятий рядок <userinput 1857 >$x</userinput 1858 > збільшується на 1.</para 1859 ></listitem> 1860 </varlistentry> 1861 </variablelist> 1862 </sect2> 1863 1864 <sect2 id="repeat"> 1865 <title 1866 >Цикл «повтори»</title> 1867 <variablelist> 1868 <varlistentry> 1869 <term 1870 >повтори<indexterm 1871 ><primary 1872 >повтори</primary 1873 ></indexterm 1874 ></term> 1875 <listitem 1876 ><para 1877 ><screen 1878 >повтори <link linkend="number" 1879 >число</link 1880 > { ... }</screen> 1881 Регулятор виконання <userinput 1882 >повтори</userinput 1883 > дуже схожий на <link linkend="while" 1884 ><userinput 1885 >поки</userinput 1886 ></link 1887 >. Різниця полягає у тому, що <userinput 1888 >повтори</userinput 1889 > повторює виконання команд (цикл) задану кількість разів.</para 1890 ></listitem> 1891 </varlistentry> 1892 </variablelist> 1893 </sect2> 1894 1895 <sect2 id="for"> 1896 <title 1897 >Цикл з лічильником, «для»</title> 1898 <variablelist> 1899 <varlistentry> 1900 <term 1901 >для<indexterm 1902 ><primary 1903 >для</primary 1904 ></indexterm 1905 ><indexterm 1906 ><primary 1907 >до</primary 1908 ></indexterm 1909 ><indexterm 1910 ><primary 1911 >крок</primary 1912 ></indexterm 1913 ></term> 1914 <listitem 1915 ><para 1916 ><screen 1917 >для <link linkend="assignment-of-variables" 1918 >змінна</link 1919 > = <link linkend="number" 1920 >число</link 1921 > до <link linkend="number" 1922 >число</link 1923 > { ... }</screen> 1924 Цикл <userinput 1925 >для</userinput 1926 > — це <quote 1927 >цикл з лічильником</quote 1928 >, тобто він лічить повтори за вас. Перше число вказує значення змінної під час першого виконання циклу. Під час кожного виконання це число збільшується, аж доки не досягне другого числа.<screen> 1929 для $x = 1 до 10 { 1930 напиши $x * 7 1931 вперед 15 1932 } 1933 </screen 1934 > Кожне виконання коду між фігурними дужками збільшує значення <userinput 1935 >$x</userinput 1936 > на 1, до того часу, коли <userinput 1937 >$x</userinput 1938 > досягне значення 10. Код між фігурними дужками пише на полотні значення <userinput 1939 >$x</userinput 1940 > помноженого на 7. Після виконання програми ви побачите на полотні таблицю множення на 7. </para> 1941 <para 1942 >Типовим розміром кроку циклу є 1, але ви можете використовувати інше значення за допомогою команди на зразок <screen 1943 >для <link linkend="assignment-of-variables" 1944 >змінна</link 1945 > = <link linkend="number" 1946 >число</link 1947 > до <link linkend="number" 1948 >число</link 1949 > крок <link linkend="number" 1950 >число</link 1951 > { ... }</screen 1952 ></para 1953 ></listitem> 1954 </varlistentry> 1955 </variablelist> 1956 </sect2> 1957 1958 <sect2 id="break"> 1959 <title 1960 >Полишити цикл</title> 1961 <variablelist> 1962 <varlistentry> 1963 <term 1964 >перерви<indexterm 1965 ><primary 1966 >перерви</primary 1967 ></indexterm 1968 ></term> 1969 <listitem 1970 ><para 1971 ><screen 1972 >перерви</screen> 1973 Негайно припиняє виконання програми у рамках циклу і передає керування команді, яку розташовано одразу за поточним циклом.</para 1974 ></listitem> 1975 </varlistentry> 1976 </variablelist> 1977 </sect2> 1978 1979 <sect2 id="exit"> 1980 <title 1981 >Перервати виконання вашої програми</title> 1982 <variablelist> 1983 <varlistentry> 1984 <term 1985 >зупини<indexterm 1986 ><primary 1987 >зупини</primary 1988 ></indexterm 1989 ></term> 1990 <listitem 1991 ><para 1992 ><screen 1993 >зупини</screen> 1994 Завершує виконання вашої програми.</para 1995 ></listitem> 1996 </varlistentry> 1997 </variablelist> 1998 </sect2> 1999 2000 <sect2 id="assert"> 2001 <title 2002 >Перевірка умови під час виконання програми</title> 2003 <variablelist> 2004 <varlistentry> 2005 <term 2006 >перевір<indexterm 2007 ><primary 2008 >перевір</primary 2009 ></indexterm 2010 ></term> 2011 <listitem 2012 ><para 2013 ><screen 2014 >перевір <link linkend="boolean-value" 2015 >булеве значення</link 2016 ></screen> 2017 Може бути використано для перевірки правильності роботи програми або введених даних. <screen 2018 >$введення = ask "У якому році ви народилися?" 2019 # рік має бути вказано як додатне значення 2020 перевір $введення 2021 > 0 2022 </screen 2023 ></para 2024 ></listitem> 2025 </varlistentry> 2026 </variablelist> 2027 </sect2> 2028 </sect1> 2029 2030 2031 <sect1 id="learn"> 2032 2033 <title 2034 >Створення власних команд за допомогою <quote 2035 >вивчи</quote 2036 ></title> 2037 <para 2038 ><userinput 2039 >вивчи</userinput 2040 ><indexterm 2041 ><primary 2042 >вивчи</primary 2043 ></indexterm 2044 > є дуже особливою командою, оскільки цю команду використовують для створення нових команд. Команда, яку ви створюєте за її допомогою може отримувати <glossterm linkend="input-output" 2045 >вхідні дані</glossterm 2046 > і повертати <glossterm linkend="input-output" 2047 >вихідні дані</glossterm 2048 >. Давайте поглянемо як створюється нова команда: <screen> 2049 вивчи circle $x { 2050 повтори 36 { 2051 вперед $x 2052 ліворуч 10 2053 } 2054 } 2055 </screen 2056 > Нова команда називається <userinput 2057 >circle</userinput 2058 >. Команда <userinput 2059 >circle</userinput 2060 > отримує одне <glossterm linkend="input-output" 2061 >вхідне значення</glossterm 2062 >, параметр, який задає розмір кола. <userinput 2063 >circle</userinput 2064 > не повертає ніяких <glossterm linkend="input-output" 2065 >вихідних даних</glossterm 2066 >. Тепер у решті коду можна використовувати команду <userinput 2067 >circle</userinput 2068 > як звичайну команду. Ось приклад: <screen 2069 >вивчи коло $X { 2070 повтори 36 { 2071 вперед $X 2072 ліворуч 10 2073 } 2074 } 2075 2076 перейди 200,200 2077 коло 20 2078 2079 перейди 300,200 2080 коло 40 2081 </screen> 2082 </para> 2083 <para 2084 >У наступному прикладі буде створено команду, яка повертає<indexterm 2085 ><primary 2086 >поверни</primary 2087 ></indexterm 2088 > значення. <screen> 2089 вивчи факторіал $x { 2090 $r = 1 2091 для $i = 1 до $x { 2092 $r = $r * $i 2093 } 2094 поверни $r 2095 } 2096 2097 напиши факторіал 5 2098 </screen 2099 > У цьому прикладі створено нову команду з назвою <userinput 2100 >faculty</userinput 2101 >. Якщо вхідними даними цієї команди буде число <userinput 2102 >5</userinput 2103 >, буде повернуто <userinput 2104 >5*4*3*2*1</userinput 2105 >. З допомогою команди <userinput 2106 >поверни</userinput 2107 > можна вказати <glossterm linkend="input-output" 2108 >вихідне значення</glossterm 2109 > і повернути його програмі.</para> 2110 <para 2111 >Команди можуть приймати і по декілька <glossterm linkend="input-output" 2112 >вхідних значень</glossterm 2113 >. У наступному прикладі буде створено команду, яка малює прямокутник. <screen> 2114 вивчи прямокутник $x, $y { 2115 вперед $y 2116 праворуч 90 2117 вперед $x 2118 праворуч 90 2119 вперед $y 2120 праворуч 90 2121 вперед $x 2122 праворуч 90 2123 } 2124 </screen 2125 > Тепер ви можете виконати команду <userinput 2126 >прямокутник 50, 100</userinput 2127 >, і черепашка намалює на полотні прямокутник. </para> 2128 2129 </sect1> 2130 2131 </chapter>