Смекни!
smekni.com

Програмування в середовищі Pascal (стр. 8 из 16)

Функція KeyPressed

Повертає TRUE, якщо на клавіатурі натиснута яка-небудь клавіша, інакше – FALSE. Символ залишається в буфері. Ця функція не обробляє допоміжні клавіші Shift, Alt, Ctrl і т.д. Наприклад, затримку виконання

програми, поки не буде натиснута яка-небудь клавіша, можна зробити так:

While not keypressed do;

Функція ReadKey

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

Процедура Window(x1,y1,x2,y2)

Визначає розміри текстового вікна: x1, y1 – координати лівого верхнього кута; x2, y2 – нижнього правого.

Текстове вікно – це обмежена ділянка екрану, яка виконує ті ж функції, що і повний екран. Максимальний розмір вікна – весь екран (приймається за умовчанням), тобто (1, 1, 80, 25), мінімальний – два стовпці в одному рядку.

Надалі всі координати задаються щодо поточного вікна.

Процедура TextColor(c)

Встановлює колір символів (табл.6). Мерехтіння можна задати, додавши до коду кольору 128 (константа BLINK).

Таблиця 6 – Кольори

Темні кольори Яскраві кольори
Ім'я Зн. Призначення Ім'я Зн. Призначення
Black 0 Чорний DarkGray 8 Темно-сірий
Blue 1 Синій LightBlue 9 Світло-синій
Green 2 Зелений LightGreen 10 Ясно-зелений
Cyan 3 Голубий LightCyan 11 Ясно-голубий
Red 4 Червоний LightRed 12 Рожевий
Magenta 5 Фіолетовий LightMаgenta 13 Світлофіолетовий
Brown 6 Коричневий Yellow 14 Жовтий
LightGray 7 Світло-сірий White 15 Білий

Процедура TextBackground(c)

Встановлює колір фону. Можна визначити тільки перші 8 кольорів (TextColor, значення с від 0 до 7 відповідно до табл.3). Мигання фону неможливе.

Приклади:

TextColor(White); { білий колір символів }

TextColor(15);

TextColor(Red+Blink); {червоні мерехтливі символи }

TextColor(4+128);

TextColor(132);

TextBackGround(Green); { зелений фон }

TextBackGround(2);

Процедура ClrScr

Очищає поточне вікно кольором фону. Усі символи замінюються пропусками.

Процедура GotoXY(x,y)

Переміщає курсор в задану точку (x,y) щодо поточного вікна.

Функція WhereX

Повертає поточне значення координати Х (номер стовпця) курсору щодо поточного вікна.

Функція WhereY

Повертає поточне значення координати У (номер рядка) курсору щодо поточного вікна.

Процедура Delay(Ms)

Задає затримку виконання програми на вказане число мілісекунд.

Процедура Sound(Hz)

Запускає внутрішній звуковий пристрій. Hz – частота.

Процедура NoSound

Вимикає внутрішній звуковий пристрій.

Приклади

1 Формування вікна з тінню:

TextBackground(7); {світло-сірий фон}

ClrScr;

Window(31,6,51,11);

TextBackground(3); {голубий фон}

ClrScr;

Window(30,5,50,10);

TextBackground(0); {чорний (за умовчанням) фон}

ClrScr;

Write( . ); {виведення в створене вікно}

Write( . );

2 Видача сигналу про настання якоїсь події:

Sound(350);

Delay(200); Nosound;

Delay(200);

Sound(400);

Delay(200);

Nosound;

4. ЛАБОРАТОРНА РОБОТА 1. НАЙПРОСТІША ПРОГРАМА.

ОБЧИСЛЕННЯ ЗНАЧЕННЯ ФУНКЦІЇ, ЗАДАНОЇ УМОВНО

4.1 Теоретичні відомості

1 Оператор привласнювання – це один із самих важливих операторів. Використовується для обчислення значення виразу і привласнення його змінній. Формат оператора:

<ім'я змінної>:=<вираз>;

Зліва стоїть змінна, справа – вираз, значення якого має бути обчислено. Розділяє ці частини складений символ “:=”, який інтерпретується як один елемент.

Приклад:

У:= 5 + SIN(X);

B:= 2 * X/2 + 3 * X - 5;

D:= ( A>0 ) AND ( B>0 );

С:=’Всього’;

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

Змінна і значення виразу повинні належати одному типу. Виключення може складати випадок, коли вираз має значення цілого типу, а змінна – дійсного типу. Так, у вищенаведеному прикладі змінні мають бути описані таким чином:

Var Y,B: Real;

D: Boolean;

С: String[6];

Комп’ютер можна використовувати тільки в тому випадку, коли він має засоби для введення вхідних даних та виведення результатів розрахунків. Причому, результати повинні подаватися у формі, зручній для сприйняття людиною. Для організації вводу та виводу даних через відеотермінал (дисплей) користувача використовуються наступні оператори.

2Оператор введення – дозволяє ввести з клавіатури значення заданих змінних. Модифікації оператора:

READ(b1,b2 ... ,bn);

READLN(b1,b2 ... ,bn); де b1, b2 ..., bn - список введення, тобто перелік ідентифікаторів

змінних, значення яких вводяться.

Виконання програми припиняється і очікується введення з клавіатури рядка даних. В одному рядку одночасно можна набрати значення декількох змінних, відділяючи їх один від одного пропусками (пробілами). Введення рядка завершується при натисканні клавіші <Enter>. Типи значень, що вводяться, повинні відповідати типам змінних, перерахованих в списку введення, інакше буде зафіксована помилка.

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

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

Порожній (без списку введення) оператор READLN забезпечує перехід до нового рядка.

3 Оператор виведення здійснює виведення інформації на екран дисплея. Модифікації оператора:

WRITE(b1,b2 ..., bn);

WRITELN(b1,b2 ..., bn); де b1, b2 ..., bn – список виведення, тобто вирази, значення яких обчислюються, перетворюються в текстовий вигляд і виводяться на екран. Після кожного виразу через двокрапку може бути заданий шаблон перетворення у вигляді:

bi:m

або: bi:m:n

Тут m означаєзагальну кількість позицій (символів), що відводяться під значення, n – кількість позицій, що відводяться під дробову частину числа (задається тільки для дійсних чисел).

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

Виведення починається з поточної точки екрану (в якій знаходиться курсор).

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

Ці ж оператори часто використовуються і для виведення інформації на принтер. Для цього в операторах виведення перед списком виведення слід вказати ключове слово lst, а до програми необхідно приєднати стандартний модуль PRINTER:

USES PRINTER;

За допомогою розглянутих конструкцій можна створювати лише прості програми зі строго лінійною структурою. Б

4 Оператор безумовного переходу GOTO використовується для зміни природного порядку виконання операторів і переходу до виконання програми, починаючи із заданого оператора. Оператор, на який здійснюється перехід, повинен бути помічений міткою. Ця мітка указується в операторі GOTO:

GOTO n;

Усі мітки, що використовуються в програмі, мають бути описані в розділі опису міток LABEL.

5 Оператор умовного переходу дозволяє змінити порядок виконання операторів у програмі залежно від певних умов, будувати розгалуження в програмі. Загальний вид оператора умовного переходу:

IF <умова> THEN

<оператор 1> ELSE

<оператор 2>;

Якщо умова, що задана в операторі IF, істинна (має значення TRUE), то виконується THEN-гілка – оператор (простий або складовий), що стоїть після THEN (тобто <оператор 1>). Інакше (якщо умова не виконується, має значення FALSE) виконується ELSE-гілка – оператор (він теж може бути складовим), що стоїть після ELSE (тобто <оператор 2>). Після виконання однієї з гілок оператора робота програми продовжується з оператора, наступного за IF. Використовується також усічений формат оператора умовного переходу:

IF <умова> THEN <оператор>;

При його використовуванні THEN-гілка виконується при істинній умові, якщо ж умова має значення FALSE – оператор ігнорується, і відразу виконується оператор, що стоїть за оператором IF.

Слід звернути увагу, що після оператора <оператор 1> ставити ознаку кінця оператора (символ крапка з комою) не можна, якщо слідом за ним іде зарезервоване слово ELSE, оскільки це не кінець оператора.

Нагадаємо, що якщо в якійсь гілці вимагається виконати декілька (більше одного) операторів, з них необхідно утворити складовий оператор, тобто укласти ці оператори в операторні дужки BEGIN і END.