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

ОТ Методичка

.pdf
Скачиваний:
7
Добавлен:
17.03.2016
Размер:
618.24 Кб
Скачать

прізвища в алфавітному порядку. Заборонено використовувати додаткові файли та масиви.

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

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

8.Заданий файл цілих чисел в межах від 1 до 50. Створити два вихідні файли. Один з яких містить числа однозначні, а другий двозначні.

9.Заданий файл записів з полями: прізвище, телефон, не відсортований (номера телефону може не бути). Вилучити з файлу абонентів у яких немає номеру телефону. Вихідний файл відсортувати за номером телефону. Заборонено використовувати додаткові файли та масиви.

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

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

12.Заданий файл цілих чисел. Записати в вихідний файл всі числа, що діляться на 3 та не діляться на 9.

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

14.Пряма на площині задається рівнянням Ах+Ву+С=0, А та В не дорівнюють 0. Якийсь файл містить коефіцієнти декількох прямих. Переписати в вихідний файл всі коефіцієнти тих прямих, які є паралельними до даної

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

16.Згенерувати файл дійсних чисел за допомогою генератора випадкових чисел. Випадкові дійсні числа повинні бути в межах від 0 до 100 і мати не більше ніж два знаки після коми. Кількість записів у файли від 20 до 100. Розрахувати суму дробових частин, результат сумування дописати у вхідний файл.

17.Задано два відсортованих за зростанням файли цілих чисел. Утворити третій файл, шляхом об’єднання двох вхідних файлів таким чином, щоб вихідний файл також був відсортований за зростанням. Вхідні файли можуть бути різної довжини. Заборонено використання додаткових масивів та файлів.

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

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

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

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

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

23.Задано файл цілих чисел. Утворити файл дійсних чисел, шляхом ділення числа з вхідного файлу на його позицію в файлі. Записи у вихідний файл повинні додаватися у порядку зростання чисел у вхідному файлі. Заборонено використовувати додаткові файли та масиви.

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

25.Задано файл записів з полями прізвище, оцінка з математики, оцінка з фізики, оцінка з хімії. Утворити вихідний файл, який містить прізвище, середній бал (з точністю до двох знаків після коми), та стипендія. Розмір стипендії визначається таким чином: якщо середній бал нижче 4, то стипендії не має, якщо в межах від 4 то 4,5 не включно то 500, якщо в межах від 4,5 до 5 не включно то надбавка 20%, якщо 5 то надбавка 50%.

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

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

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

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

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

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

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

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

Короткі теоретичні відомості

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

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

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

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

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

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

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.

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

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

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

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

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

Назва

Тип

Опис

assign(f,

Процедура

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

path)

 

шляхом 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лабораторна робота №9

Текстові файли. Робота з текстовими рядками

Мета

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

Хід роботи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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