
- •Вимоги до виконання лабораторної роботи та оформлення звіту
- •Лабораторна робота № 1
- •Методичні вказівки до роботи:
- •Теоретичні відомості
- •Контрольні запитання
- •Лабораторна робота № 2
- •Методичні вказівки до роботи:
- •Теоретичні відомості
- •Контрольні запитання
- •Лабораторна робота № 3
- •Методичні вказівки до роботи:
- •Теоретичні відомості
- •Контрольні запитання
- •Лабораторна робота № 4
- •Методичні вказівки до роботи:
- •Теоретичні відомості
- •Контрольні запитання
- •Лабораторна робота № 5
- •Методичні вказівки до роботи:
- •Теоретичні відомості
- •Контрольні запитання
- •Лабораторна робота № 6
- •Методичні вказівки до роботи:
- •Задача для конкретного варіанту.
- •Лістинг програми.
- •Висновок до роботи. Теоретичні відомості
- •Контрольні запитання
- •Додаток а
- •Додаток б
- •Література
Контрольні запитання
Що відрізняє статичний масив від динамічного?
Які оголошення потрібні для створення динамічного масиву записів?
Як звертатись до записів динамічного масиву?
Як виконати звільнення памяті, виділеної для динамічного масиву записів?
Лабораторна робота № 3
(6 год.).
Тема роботи: обробка даних різних структур.
Мета роботи: Оволодіння навичками створення текстових файлів і обробки їх з допомогою динамічних змінних.
Постановка задачі: Створити текстовий файл. Використовуючи динамічну змінну виконати обробку інформації файлу. Для обробки в разі потреби використовувати додаткові дані типу масив або множини. Звільнити пам’ять.
Методичні вказівки до роботи:
Створити текстовий файл даних з заданою кількістю рядків.
Вивести вміст файлу.
Створити динамічну змінну – символьний рядок.
Ввести інформацію до динамічної змінної з файлу.
Виконати по рядках аналіз тексту відповідно до завдання.
Вивести текст з динамічної змінної.
Вивести результати аналізу тексту.
Вивести інформацію про завдання ( варіант, текст завдання ).
Вивести інформацію про виконавця роботи ( прізвище, ініціали, група).
Завдання до роботи вибрати згідно з варіантом з Таблиці 3.
Зміст звіту:
Задача для конкретного варіанту.
Лістинг програми.
Результати виконання програми.
Висновок до роботи.
Теоретичні відомості
В Паскалі існує три файлових типи:
текстові - тип TEXT;
типізовані - тип FILE OF <тип>;
нетипізовані - тип FILE;
робота з ними суттєво відрізняється.
Текстовий файл - це сукупність символів, об’єднаних в рядки, причому на кінці кожного рядка стоїть символ ознаки кінця рядка. Параметри, значення яких вводяться і виводяться за допомогою процедур READ і WRITE не обов’язково мають бути типу STRING або CHAR, а і інших простих типів. (цілих, дійсних - при введенні, цілих, дійсних, булевих - при виведенні).
Перед здійсненням введення/виведення файлова змінна має бути зв’язана з конкретним зовнішнім файлом за допомогою процедури ASSIGN. Це може бути файл на диску або зовнішній примтрій (клавіатура, дисплей, прінтер).
Файл типу TEXT може бути відкритий для читання процедурою RESET обо для запису процедурою REWRITE або APPEND. Через те, що рядки можуть мати різну довжину, текстовий файл може оброблятись тільки послідовно. Оголошення типу текстового файлу:
TYPE TEXTFL=TEXT;
VAR OUTFL: TEXTFL;
INFL: TEXT;
Функція EOF(F) визначає кінець файла. Функція повертає значення TRUE, якщо вказівник поточної компоненти файла знаходиться за останьою компонентою файла, і FALSE - в усіх інших випадках.
Функція EOLN(F) визначає кінець рядка файла. Функція повертає значення типу BOOLEAN. Приймає значення TRUE, якщо поточна компонента файла є ознакою кінця рядка або якщо функція EOF() має значення TRUE. В решті випадків функція EOLN() повертає значення FALSE.
Приклад: Створити текстовий файл. Кількість рядків текстового файлу ввести з клавіатури. Інформацію до файлу теж ввести з клавіатури. Виділити динамічну пам’ять і скопіювати інформацію з текстового файлу до динамічної пам’яті по рядках. Підрахувати в динамічній пам’яті скільки разів в тексті зустрічається символ, введений з клавіатури та пробіл.
USES CRT;
TYPE ST=STRING[80];
VAR FL:TEXT;
DIN:^ST;
STAT:ST;
CH:CHAR;
COUNT,I,K:BYTE;
BEGIN
CLRSCR;
ASSIGN(FL,'DAT.TXT');
REWRITE(FL);
WRITELN(‘з скількох рядків складається файл?’);
READLN(K);
WRITELN(‘ввести ‘,K,’ рядків тексту’);
FOR I:=1 TO K DO
BEGIN
READLN(STAT);
WRITELN(FL,STAT)
END;
CLOSE(FL);
RESET(FL);
WRITELN(‘ввести символ’);
READLN(CH);
NEW(DIN);
COUNT:=0;
WHILE NOT EOF(FL) DO
BEGIN
READLN(FL,STAT);
DIN^:=STAT;
FOR I:=1 TO LENGTH(DIN^) DO
IF (DIN^[I]=CH) OR (DIN^[I]=’ ‘) THEN INC(COUNT);
END;
CLOSE(FL);
WRITELN(‘символ ’,CH,’ та ‘’ ‘’ знайдено ‘,COUNT,’ разів’);
DISPOSE(DIN);
READKEY
END.
Результат виконання програми:
з скількох рядків складається файл?
3
ввести 3 рядків тексту
the fox is red
the bear is big
the volf is hungry
ввести символ
i
символ i та ‘ ’ знайдено 13 разів