Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник паскаль.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

Організація вводу-виводу

Власне кажучи, нас в даний момент цікавить саме перший і останній процес спілкування між диригентом (програмістом) і музикантом (ПЕОМ). Саме цей розділ спілкування називають в програмуванні організацією вводу–виводу інформації. В умовах мови програмування Pascal та нашої гри цій меті служать дві команди, або як ще іноді кажуть дві інструкції: Read (Readln) та Write (Writeln), які на зрозумілу нам українську мову переводяться як прочитати (отримати) та написати (вивести, надрукувати) необхідні дані. Закінчення “–ln” в деяких варіантах команд трактується як “перейти на новий рядок” (скорочення від англійського – line new).

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

Write(s1, t, ’ дані про особу ’, man);

вказує на те, що на екран комп’ютера будуть виведені значення змінних sl, t, після чого буде написана фраза ” дані про особу ” і в кінці надруковано значення змінної man. Відсутність вище вказаного закінчення “–ln” говорить про те, що подальші повідомлення будуть виводитись на екран саме в цьому рядку, а не в іншому місці. Уважні читачі мабуть вже самі помітили, що між символами ’ ’ можуть стояти будь–які повідомлення на довільній розмовній мові, найбільш зрозумілій користувачу або програмісту.

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

write(s:n:m); {s – змінна типу real, а n,m – integer}

де n – кількість цифр у всьому числі;

m – кількість значущих цифр у дробовій частині змінної.

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

write(10*pi:1:3);

повинен по ідеї вивести тільки одну цифру, але виконання програми:

program demowrite1;

uses crt;

begin

clrscr; { очистити екран }

write(10*pi:1:3);

readln;

end.

дає на екрані монітору результат 31.416.

Зверніть увагу на фразу uses crt; перед початком програми. Ця фраза повідомляє, що до нашої програми автоматично підключається модуль crt. Модуль – це додаткова програма, яка підключається до вашої програми. Існують стандартні модулі, до яких відноситься і модуль crt, крім того кожен програміст може створювати власні модулі, які ще прийнято називати бібліотеками, і підключати їх до своїх програм. Зроблено це для того, щоб зменшити об’єм програми, яку потрібно написати, і мати можливість використовувати раніше написані програми багато разів. З питання створення власних модулів рекомендуємо звернутись до технічної документації, яка поставляється фірмою – розробником разом з компілятором Паскаля.

Ми ж лише вкажемо на деякі операції, що містяться в згадуваному модулі crt:

  • ClrScr – очищення екрану монітору;

  • Рис. 1

    Gotoxy(x,y) – встановити курсор на екрані у точці з координатами (х,у). Тут потрібно сказати про координати екрану. Екранна система координат має вигляд, як показано на рис. 1. Зверніть увагу, що початок координат знаходиться в лівому верхньому куті екрану. Крім того, вісь ОY направлена вниз. У текстовому режимі значення координат змінюються в межах:

0 £ х £ 79

0 £ у £ 24

тобто можна виводити 80 символів по осі ОХ і всього 25 рядків.

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

  • TextColor (color); – встановлює колір літер тексту.

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

№ кольору

Ім’я кольору

Значення кольору

0

Black

чорний

1

Blue

синій

2

Green

зелений

3

Cyan

голубий

4

Red

червоний

5

Magenta

фіолетовий

6

Brown

коричневий

7

LightGrey

світлосірий

8

DarkGrey

темносірий

9

LightBlue

світлосиній

10

LightGreen

світлозелений

11

LightCayn

світлоголубий

12

LightRed

рожевий

13

LightMagenta

бузковий

14

Yellow

жовтий

15

White

білий

Таблиця 2. Значення кольорів у модулі crt.

А взагалі слід відмітити, що значення параметру Color може змінюватись в межах від 0 до 255, в залежності від типу монітору (CGA, EGA, VGA і т.д.), і навіть в більших.

  • TextBackGround (color); – встановлює колір для фону символів.

  • Delay (Time); – затримка тривалості виконання програми. Одночасно може виконувати роль тривалості звукового сигналу (див. нижче).

  • Sound (n); – подання звукового сигналу частоти n на вмонтований в ПЕОМ внутрішній динамік (не путайте з Sound – картою!).

  • NoSound; – відключення звукового сигналу.

Вирази

Арифметичні вирази будуються з констант, змінних, функцій і операцій над ними.

Функція

Тип аргументу

Тип результату

Математичний запис, коментар

 abs(x)

 integer, real

 integer, real

 |x|

 arctan(x)

 integer, real

 real

 arctgx

 cos(x)

 integer, real

 real

 cosx

 sin(x)

 integer, real

 real

 sinx

 exp(x)

 integer, real

 real

 ex

 ln(x)

 integer, real

 real

 lnx

 sqrt(x)

 integer, real

 real

 

 sqr(x)

 integer, real

 integer, real

 x2

 ord(x)

 упорядкований

 integer

 ASCII-код символу

 succ(x)

 упорядкований

 упорядкований

 повертає наступне значення x

 pred(x)

 упорядкований

 упорядкований

 повертає попереднє значення x

round(x)

 real

 integer

 заокруглює чис­ло х до цілого

 trunc(x)

 real

 integer

 відкидає дробову частину числа х

 int(x)

 real

 real

 відкидає цілу частину числа х

 frac(x)

 real

 real

 дробова частина числа х

 odd(x)

 integer

 boolean

 true (x – непар­не), false (x – парне)

 random(x)

 integer

 integer

 Генерує випад­кове число з діа­пазону від 0 до x

 upcase(x)

 char

 char

 замінює малу літеру латинської абетки на велику

 Процедури:

 inc(x,y)

 integer

 integer

 збільшує x на y

 inc(x)

 integer, char

 integer, char

 збільшує x на 1

 dec(x,y)

 integer

 integer

 зменшує x на y

 dec(x)

 integer, char

 integer, char

 зменшує x на 1