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

OT_METOD_KP_ONOEOT

.pdf
Скачиваний:
18
Добавлен:
12.05.2015
Размер:
845.28 Кб
Скачать

26.Задано файл цілих чисел. Переписати усі запису в файлі у зворот ньому порядку. Заборонено використовувати додаткові файли та масиви.

27.Задано файл дійсних чисел. Утворити файл який містить середнє геометричне всіх чисел, які знаходяться перед поточним.

28.Задано файл дійсних чисел, які мають не більше ніж два знаки після коми. Представити числа з вхідного файлу у вигляді просто дробу, переписавши чисельники і знаменники у два нові файли. Один файл міститиме чисельники, другий знаменники.

29.Задано файл цілих чисел. Відшукати всі прості числа у заданому файлі та переписати їх у порядку спадання без повторень у вихідний файл. Заборонено використовувати додаткові файли та масиви.

30.Задано файл цілих чисел. Переписати у в один файл всі числа, які

єчислами Фібоначчі, у другий файл переписати усі числа, які не

єчислами Фібоначчі.

Стислі теоретичні відомості

Під файлом розуміється іменована область зовнішньої пам’яті ЕОМ (жорсткий диск, дискета, тощо) або логічний пристрій – потенційне джерело або приймач інформації.

Файл це структура даних з однорідними компонентами, які звуться записами. Існує три типи файлів:

типізовані файли, записи яких мають жорстку структуру

текстові файли, що складаються з символів та рядків

не типізовані файли, у яких можуть передаватися блоки по 128 байт у кожному

Приклади опису файлових змінних:

60

type person=record

name:string[50];

age:integer;

end; var

f1: file of integer; {типізований файл} f2: file of person; {типізований файл} f3: text; {текстовий файл}

f4:file; {не типізований файл}

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

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

послідовного доступу

прямого доступу

Уфайлах послідовного доступу записи можуть мати різну довжину, а у файлах прямого доступу - тільки однакову. Під поняттям файлу розуміють з одного боку файлову змінну, яку використовують в програмі, а з іншого боку ім'я файлу на диску.

Для зв’язку файлової змінної та файлу використовують процедуру assign:

assign(<файлова_змінна>, <шлях_до_файлу>);

Наприклад:

assign( f, ‘c:/file.dat’);

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

61

reset(<файлова_змінна>) – відкриває існуючий файл на читання або запис, покажчик файлу встановлюється на початок файлу.

rewrite(<файлова_змінна>) – створює новий пустий файл на запис або читання за вказаним шляхом і встановлює покажчик файлу на початок файлу, якщо файл вже існував, то старий файл видаляється.

Для коректного завершення роботи з файлом його потрібно закрити за допомогою процедури Clsoe:

Close(<файлова_змінна>) – закриває файл.

 

Таблиця 5.1 - Процедури та функції для типізованих файлів

 

 

 

Назва

Тип

Опис

 

 

 

assign(f, path)

Процедура

ставить у відповідність файлову змінну f файлу на

 

 

диску зі шляхом path

 

 

 

reset(f)

Процедура

відкриває уже існуючий файл f та позиціонує

 

 

покажчик файлу на початок файлу

 

 

 

rewrite(f)

Процедура

створює новий файл f, покажчик файлу

 

 

встановлюється на початок файлу

 

 

 

close(f)

Процедура

закриває файл f

 

 

 

eof(f)

функція

приймає значення True, якщо покажчик вказує на

 

 

кінець файлу, інакше False

 

 

 

read(f,a)

Процедура

читання з файлу f у змінні s1,s2

 

 

 

write(f,a)

Процедура

запис у файл f змінної a

 

 

 

seek(f,p)

Процедура

позиціонування покажчика файлу на запис з

 

 

номером n

 

 

 

filesize(f)

функція

функція визначає кількість записів у файлі f.

 

 

 

filepos(f)

функція

функція визначає номер запису, на який вказує

 

 

покажчик

 

 

 

truncate(f)

Процедура

видаляє частину файлу, починаючи з поточної

 

 

позиції

 

 

 

erase(f)

Процедура

знищує файл f, який перед тим треба закрити

 

 

 

rename(f,s)

Процедура

перейменування закритого файлу f у файл s

 

 

 

 

 

62

Алгоритм обробки файлів.

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

Відкрити файл для читання, або для запису.

Читати запис файлу в оперативну пам’ять.

Обробити дані в пам’яті.

Записати результати з пам’яті у файл.

Закрити файл.

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

1.Що таке файл?

2.Які типи файлів в Turbo Pascal ви знаєте?

3.Що таке типізований файл?

4.Що таке не типізований файл?

5.Яка відмінність файлу від масиву?

6.Наведіть приклад опису файлової змінної.

7.Яким чином виконується зв'язок між файловою змінною та файлом на диску?

8.Що робить функція Assign?

9.Що робить функція Reset?

10.Що робить функція Rewrite?

11.Що робить функція Close?

12.Що робить функція EOF?

13.Що може бути, якщо не закрити файл?

14.За допомогою якого оператора можна зчитати дані з файлу? 15.За допомогою якого оператора можна записати дані у файл? 16.Що таке покажчик файлу?

63

17.Яким чином можна змінити значення покажчика файлу? 18.Що буде, якщо покажчик файлу буде вказувати за межі файлу?

19.Що буде, якщо програма спробує зчитати дані з не існуючого файлу?

20.Як перейменувати файл?

21.Як видалити файл?

22.Написати програму. Умову і вимоги до задачі надає викладач.

64

Комп’ютерний практикум №5. Частина 2 Текстові файли

Мета

Засвоїти поняття файлу. Засвоїти поняття текстового файлу. Розуміти різницю між текстовими та типізованими фалами..

Робоче завдання

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

Хід роботи

Написати програму для вирішення поставленого завдання.

Варіанти завдань

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

2.Створити текстовий файл, рядки якого містять цифри і символи. У кожному рядку виділити найбільшу послідовність цифр. Довжини цих послідовностей записати у вихідний цифро файл цілих чисел.

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

4.Створити текстовий файл вводом з клавіатури. Визначити кількість рядків файлу, у кожному рядку знайти найдовше слово

та дописати його в кінець кожного рядка, результат записати у

65

вихідний файл. Слова розділяються пробілами та знаками пунктуації.

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

6.Заданий текстовий файл та текстовий підрядок. Отримати текстовий файл, який містить тільки ті рядки, в які входить заданий підрядок.

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

8.Заданий текстовий файл, що містить прізвища, прохідний бал, спеціалізацію. Поля запису розділяються символом «;». Відсортувати цей файл за набраним балом. Переписати в вихідний файл ті текстові записи у яких набраний необхідний прохідний бал. Заборонено використовувати масиви.

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

10.Заданий текстовий файл. Переписати в вихідний файл рядки, замінивши в них символи 0 на 1 та навпаки.

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

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

66

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

14.Створити текстовий файл, який містить марки принтерів та їх ціни. Поля запису розділяються символом «;» Переписати в вихідний файл ті рядки, що мають ціну не вищу за вказану.

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

16.Задано текстовий файл який містить круглі дужки. Визначити, чи відповідає кількість відкритих дужок кількості закритих дужок. Визначити правильність вкладеності дужок.

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

18.Створити файл цілих чисел. Переписати у вихідний текстовий файл числа у шістнадцятирічному вигляді. Кожен рядок вихідного файлу повинен містити одне число з вхідного файлу.

19.Задано текстовий файл який містить слова. Слова розділяються пробілами та знаками пунктуації. Дописати у вхідний файл рядок, який містить найдовші слова з кожного рядка файлу. Слова розділити пробілом.

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

21.Задано текстовий файл. Утворити текстовий файл, в якому будуть видалені усі пробіли та символи цифр.

67

22.Задано текстовий файл, який складається з маленьких та великих символів латинського алфавіту. Утворити текстовий файл, в якому малі букви замінені на великі, а великі на малі.

23.Задано текстовий файл, який складається з маленьких та великих символів латинського алфавіту. Утворити текстовий файл, в якому виконано заміну символів за правилом: «a»→«z», «b»→«y»,…, «y»→«b», «z»→«a». Великі букви міняються тільки з великим, малі тільки з малими.

24.Задано текстовий файл, який складається зі слів. Слова розділяються пробілами та знаками пунктуації. Утворити вихідний текстовий файл, в якому усі слова перевернуто.

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

26.Задано текстовий файл, який складається з символів точка та тире (шифр Морзе). Переписати у вихідний файл розшифрований текст.

27.Задано текстовий файл., який складається з латинських символів. Переписати у вихідний файл текст зашифрований за азбукою Морзе.

28.Задано текстовий файл який складається з цифр. Беручи по два символи з вхідного файлу, утворити вихідний файл, в якому двозначне десяткове число з вхідного файлу записано у вигляді символу.

29.Задано текстовий файл. Утворити новий текстовий файл який є перевертишом до вхідного.

68

30.Задано текстовий файл. Переписати у вихідний файл таблицю, яка містить інформацію, щодо входження кожного символу у файл. Запис про один символ повинен містити таку інформацію: загальна кількість входжень, кількість малих символів, кількість прописних символів.

Стислі теоретичні відомості

Текстовий файл складається з рядків, рядки складаються з символів. Рядки мають різну довжину та закінчуються ознакою кінець рядку Ця ознака вводиться при натисканні клавіші Enter. Файл закінчується ознакою кінець файлу. Кінець файлу розпізнає функція Eof. Кінець рядку розпізнає функція EoLn. З текстовими файлами робота виконується аналогічно типізованим файлам, але за деякими відмінностями. Файлова змінна зв'язується з файлом на диску оператором Assign. Процедура Reset встановлює покажчик файлу на початок файлу і відкриває файл тільки на читання даних. Rewrite – створює новий файл і відкриває його на запис даних. Для доповнення даних у вже існуючий текстовий файл використовується процедура Append(f) – відкриває існуючий файл на запис даних, встановлює покажчик файлу на кінець файлу.

Для запису даних в файл використовується процедура WriteLn абоWrite а для читання ReadLn або Read. Після того, як робота з файлом закінчена його закривають оператором Close. Вводити початкові значення можна також з текстового редактору. Але при такому вводі початкових даних треба слідкувати щоб всі числові дані були відділені одне від одного пропуском. Enter є ознакою закінчення числового рядку.

69

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]