ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Розділ 2. Малюємо основні фігури

ЗМІСТ

 

 

Розділ 1. Знайомство з BASIC-256 ………………………… 4

1.1. Вікно BASIC-256

1.2. Ваша перша програма – оператор Say

1.3. Інше використання + (конкатенація)

1.4. Вікно введення-виведення тексту - оператор Print

1.5. Що таке "Помилка синтаксису"?

Розділ 2. Малюємо основні фігури

2.1. Малюємо прямокутники та кола

2.2. Збереження вашої програми і її пере завантаження

2.3. Малюємо лінії

2.4. Малюємо окремі точки на екрані

2.5. Числові змінні

Розділ 3. Математика з числами

3.1. Нові оператори

3.2. Ділення по модулю

3.3. Целочисленное розподіл

3.4. Нові цілочисельні функції

3.5. Нові функції для дробових чисел

3.6. Тригонометричні функції

Розділ 4. Мислити як програміст

4.1. Псевдокод

4.2. Блок-схеми

Розділ 5. Програма задає вам питання

5.1. Новий тип змінної – строкова змінна

5.2. Input – отримання тексту або чисел від користувача

Розділ 6. Порівняння, порівняння, порівняння

6.1. Істина і брехня

6.2. Оператори порівняння

6.3. Простий вибір - оператор if

6.4. Випадкові числа

6.5 Логічні оператори

6.6. Оператор вибору в більш складній формі – If / End If

6.7. Оператор вибору в повній формі – If / Else / End If

6.8. Вкладені оператори вибору

Розділ 7. Цикли і лічильники

7.1. Цикл For

7.2. Роби, поки я не скажу зупинитися

7.3. Роби, поки я кажу робити

7.4. Швидка графіка

 

 


Розділ 1. Знайомство з BASIC-256

 

У цьому розділі ви познайомитеся із середовищем BASIC-256, на прикладі операторів print і say.

Ви побачите різницю між командами, які ви віддаєте комп'ютеру, а також різницю між текстовими рядками й числами, які будуть використані програмою. Ми також досліджуємо просту математику для того, щоб показати, наскільки розумний ваш комп’ютер. Нарешті, ви дізнаєтеся, що таке синтаксична помилка і як її можна виправити.


1.1. Вікно BASIC-256

Вікно BASIC-256 розділене на 5 секцій: рядок меню, панель інструментів, область тексту програми, вікно введення-виведення тексту, вікно виведення графіки (див. рис. 1.1).


1.1.1. Верхнє меню

Верхнє меню містить кілька різних розкривних меню. Вона включає
в себе: Файл, Правка, Вид, Старт, Справка.

Меню Файл дозволить вам зберігати і завантажувати збережені раніше програми, друкувати і виходити з BASIC-256.

 

Меню Правка дозволяє вирізати, копіювати, вставляти текст і зображення з програми, текстового і графічного вікна.

Меню Вид дозволить переглянути або приховати різні вікна BASIC-256.

Меню Старт дозволить виконувати і налагоджувати вашу програму.

Меню Справка покаже вікно з інформацією про BASIC-256, також яку
версію ви зараз використовуєте.

 


Панель інструментів

Більшість пунктів меню, які ви будете використовувати, доступні на панелі інструмент.

Новий – почати нову програму.

Відкрити – завантажити збережену програму.

Зберегти – зберігає програму на диск або USB пристрій.

Вікно тексту програми

Текст програми складається з інструкцій, які вказують комп'ютеру, що і як потрібно робити. Ви будете набирати текст програм, змінювати і виправляти їх код саме в цьому вікні, а також завантажувати сюди збережені раніше програми.

Вікно введення-виведення текст

Ця вікно буде відображати висновок тексту з ваших програм. Це можуть бути і слова і числа. Якщо програма захоче поставити вам питання, то питання (а також і те, що ви надрукуєте в відповідь) теж з'явиться тут.

Вікно виведення графіки

BASIC-256 – це мова, яка вміє керувати графікою (надалі ви це побачите).

Картинки, форми і образи, створені вами, будуть відображатися в цьому вікні.

Рис. 1.1. Екран BASIC-256

 

 

Старт – виконує поточну програму.

Отладка – починає порядкове виконання програми.

Шаг – при налагодженні? перейти на новий рядок.

Стоп – припиняє виконання поточну програму.

Отмена – скасовує остання зміна в програмі.

Повтор – повертає останнім скасоване зміна.

Вырезать – переносить виділений текст в буфер обміну.

Копировать – поміщає копію виділеного тексту в буфер обміну.

Вставить – вставляє текст з буфера обміну в потрібне місце.


Розділ 2. Малюємо основні фігури

 

У цьому розділі ми почнемо працювати з графікою. Ви навчитеся малювати прямокутники, окружності, лінії і точки різних кольорів. Програми будуть ставати все більш складними, тому ви також дізнаєтесь як зберігати програми і як завантажувати їх знову запустити на виконання і відредагувати.

Малюємо лінії

Наступний оператор малювання – це line. Він малює лінію шириною один піксель від однієї точки до іншої, використовуючи поточний колір. Програма 12 показує приклад використання оператора line.

line старт x, старт y, фініш x, фініш y

Малює лінію шириною один піксель від стартової точки до кінцевої, використовуючи поточний колір.

Програма 12. Малюємо трикутник (рис. 2.7).

1 # c2_ triangle .kbs - малюємо трикутник
2
3 clg
4 color black
5
6 line 150, 100, 100, 200
7 line 100, 200, 200, 200
8 line 200, 200, 150, 100

 


 
 

Рис. 2.7. Програма 12. Малюємо трикутник

Завдання:

 
 

Використовуйте лист з альбому для креслення, щоб зобразити інші фігури, а потім напишіть програму для їх малювання. Спробуйте намалювати
прямокутний трикутник, п'ятикутник, зірку і інші фігури.

Наступна програма – приклад, що ви можете зробити, використовуючи тільки одні лінії. Вона малює куб.

Програма 13. Малюємо куб (рис. 2.8).

1 # c2_ cube .kbs - малюємо куб
2
3 clg
4 color black
5
6 # малюємо задню частину
7 line 150, 150, 150, 250
8 line 150, 250, 250, 250
9 line 250, 250, 250, 150
10 line 250, 150, 150, 150
11
12 # малюємо передню частину
13 line 100, 100, 100, 200
14 line 100, 200, 200, 200
15 line 200, 200, 200, 100
16 line 200, 100, 100, 100
17
18 # з'єднуємо кути
19 line 100, 100, 150, 150
20 line 100, 200, 150, 250
21 line 200, 200, 250, 250

 
 

22 line 200, 100, 250, 150

Рис. 2.8. Програма 13. Малюємо куб

 

Числові змінні

Комп'ютери дійсно добре запам'ятовують різні речі, в той час як у нас, людей, з цим бувають проблеми. Мова BASIC-256 дозволяє нам давати назви областям комп'ютерної пам'яті, а потім зберігати в них інформацію.

Ці іменовані області називаються змінними.

Є чотири типи змінних: числові змінні, строкові, числові масиви і масиви рядків. У цьому розділі ви дізнаєтеся, як використовувати числові змінні, а інші – в інших розділах.

 

Числова змінна

Числова змінна дозволяє присвоїти ім'я блоку осередків в оперативній
пам'яті комп'ютера. Ви можете зберігати та видавати цифрові (цілі або десяткові) значення з числової змінної в вашій програмі.

Ім'я числовий змінної повинно починатися з літери, воно може містити латинські букви і числа і чутливе до регістру.

Забороняється використовувати слова, що належать мові BASIC-256 при найменуванні змінних.

Приклади правильних імен змінних:

a, b6, reader, x і zoo.

Імена змінних чутливі до регістру. Це означає що ім'я змінної, записане літерами у верхньому регістрі і таке ж ім'я, але записане в нижньому регістрі, представляють різні області пам'яті комп'ютера

 

Наступна програма – це приклад програми, що використовує числові змінні.

Програма 16. Прості числові змінні

1 # c3_numericvariables. kbs
2 numerator = 30
3 denominator = 5
4 result = numerator / denominator
5 print result

 

Програма використовує три змінні.
У рядку 2 значення 30 зберігається в змінної під назвою "numerator".
У рядку 3 значення 5 зберігається в змінну "denominator".
У рядку 4 значення з "numerator" ділиться на значення з змінної "denominator" і зберігає результат у змінній з ім'ям "result".
Тепер, коли ми побачили змінні в дії, ми можемо переписати програму "Атака!" використовуючи змінні і формулу для розрахунку тривалості (Формула 1).


Програма 17. «Атака!» зі змінними

1 # c3_ charge 2. kbs
2 # граємо сигнал атаки, використовуючи змінні
3 beats = 120
4 dottedeighth = 1000 * 60 / beats * .75
5 eighth = 1000 * 60 / beats * .5
6 sound {392, dottedeighth, 523, dottedeighth, 659, dottedeighth, 784,
eighth, 659, eighth, 784, eighth}
7 say "Атака!"


Нові оператори

На додаток до базових математичних операцій, які ми використовували з першого розділу книги, є ще три оператора в BASIC-256. Операції, аналогічні цим є в більшості мов програмування. Це операція ділення по модулю, цілочисельного ділення і піднесення до степеня.

Операція Оператор Опис
Ділення по модулю % Повертає залишок від ділення на ціле число
Цілочисельне ділення \ Повертає (ціле) частка від ділення одного цілого на інше
Ступінь ^ Підносить одне (ціле) число в ступінь іншого (цілого)

 

Ділення по модулю

Операція ділення по модулю повертає залишок від ділення без остачі. Коли ви ділите два цілих числа куточком, залишок, отриманий в результаті і є модуль.

Програма 18. Ділення по модулю.

1 # c12_ mod. kbs
2 input "Введіть ціле число", n
3 if n% 2 = 0 then print "ділиться на 2"
4 if n% 3 = 0 then print "ділиться на 3"
5 if n% 5 = 0 then print "ділиться на 5"
6 if n% 7 = 0 then print "ділиться на 7"
7 end

Приклад виведення програми:

Введіть ціле число 10
ділиться на 2
ділиться на 5

 

вираження1% вираження2

Оператор ділення по модулю (%) повертає залишок від ділення числа Вираження1 на число вираження2.

Якщо одне або обидва вирази не цілі, то спочатку вони округлюються до цілого відкиданням дробової частини (як це робить функція int ()) до того, як операція буде проведена.

Ви може і не замислювалися, але операція ділення по модулю використовується програмістами досить часто. Основні два застосування це:
1. перевірити чи ділиться одне число на інше (програма 18)
2. отримати числа з обмеженого діапазону (програма 19)

 

Програма 19. Рухаємо м'яч з використанням ділення по модулю.

1 # moveballmod .kbs
2 # Переписана програма move ball.kbs з використанням оператора
3 # ділення по модулю для обмеження руху м'яча екраном
4
5 print "клавіша i - вгору, j - вліво, k - вправо, m - вниз, q –

закінчити"

6
7 fastgraphics
8 clg
9 ballradius = 20
10
11 # позиція м'яча
12 # починаємо з центру екрана
13 x = graphwidth / 2
14 y = graphheight / 2
15
16 # малюємо м'яч в початковому положенні на екрані
17 gosub drawball
18
19 # цикл очікування введення користувачем натискань на клавіші
20 while true
21 k = key
22 if k = asc ( "I") then
23 # y може стати негативним, + graphheight робить це число

позитивним

24 y = (y - ballradius + graphheight)% graphheight
25 gosub drawball
26 end if
27 if k = asc ( "J") then
28 x = (x - ballradius + graphwidth)% graphwidth
29 gosub drawball
30 end if
31 if k = asc ( "K") then
32 x = (x + ballradius)% graphwidth
33 gosub drawball
34 end if
35 if k = asc ( "M") then
36 y = (y + ballradius)% graphheight
37 gosub drawball ль
38 end if

39 if k = asc ( "Q") then end
40 end while
41
42 drawball:
43 color white
44 rect 0, 0, graphwidth, graphheight
45 color red
46 circle x, y, ballradius
47 refresh
48 return

Целочисленное розподіл

Операція цілочисельного ділення (\) робить традиційне ділення, але працює тільки з цілими числами і повертає ціле число. Наприклад 13 розділити на 4 буде 3 і в залишку 1. Результатом операції цілочисельного ділення буде 3.

 

Програма 20. Перевір, як ти ділиш куточком.

1 # c12_ integerdivision .kbs
2 input "Подільне", dividend
3 input "Дільник", divisor
4 print dividend + "/" + divisor + "= частка ";
5 print dividend \ divisor;
6 print "і залишок (r)";
7 print dividend% divisor;

 


Приклад виведення програми 20. Перевір, як ти ділиш куточком.

ділене 43
дільник 6
43/6 = частка 7 і залишок (r) 1

 

Нові цілочисельні функції

Три нові функції цієї глави пов'язані з перетворенням рядків і чисел з плаваючою точкою (дійсних чисел) в цілі числа. Всі три ці функції по різному обробляють десяткову частину числа.

Функція int() просто відкидає десяткову частину числа, що рівносильно вирахуванню дробової частини від (позитивного) числа або додавання десяткової частини до негативного числа. Це може привести до проблем, якщо ми намагаємося округлити числа менші нуля (0).

Функції ceil() і floor() за своїм вирішують проблему int(). Функція ceil() доповнює дробове число до найближчого цілого, більшого, ніж вихідне число, в той час як floor () завжди зменшує число до найближчого цілого, меншого даного числа.

Всіх нас вчили округляти, додаючи 0.5 і відкидати дробову частину. Якщо ми використовуємо int(), то вона працює з позитивними числами і не працює з негативні ми. У BASIC-256 для округлення ("як звично") слід використовувати формулу типу a = floor(b + 0.5).

 

Тригонометричні функції

Тригонометрія – наука про вимірювання кутів і сторін (і їх співвідношень) в трикутнику. BASIC-256 підтримує основні тригонометричні функції. Кути вимірюються в радіанах (0 - 2π). Якщо ви хочете використовувати градуси (0◦ - 360◦) в своїй програмі, то необхідно значення в градусах попередньо перетворити в радіани, а потім використовувати в тригонометричних функціях.

Функція Опис
cos(вираз) Повертає значення косинуса кута
sin(вираз) Повертає значення синуса кута
tan(вираз) Повертає значення тангенса кута
degrees(вираз) Перетворює число з радіан (0 - 2π) в градуси (0◦ - 360◦)
radians(вираз) Перетворює число градусів (0◦-360◦) в радіани (0 - 2π)
acos(вираз) Функція, зворотна косинусу (арккосинус)
asin (вираз) Функція, зворотна синусу (арксинус)
atan(вираз) Функція, зворотна тангенсу (арктангенс)

 

Псевдокод

Псевдокод – химерне слово, яке використовується для опису, крок за кроком того, що повинна робити ваша програма.

Слово псевдокод походить від грецької приставки "псевдонім" (pseudo), що в перекладі означає "підробка" і слова "код" (code), що позначає фактичні оператори програми. Псевдокод створюється не для комп'ютера, а для того, щоб допомогти вам усвідомити складність завдання і розбити її на смислові частини.

Ні "найкращого" способу написання псевдокоду. Існують десятки стандартів і кожен з них підходить для певного типу завдань. У цьому вступі ми використовуємо прості команди російською мовою для опису рішення нашої задачі.

 

Давайте напишемо просту програму, що малює шкільний автобус (як на малюнку 4.1).

Розіб'ємо цю задачу на дві частини:

• намалювати колеса;

• намалювати корпус.

 

Тепер розіб'ємо ці частини на більш дрібні і напишемо наш псевдокод:
Щоб наша програма запрацювала, все, що залишилося зробити – це записати її:

 
 

Рис. 4.1. Шкільний автобус

 

4.2. Блок-схеми

Інший метод, який використовують програмісти, щоб зрозуміти завдання, називається блок-схема. Слідуючи старій приказці краще один раз побачити, ніж сто разів почути, програмісти часом креслять діаграму, що представляє логіку роботи програми. Блок-схема є одним з найстаріших і широко використовуваних методів зображення такої логіки.

Це короткий вступ в блок-схеми охопить тільки невелику частину того, що можна з ними робити, проте вже з кількома простими елементами і з'єднаннями ви зможете моделювати дуже складні процеси. Ця технологія може добре послужити не тільки в програмуванні, але і у вирішенні багатьох інших завдань, з якими ви зіткнетеся. Ось кілька основних елементів: Кращий спосіб навчитися блок-схемами – це поглянути на приклади і спробувати зобразити щось своїми руками.

 

 
 

Блок-схема, приклад

Мал. 4.2. Сніданок – блок-схема


Розділ 5. Програма задає вам питання

Цей розділ представляє новий тип змінних (рядкові змінні) і розповідає про те, як отримувати числові і текстові відповіді від користувачів.

 

Істина і брехня

Мова BASIC-256 має ще один спеціальний тип даних, який може зберігатися в числових змінних. Це булевий (логічний) тип. Результатом порівняння або логічних операцій є логічні значення істина або брехня. Для полегшення роботи, в виразах можна використовувати дві логічні константи: true (істина) і false (брехня).

True і false

Дві булеві (логічні) константи true і false можуть бути використані в
будь-якому числовому або логічному вираженні, але, як правило, є результатом порівняння або логічних операцій. Насправді, константа true зберігається у вигляді числа один (1), а false – у вигляді числа нуль (0).

Оператори порівняння

Раніше ми обговорили основні арифметичні операції, а зараз настав час поглянути на деякі додаткові оператори. Нам часто потрібно порівняти два значення в програмі, щоб вирішити що робити далі. Оператор порівняння працює з двома значеннями і повертає істину або брехня в залежності від результату порівняння (див. Таблицю 6.1).


Таблиця 6.1: Оператори порівняння

Оператор Операція
< Менше вираження1 < вираженіе2 Повертає істину, якщо вираження1 менше вираженія2 і брехня в протилежному випадку
<= Менше або дорівнює вираження1 <= вираженіе2 Повертає істину, якщо вираження1 менше або дорівнює вираженію2 і брехня в іншому випадку
> Більше вираження1> вираженіе2 Повертає істину, якщо вираз більше вирази 2 і брехня в іншому випадку
>= Більше або дорівнює вираження1> = вираженіе2 Повертає істину, якщо вираз більше або дорівнює вираженію2 і брехня в іншому випадку
= Так само вираження1 = вираженіе2 Повертає істину, якщо вираз дорівнює висловом 2 і брехня в іншому випадку
<> Не дорівнює вираження1 <> вираженіе2 Повертає істину, якщо вираз не дорівнює вираженію2 і брехня в інакше

 


< <= > > = = <>

Шість операцій порівняння, це: менше (<), менше або дорівнює (<=), більше (>), Більше або дорівнює (> =), так само (=), не дорівнює (<>). Вони використовуються для порівняння чисел і рядків. Рядки порівнюються за алфавітом зліва направо. Ви також можете використовувати дужки для угруповання операцій.

 

Простий вибір - оператор if

 
 

Оператор if (якщо) може використовувати результат порівняння для вибіркового виконання оператора або блоку операторів. Перша програма цієї глави (програма 28) використовує три оператора if, щоб показати ми знали що ви старше, мають однаковий вік або молодше свого друга (див. Блок-схему на малюнку 6.1).

 

Мал. 6.1. Порівняємо два віку - блок-схема

іf умова then оператор

Якщо умова істинно, то виконується оператор, що знаходиться за словом then.

Випадкові числа

Коли ми розробляємо гри та симулятори, може виникнути необхідність імітувати гральні кістки, роботу рулетки в казино і інші випадкові події. BASIC-256 має вбудований генератор випадкових чисел, який зробить це для нас.

rand

Оператор rand повертає випадкове число, яке можна використовувати в вираженні. Отримане число буде в діапазоні від нуля до одиниці, але ніколи не буде рівним одиниці (0 ≤ n <1).

Якщо ви хочете генерувати випадкові цілі числа від 1 до r, використовуйте такий вираз: n = int (rand * r) + 1.

Програма 29. Кидаємо монетку.

1 # coin flip .kbs - кидаємо монету
2 coin = rand
3 if coin <.5 then print "Орел."
4 if coin> = .5 then print " Решка."

Приклад виведення програми 29. Кидаємо монетку.

Решка.

 

У програмі 29 у вас, можливо, була спокуса використовувати rand двічі, всередині кожного if. Це створило б то, що називають "логічна помилка". Запам'ятайте, що кожен раз, коли виконується rand, він повертає різні випадкові числа.


Логічні оператори

Іноді необхідно з'єднати разом кілька простих умов. Це може бути зроблено за допомогою чотирьох логічних операторів: and (і), or (або), xor (який виключає або) і not (заперечення). Логічні оператори діють подібно спілкам в природній мові, тільки or (або) використовується в значенні "одна подія, або інше, або обидва разом" (див. Таблицю 6.2. Логічні оператори).

Таблиця 6.2: Логічні оператори

Оператор Операція
AND логічне І вираження1 AND вираженіе2 Якщо обидва вирази істинні, тоді і результат буде істинним, в іншому випадку він буде хибним
OR логічне Або вираження1 OR вираженіе2 Якщо вираз 1 або вираз 2 правдиві, то результат буде істинним, якщо обидва хибні – хибним.
XOR 0+0=0, 0+1=1, 1+0=1, 1+1=0. Додавання за модулем 2.
NOT логічне заперечення NOT вираз Повертає протилежне значення. якщо вираз істинно, результат буде брехня, якщо помилково – істина.

 

and, or, xor, not

Чотири логічних оператора: логічні і (and), логічне або (or), додавання за модулем 2 або (xor) і логічне заперечення (not) дозволяють з'єднувати або змінювати вирази порівняння.

Ви також можете використовувати дужки для угруповання операцій.


End if

Оператор if /end if дозволяє створити блок програмного коду, який виконується, якщо умова істинна. Як правило, оператори всередині такого блоку пишуться з деяким відступом, щоб було зручніше читати код.

Програма 30. Кидаємо (гральні) кістки.

 

1 # dice. kbs - кидаємо (гральні) кістки
2 die 1 = int (rand * 6) + 1
3 die 2 = int (rand * 6) + 1
4 total = die 1 + die 2
5
6 print "кістка 1 =" + die1
7 print "кістка 2 =" + die2
8 print "у вас випало" + total
9 say "у вас випало" + total
10
11 if total = 2 then
12 print "очі змії!"
13 say "очі змії!"
14 end if
15 if total = 12 then
16 print "опівночі!"
17 say "опівночі!"
18 end if
19 if die1 = die 2 then
20 print "дубль - кидай знову!"
21 say "дубль - кидай знову!"
22 end if


Приклад виведення програми 30. Кидаємо (гральні) кістки.

кістка 1 = 6
кістка 2 = 6
у вас випало 12
опівночі!
дубль - кидай знову!

Правка" → "Гарний код" в меню
Пункт "Гарний код" в меню "Правка" відформатує вашу програму, зробивши її більш зручною для читання. Будуть видалені прогалини на початку і кінці рядків і зроблені відступи для блоків коду (як в операторі if / end if).

 

Програма 30. Кидаємо (гральні) кістки після виконання команди Гарний вигляд меню Правка.

# dice. kbs - кидаємо (гральні) кістки

die1 = int (rand * 6) + 1

die2 = int (rand * 6) + 1

total = die1 + die2

 

print "кістка 1 =" + die1

print "кістка 2 =" + die2

print "у вас випало" + total

say "у вас випало" + total

 

if total = 2 then

print "очі змії!"

say "очі змії!"

end if

 

if total = 12 then

print "опівночі!"

say "опівночі!"

end if

 

if die1 = die2 then

print "дубль - кидай знову!"

say "дубль - кидай знову!"

end if

 

end

 

 

Вкладені оператори вибору

І останнє. Оператори if / end if і if / else / end if можна вкладати один в одного. Можливо, звучить важкувато, але в наступних розділах ви побачите як це відбувається.

Програма 32. Вкладений оператор IF ..end

# Три фомули

input "Х=", X

Print "X=" + X

If X<0 Then

Y=Sin(X)

else

If X>5 then

Y=Cos(X)

else

Y=X^2

endif

endif

end

Цикл For

Найбільш поширений вид оператора циклу – це for. Цикл for повторює блок операторів вказане число раз, відстежуючи значення лічильника. Лічильник циклу може починатися з будь-якого значення і завершуватися будь-яким значенням, крок збільшення лічильника також може бути будь-яким.

Програма 33 – простий приклад використання циклу for, друкує і промовляє цифри від 1 до 10 (включно). Програма 34 вважає за 2, починаючи з нуля і закінчуючи 10.

Програма 33.

# for .kbs

for t = 1 to 10

print t;

say t

next t

Робота програми 33: 12345678910

Програма 34. Друкує і промовляє цифри 0, 2, 4, 6, 8, 10.

# forstep2 .kbs

for t = 0 to 10 step 2

print t;

say t

next t

Робота програми 34: 0246810

 

for лічильник = вираз1 to вираз2 [step вираз 3]

оператор (и)

next лічильник

Виконує певний блок коду вказане число раз. Змінна лічильник починає зі значення вираження1. Після кожного виконання блоку операторів лічильник збільшується на значення вираз3 (або на одиницю, якщо крок – так перекладається англійське слово step – невідомий). Цикл припиняється, коли значення лічильника перевищить значення вираз2.

Використовуючи цикл, можна легко малювати дуже цікаві картинки. Програма 35 малює муаровий узор1. Це дійсно цікаве зображення виникає тому, що комп'ютер не в змозі намалювати абсолютно пряму лінію2. Оскільки малювання відбувається по точках (пікселям), лінія під нахилом виглядає як драбинка. І якщо ви уважно подивитеся на лінії, які ми намалювали, то побачите, що вони на самому справі зубчасті.

Програма 35. Муаровий візерунок.

1 # moire . kbs

2 clg

3 color black

4 for t = 1 to 300 step 3

5 line 0, 0, 300, t

6 line 0, 0, t, 300

7 next t

Роби, поки я кажу робити

Третій тип циклу – while / end while – перевіряє умову перед виконанням кожного повтору, і якщо результат перевірки умови приймає значення істина (true), то виконується код в циклі. Цикл while / end while може виконати внутрішній код кілька разів або не виконати жодного разу.

Іноді нам потрібна програма з нескінченним циклом, поки сам користувач не зупинить її. Це може бути легко зроблено за допомогою логічної константи true (істина) (див. програму 39).

Програма 39. Вічний цикл.

# while true. kbs

while true

print "більше ніколи";

end while

while умова

оператор (и)

end while

Виконує оператор(и) в тілі циклу знову і знову, поки умова істинна.

Оператор (и) буде виконано нуль (0) або кілька разів.

Програма 40 використовує while / end while для рахунку від 1 до 10 подібно програмі 33, яка використовувала для того ж цикл for.

Програма 40. While рахує до 10

1 # whilefor .kbs

2 t = 1

3 while t <= 10

4 print t

5 t = t + 1

6 end while

Швидка графіка

Коли нам потрібно швидко виконати багато графічних операцій, наприклад, при створенні анімації або в іграх, BASIC-256 пропонує режим «швидкої графіки». Такий режим включається командою fastgraphics. В цьому режимі вікно для виведення графіки буде оновлюватися тільки при виконанні команди refresh.

fastgraphics

Refresh

Команда fastgraphics включає режим «швидкої графіки» . В цьому режимі вікно для виведення графіки буде оновлюватися тільки по команді refresh

Включивши «швидкої графіки»під час виконання програми, ви не зможете повернутися в стандартний (повільний) режим. Після завершення виконання програми режим швидкої графіки вимикається автоматично (примітка розробника).

 

Програма 41. Калейдоскоп.

1 # kalidescope .kbs

2 clg

3 fastgraphics

4 for t = 1 to 100

5 r = int ( rand * 256)

6 g = int ( rand * 256)

7 b = int ( rand * 256)

8 x = int ( rand * 300)

9 y = int ( rand * 300)

10 h = int ( rand * 100)

11 w = int ( rand * 100)

12 color rgb (r, g, b)

13 rect x, y, w, h

14 rect 300-x-w, y, w, h

15 rect x, 300-y-h, w, h

16 rect 300 -x-w,300 -y-h, w, h

17 next t

18 refresh

Запустіть програму 41, попередньо видаливши або закоментувавши рядок номер 3, з командою fastgraphics. Ви бачите різницю?

У «Великий програмі» цього розділу ми будемо використовувати цикл while для анімації підстрибує м'яча у вікні для виводу графіки.

 

Програма 42. Велика програма – стрибучий м'яч

1 # bouncingball .kbs

2 fastgraphics

3 clg

5 # початкова позиція м'яча
6 x = rand * 300
7 y = rand * 300
8 # розмір м'яча
9 r = 10
10 # швидкість за напрямками х і y
11 dx = rand * r + 2
12 dy = rand * r + 2
13
14 color green
15 rect 0, 0, 300, 300
16
17 while true
18 # стираємо старий м'яч
19 color white
20 circle x, y, r
21 # обчислюємо нову позицію
22 x = x + dx
23 y = y + dy
24 # зіткнення з лівого або правого кордоном
25 if x <0 or x> 300 then
26 dx = dx * -1
27 sound 1000, 50
28 end if
29 # зіткнення з верхньої або нижньої кордоном
30 if y <0 or y> 300 then
31 dy = dy * -1
32 sound 1500, 50

33 end if
34 # малюємо новий м'яч
35 color red

36 circle x, y, r
37 # оновлюємо вікно графіки
38 refresh
39 end while


Масиви рядків

Масиви можуть зберігати не тільки числа, а й рядки. Щоб відкрити строковий масив необхідно використовувати ідентифікатор строкової змінної в операторі dim. Все, що ми знаємо про числові масиви можна застосувати і до строкових з урахуванням відмінності в типах даних. Використання строкових масивів показано в програмі 69.

 

Програма 45. Список друзів.

1 # listoffriends .kbs
2 print "Склади список друзів"
3 input "Скільки всього друзів?", N
4
5 dim names$ (n)
6
7 for i = 0 to n -1
8 input "Напиши ім'я одного?", names$ [i]
9 next i
10
11 cls

12 print "Мої друзі"
13 for i = 0 to n -1
14 print "Друг номер";
15 print i + 1;
16 print "це" + names$ [i]
17 next i

 

Приклад виведення програми 45. Список друзів:
Склади список друзів
Скільки всього друзів? 3
Напиши ім'я одного? Іван
Напиши ім'я одного? Артем
Напиши ім'я одного? Денис
- Очищення екрану -
Мої друзі
Друг номер 1, це Іван
Друг номер 2, це Артем
Друг номер 3, це Денис

 

Присвоєння значень масивів

Ми використовували фігурні дужки ({}) для відтворення музики, малювання багатокутників і штампів. Фігурні дужки можна також використовувати для завдання конкретних значень масивів.

 

Програма 46. Завдання значень масиву списком.

1 # arrayassign .kbs
2 dim number (3)
3 dim name$ (3)
4
5 number = {1, 2, 3}
6 name$ = {"Юра", "Аня", "Петя"}
7
8 for i = 0 to 2
9 print number [i] + "" + name$ [i]
10 next i

 

Приклад виведення програми 46. Завдання значень масиву списком.

1 Юра
2 Аня
3 Петя

 

array = {знач0, знач1,. . . }

array$ = {текст 0, текст1,. . . }

 

Масиву можна задати значення (починаючи з індексу 0) за допомогою списку значень, ув'язнених у фігурні дужки. Це стосується як до числовим, так і строковим масивів.

Графіки і масиви

У розділі 8 ми використовували списки для створення багатокутників і штампів. Масиви також застосовні для цієї мети, що призведе до спрощення коду. Досить один раз визначити штамп або багатокутник, зберігаючи дані в масиві, і використовувати цей масив в різних місцях програми.

У масиві, використовуваному для штампів і багатокутників парні елементи (0, 2, 4 ,...) Містять абсциси (х), а непарні елементи (1, 3, 5,...) Містять ординату (y) точок, що утворюють фігуру , по два значення на кожну точку.

Програма 47. Штамп з тінню (мал. 8.2).

1 # shadowstamp .kbs
2
3 dim xmark (24)
4 xmark = {-1, -2, 0, -1, 1, -2, 2, -1, 1, 0, 2, 1, 1, 2, 0, 1, -1, 2, -2, 1 , -1, 0, -2, -1}
5
6 clg
7 color grey
8 stamp 160, 165, 50, xmark
9 color black
10 stamp 150, 150, 50, xmark

 


Мал. 8.2. Програма 47. Штамп з тінню

 
 

 

 

ЗМІСТ

 

 

Розділ 1. Знайомство з BASIC-256 ………………………… 4

1.1. Вікно BASIC-256

1.2. Ваша перша програма – оператор Say

1.3. Інше використання + (конкатенація)

1.4. Вікно введення-виведення тексту - оператор Print

1.5. Що таке "Помилка синтаксису"?

Розділ 2. Малюємо основні фігури

2.1. Малюємо прямокутники та кола

2.2. Збереження вашої програми і її пере завантаження

2.3. Малюємо лінії

2.4. Малюємо окремі точки на екрані

2.5. Числові змінні

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти