Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка_ОТтаП_Ч2

.pdf
Скачиваний:
14
Добавлен:
12.05.2015
Размер:
1.16 Mб
Скачать

6.Створіть файл f дійсних чисел від А до В с кроком х (значення вводяться із клавіатури). Проаналізувавши в програмі створений файл, створіть ще 3 файли:

що містить не додатні числа,

що містить числа з нульовою дробовою частиною,

що містить модулі чисел.

Виведіть на екран вміст файлів.

7.Створіть файл f дійсних чисел від А до В с кроком х (значення вводяться із клавіатури). Проаналізувавши в програмі створений файл, створіть два файли:

що містить цілі частини числа,

що містить дробові частини чисел.

Виведіть на екран вміст файлів.

8.Створіть два файли дійсних чисел (значення вводяться із клавіатури). Проаналізувавши в програмі створені файли, створіть файл, що містить суми відповідних чисел файлів. Виведіть на екран вміст файлів.

9.Створіть два файли дійсних чисел (значення вводяться із клавіатури). Проаналізувавши в програмі створені файли, створіть файл текстового типу, що містить суми відповідних чисел файлів у вигляді 2.5+3.4=5.9. Виведіть на екран вміст файлів.

10.Створити файл довільних символів (символи вводяться із клавіатури). Видалити з файлу кожний другий символ. Вивести на екран початковий і кінцевий вміст файлу.

11.Створити файл довільних символів (символи вводяться із клавіатури). Вивести на екран вміст файлу. Кожну п'ятірку символів вивести переверненою в інший файл. Вивести на екран вміст отриманого файлу.

12.Створити файл довільних символів (символи вводяться із клавіатури). Вивести в один файл цифри, що містяться у файлі,

ав інший файл літери, дотримуючись первісного порядку. Вивести на екран вміст файлів.

13.Створити файл довільних символів (символи вводяться із клавіатури). Вивести в один файл цифри в порядку зростання,

ав інший файл літери за абеткою. У файлах не повинне бути повторень цифр і літер. Вивести на екран вміст файлів.

50

14.Створити файл довільних символів (символи вводяться із клавіатури). Створити файл символів, що зустрічаються в заданому файлі один раз. Вивести на екран вміст файлів.

15.Створити файл довільних символів (символи вводяться із клавіатури). Проаналізувавши файл у програмі, переписати в кінець вихідного файлу усі розділові знаки і порахувати їхню кількість. Вивести на екран вміст файлів.

16.Створити файл довільних символів (символи вводяться із клавіатури). Видалити з файлу елементи, що перебувають між першою й другою крапками (прийняти, що створений файл обов’язково має не менш двох крапок). Вивести на екран вміст файлу.

17.Створити файл довільних символів (символи вводяться із клавіатури). Замінити в ньому кожну із груп розташованих рядом крапок однією зірочкою. Додатковий файл не створювати. Вивести на екран вміст файлу.

18.Створити файл довільних символів (символи вводяться із клавіатури). Всі знайдені програмою букви російського алфавіту перенести в початок файлу, а цифри – у кінець. Всі символи, що не є буквою російського алфавіту або цифрою, переписати в інший файл. Вивести на екран вміст файлів.

19.За введеною датою народження (день і місяць, форма введення у файл довільна) доповнити файл рядками відповідного знака Зодіаку:

20.01-18.02 – Водолій

23.07-22.08 – Лев

19.02-20.03 – Риби

23.08-22.09 – Діва

21.03-19.04 – Овен

23.09-22.10 – Терези

20.04-20.05 – Телець

23.10-22.11 – Скорпіон

21.05-21.06 – Близнюки

23.11-21.12 – Стрілець

22.06-22.07 – Рак

22.12-19.01 – Козеріг

51

20.Створити файл, що містить довільні рядки. Обробити рядки таким чином, щоб між словами не було більше одного пробілу. Оброблений текст записати в новий файл. Вивести на екран його вміст.

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

22.Створити файл, що містить довільні рядки. Поміняти рядки файлу так, щоб їхній порядок був наступним: 1, к, 2, к-1, 3, к-2, 4, к-3, 5, к-4, ... к/2. Вивести на екран вміст первісного й зміненого файлів.

23.Створити файл, що містить довільні рядки. Поміняти рядки файлу так, щоб їхній порядок був наступним: 2, 1, 4, 3, 6, 5, ...

Вивести на екран вміст первісного й зміненого файлів.

24.Створити файл, що містить довільні рядки. Поміняти рядки файлу так, щоб їхній порядок був наступним: к-1, к, к-3, к-2,

к-5, к-4, ...

25.Створити файл, що містить рядки, які є арифметичними виразами, що складаються із чисел, знаків арифметичних дій (+, -, *, /), та відкриваються і закриваються круглими дужками. Перевірити його коректність.

26.Створити файл, що містить довільні рядки. Підрахувати скільки голосних і приголосних зустрічається в цьому файлі Вивести на екран вміст файлу та кількість відповідних літер.

27.Створити файл, що містить довільні рядки. Ввести з клавіатури вихідне слово. Підрахувати скільки разів зустрічається це слово у файлі. Якщо таке слово відсутнє, то вивести повідомлення «Шуканий текст не знайдений».

28.Створити файл, що містить довільні рядки. Замінити всі літери А, які зустрічаються у файлі, на набір символів «***». Якщо літера А не знайдена, то вивести повідомлення «Заміна не можлива».

29.Створити файл, що містить довільні рядки. Обробити рядки таким чином, щоб відстань між словами дорівнювала 10

52

пробілам. Оброблений текст записати в новий файл. Вивести на екран його вміст.

30. Створити файл, що містить довільні рядки. Підрахувати скільки літер і цифр зустрічається в цьому файлі. Вивести на екран вміст файлу та кількість букв і цифр.

9.8.Контрольні запитання.

8.Які є типи файлів у мові Паскаль?

1.Як організувати текстовий файл?

2.Яке призначення процедур Reset, Rewritе, Append?

3.Яке поняття файлової змінної в мові Паскаль?

4.Яке призначення процедур Аssign, Сlose?

53

10. Заняття № 10. Текстовий режим.

Мета роботи – ознайомитися з можливостями текстового режиму екрану в мові Паскаль та роботою із бібліотеками.

10.1. Поняття бібліотеки процедур та функцій.

В Турбо Паскалі крім стандартних процедур та функцій мови Паскаль передбачено використання додаткових наборів процедур і функцій, які за своїм призначенням згруповані в окремі бібліотеки (модулі). Наприклад, базові функції для роботи з клавіатурою, звуком та текстовим вводом/виводом на дисплей описані в бібліотеці Crt (Cathod ray tube – електронно-промінева трубка). А процедури для зчитування та встановлення часу і дати в операційній системі описані в бібліотеці Dos [3].

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

Program Name_90; Uses Crt,Dos; Var

i:integer;

r:real; Begin

{…}

end.

10.2. Програмування клавіатури.

Додаткові можливості для керування клавіатурою в бібліотеці Crt реалізовано за допомогою функцій KeyPressed

та ReadKey.

54

KeyPressed ця функція повертає значення типу Boolean, яке вказує чи була натиснута клавіша клавіатури. Якщо функція повертає істину, це означає, що було натискання клавіші, і буфер клавіатури містить відповідну комбінацію символів, не прочитаних програмою. Якщо ж функція повертає хибність – це означає, що натискання клавіш не було, і буфер клавіатури – пустий. Слід зазначити, що при натисканні клавіш відповідні коди записуються в проміжний буфер, звідки вони потім можуть зчитуватись програмою, цей буфер називається – буфером клавіатури. Буфер клавіатури має фіксований обсяг, і при повному його заповненні нові коди перестають записуватись, а комп’ютер подає звуковий сигнал.

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

натиснення будь-якої клавіші.

При використанні функції ReadKey треба враховувати, що при натисканні деяких клавіш, в буфер клавіатури попадає не один, а два символи, наприклад, при натисканні F1 … F12, клавіш керування курсором (стрілок), Ins, Del, PgUp, PgDn, Home, End у буфер клавіатури записується спочатку символ #0, а потім вже безпосередньо код клавіші. Якщо ж натискається будьяка абеткова або цифрова клавіша, то в буфер записується код відповідної латинської літери або цифри.

Наприклад, розглянемо програму, яка дозволяє читати і виводити на екран коди будь-яких клавіш. Свою роботу програма завершує при натисканні клавіші Esc з кодом #27.

Program Name_101;

Uses Crt;

Var

ch:char;

Begin

Repeat

ch:=ReadKey; {зчитуємо перший символ}

Write(ch); {виводимо його на екран}

if ch=#0 then Write(’ ’,Ord(ReadKey));

{якщо символ нуль, то зчитуємо

55

наступний і виводимо його на екран через пробіл}

Writeln; {переходимо на новий рядок} Until c=#27{якщо код 27 завершуємо роботу}

End.

Таблиця кодів деяких клавіш.

Код

 

Клавіша

Перший символ

 

Другий символ

 

 

 

(якщо він є)

 

8

 

 

Backspase

9

 

 

Tab

13

 

 

Enter

32

 

 

Пробіл

48…57

 

 

0…9

65…90

 

 

A…Z

97…122

 

 

a…z

0

 

71

Home

0

 

72

Переміщення вгору

0

 

73

PgUp

0

 

75

Переміщення вліво

0

 

77

Переміщення вправо

0

 

79

End

0

 

80

Переміщення вниз

0

 

81

PgDn

0

 

82

Ins

0

 

83

Del

0

 

59…70

F1…F12

10.3.Текстовий режим відображення.

Вперсональних комп’ютерах за візуальне відображення інформації відповідає дисплей, який складається з двох основних частин: монітора, на якому відображається інформація, та відеоадаптера – блока керування дисплеєм, що зазвичай знаходиться в корпусі комп’ютера і виконує зв’язок між комп’ютером та монітором [4].

Перші відеоадаптери для персональних комп’ютерів дозволяли відображати тільки текстову інформацію, тобто

56

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

В бібліотеці Crt описано ряд корисних функцій та процедур для роботи з текстовим режимом:

TextMode(mode:word) – процедура, для завдання одного з текстових режимів. Параметр mode може приймати значення, однієї з визначених в бібліотеці Crt констант:

Const

BW40=0; {чорно-білий 40х25}

Co40=1; {кольоровий 40х25}

BW80=2; {чорно-білий 80х25}

Co80=3; {кольоровий 80х25}

Font8x8 =256; {80х50 або 80х43 в залежності від відеоадаптера}

TextColor(color:byte) – процедура, яка визначає колір символів, що виводяться. Параметр color може приймати одне із значень:

Const

Black=0; {Чорний}

Blue=1; {Синій}

Green=2; {Зелений}

Cyan=3; {Синьо-зелений}

Red=4; {Червоний}

Magenta=5; {Фіолетовий}

Brown=6; {Коричневий}

LightGray=7; {Сірий}

DarkGray=8; {Темно-сірий}

LightBlue=9; {Яскраво-синій}

LightGreen=10; {Яскраво-зелений}

LightCyan=11; {Яскраво-синьо-зелений}

LightRed=12; {Яскраво-червоний}

57

LightMagenta=13; {Малиновий}

Yellow=14; {Жовтий}

White=15; {Білий}

TextBackGround(color:byte) – процедура, яка визначає колір фону. Параметр color може приймати одне із значень:

Const

Black=0; {Чорний}

Blue=1; {Синій}

Green=2; {Зелений}

Cyan=3; {Синьо-зелений}

Red=4; {Червоний}

Magenta=5; {Фіолетовий}

Brown=6; {Коричневий }

LightGray=7; {Сірий}

Для того, щоб вивести текст певним кольором, на певному фоні, необхідно за допомогою процедур TextColor та TextBackGround встановити необхідні атрибути, а потім за допомогою процедур Write та Writeln вивести необхідну текстову інформацію.

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

GotoXY(x,y:byte) процедура яка встановлює курсор в задані координати x та y.

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

Program Name_102; Uses Crt;

Begin

GotoXY(10,4); {встановлюємо курсор в точку (10,4)}

TextColor(White); {колір тексту - білий} TextBackGround(Red);{колір фону -

червоний}

58

Write(”Увага!!!”);

End.

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

WhereY функція, яка повертає поточну вертикальну координату курсору.

Модуль CRT дозволяє працювати не тільки з усім екраном, а

й виділяти на ньому прямокутні вікна. Будь-яке вікно задається своїми верхнім лівим та нижнім правим кутами. Місцезнаходження цих кутів, як і положення будь-якого об’єкту на екрані, задаються двома координатами Х та Y. В якості координати Х виступає номер позиції в рядку (зазвичай від 1 до 80), а в якості координати Y – номер рядку (зазвичай від 1 до 25). Для нового вікна, координати курсору відраховуються від верхнього лівого кута, і можуть змінюватись від 1 до ширини вікна по горизонталі, та від 1 до висоти цього вікна по вертикалі.

Window(X1,Y1,X2,Y2:byte) – процедура, яка задає вікно,

тобто таку область екрану, яка в подальшому буде розглядатися, усіма процедурами воду/виводу як весь екран. X1,Y1 – це координати лівого верхнього кута, X2,Y2 – це координати правого нижнього кута. Верхній лівий кут екрана відповідає координаті (1,1). Мінімальний розмір текстового вікна – один стовпчик на один рядок. Якщо координати деякою мірою недопустимі, то звертання до процедури Window ігнорується.

У80-символьних режимах за замовчуванням встановлюються вікна (1,1,80,25), а в 40-символьних режимах – (1,1,40,25), що відповідає всьому екрану.

Всі координати екрана (крім самих координат вікна) є відносними координатами цього вікна. Наприклад, GotoXY(1,1) завжди встановлює курсор у верхній лівий кут

поточного вікна.

Координати вікна X1,Y1,X2,Y2 завжди відраховуються від лівого верхнього кута екрана і повинні задовольняти наступним умовам:

1 <= X1 < X2 <= Xmax; 1 <= Y1 < Y2 <= Ymax;

59