- •Інформатика
- •1. Складання алгоритмів
- •1.1. Визначення алгоритму
- •Алгоритм повинен бути:
- •1.2. Алгоритми на природній мові
- •1.3 Алгоритми лiнійної структури
- •1.4 Алгоритми розгалуженої структури
- •1.5 Алгоритм циклічної структури
- •1.6 Комбіновані алгоритми
- •1.7 Схематичне зображення алгоритмів
- •Опис символів
- •2 Алгоритмічна мова qbasic
- •2.1 Інструментарій
- •2.2 Система меню
- •Поле опцій
- •Перемикачі
- •Поле вводу
- •Блок контролю
- •Поле списків
- •2.3 Редактор
- •Маркіровка тексту
- •Обробка тексту
- •2.4 Збереження і завантаження програм
- •Збереження
- •Збереження з іншим іменем
- •Завантаження програми
- •2.5 Складання нової програми
- •2.6 Друк програми
- •2.7 Пошук та зміна тексту
- •Пошук тексту
- •Багаторазовий пошук
- •Зміна тексту
- •2.8 Робота з кількома вікнами
- •2.10.1 Елементарні конструкції мови qbasic
- •Символи
- •2.10.2 Чисельні та символьні дані
- •2.10.3 Стандартні функції
- •2.10.4 Вирази
- •2.10.5 Операції та їх приорітет
- •Логiчні операцiї
- •2.11 Оператори мови qbasic
- •2.11.1 Оператор присвоєння
- •2.11.2 Оператор swap
- •2.11.3 Оператори введення-виведення Оператори введення read, data, restore
- •Оператор введення input
- •Оператор виведення print. Функції spc, tab
- •Оператор виведення print using
- •2.11.4 Оператори керування
- •Оператор goto
- •Оператор on…goto
- •Оператори stop і cont
- •Оператори if… then… else
- •Блок умовного переходу в програмі
- •Оператори gosub і return
- •Оператор on...Gosub
- •Цикл while
- •Цикл do
- •Оператор вибору select case
- •2.11.5 Графiчнi оператори Оператор view
- •Оператор screen
- •Оператор circle
- •Оператор window
- •Оператор line
- •Оператор draw
- •Оператор preset, pset
- •Оператор locate
- •2.11.6 Функції і процедури, визначенні користувачем
- •Функції-вираз
- •Власні функції
- •Власні процедури
- •2.11.7 Масиви Оператори option base, dim, erase
- •Встановлення кольорів екрана
- •2.11.9 Робота з файлами
- •2.11.10 Функція eof
- •Перелік посилань
Оператор preset, pset
Оператор PRESET, PSET малює задану точку на екрані.
PRESET [STEP] (x!,y!) [,color%]
PSET [STEP] (x!,y!) [,color%]
STEP – вказує, що x! та y! задані відносно поточного положення
курсора.
(x!, y!) – координати екрана точки растра, яку установлють.
[сolor%] – атрибут кольору, точки растра яку установлють. Коли [сolor%] пропущено, PRESET використовує поточний колір фону, а PSET використовує поточний колір переднього плану.
Доступні атрибуті кольору, залежать від вашого графічного відеоадаптера та режиму екрана. Значення координат залежать від графічного відеоадаптера, режиму екрана та останніх установок в операторах VIEW та WINDOW.
Приклад. Для виконання цього прикладу потрібний графічний відеоадаптер.
SCREEN 1
FOR i % = 0 TO 320
PSET (i%, 100)
FOR delay% = 1 TO 100: NEXT delay%
PRESET (i%, 100)
NEXT i%
Приклад для сукупного використання графічних операторів:
SREEN 1,0
VIEW(1, 1) - (159, 98), , 1
WINDOW (-318, -198) - (318, 198)
LINE (-318, 0) - (318, 0)
LINE (0, 198) - (0, -198)
FOR I = -300 TO 300 STEP 2
PSET (I, COS ( I*3.14)), 2
END
PI = 3.14158
SCREEN 1: CLS
CIRCLE (160, 100), 79, 3
CIRCLE (160, 100), 80, 3
ST = .77: SP = .77
FOR I = 1 TO 30 STEP 3
ST = (ST - .015 ): SR = ST * PI
SP = SP + .04
CIRCLE (160, 93), 100+ 1, 3, SR, SP, .3
Оператор locate
Для переміщення курсора в необхідну позицію екрана, здебільшого застосовують оператор LOCATE. Це дуже зручно, наприклад, для створення складних форм виведення на екран.
LOCATE [Рядок] [, (Стовпчик) [, [Курсор] [, Старт [, [Стоп]]]]
Рядок – рядок екрана (1-25), на яку повинен переміститись курсор.
Стовпчик – стовпчик екрана (1-80), до якого повинен переміститися курсор.
Курсор-вказує, в якому стані знаходиться курсор при виведенні. 0-Вимкнутий, 1-вімкнутий.
Старт, Стоп -числа від 1 до 31, що задають висоту курсора.
Синтаксично команда має вигляд достатньо складний, але ситуацію спрощує тe, що більшість параметрів необов’язкові.
Приклад 1. Після очищення перше виведення на екран повинно бути в десятому рядку.
‘Виведення в десятий рядок після CLS
CLS
LOCATE 10
PRINT "Виведення з'являється в десятому рядку екрана"
‘Кінець програми .
Приклад 2. Цей приклад демонструє корисність оператора LOCATE у разі виведення інформації на екран.
'Оформлення зображення на екрані для висоти, ширини, довжини
CLS
LOCATE 10.5 'Перше виведення в рядок 10 стовпчик 5
PRINT "Довжина:"
LOCATE 11.5
PRINT "Ширина:"
LOCATE 12.5
PRINT "Висота:"
LOCATE 10.15
INPUT "", helghtl
LOCATE 11.15
INPUT "", breadth!
LOCATE 12.15
INPUT “", length!
'Кінець програми
2.11.6 Функції і процедури, визначенні користувачем
В попередніх розділах ви ознайомилися з деякими вбудованими стандартними функціями QBASIC. Тепер розглянемо функції, що визначаються самим киристувачем.
Функції-вираз
Крім стандартних функцій, можливо використання функцій, визначаємих користувачем. Кількість таких функцій практично безгранично.
Функції цього виду використовуються, коли необхідно обчислити той самий вираз при різних значеннях змінної. Формат опису функції
DEF FN < ім'я функції > (< аргумент 1 >, < аргумент 2 >...) = ( вираз ).
Аргументи, які використовуються в описі функції, називаються формальними параметрами функції. Один від іншого вони відділяються комами. Опис функції може знаходитися в будь-якому місці програми.
Функції могуть бути чисельними або символьними. Розглянемо чисельні функції. Вираз у цьому вигляді буде тільки алгебраїчним.
До функції, описаній в програмі можна звертатися, тобто вираховувати значення функції за будь-яких конкретних значень змінної, які називаються фактичними параметрами. В цьому випадку формальні параметри заміняються відповідними фактичними та відбувається обчислення функції, описаної виразом з правої частини опису функції. Чисельність формальних та фактичних параметрів повинно збігатися, а їх типи повинні бути сумісними. Фактичним параметром може бути змінна, число або вираз, наприклад:
А=17:N=3
DEF FNB(X,Y,Z)=X^2+Y-Z*A
C=FNB(N,3,A+N/A)
PRINT C
Якщо у вираз, що визначає функцію, входять деякі не фіктивні змінні, то при обчисленні функції в неї підставляють їх поточні значення.
Якщо під час роботи програми знаходиться синтаксична помилка та вказується номер рядка, в якому обчислюється функція, то сама помилка може бути не тільки в цьому рядку, але і в рядку програми, в якому міститься опис цієї функції.
