- •Для студентів I курсу денної форми навчання зі спеціальності 6.080200 – «інформатика» (у тому числі скорочений термін навчання)
- •Лабораторна робота №1 Програмування лінійних алгоритмів.
- •Контрольні питання:
- •Задачі.
- •Лабораторна робота №2 Програмування алгоритмів, що розгалужуються
- •Лабораторна робота №3
- •Задачі.
- •Лабораторна робота №4 Програмування циклічних алгоритмів (продовження)
- •Контрольні питання
- •Задачі.
- •Лабораторна робота 5 Програмування з використанням масивів
- •Контрольні питання
- •Лабораторна робота 6. Програмування з використанням записів
- •Змінні типу String аналогічні масивам типу Char. Їхньою відмінністю є те, що число символів (довжина рядка) може динамічно змінюватися в інтервалі від одиниці до заданого верхнього значення.
- •Контрольні питання
- •Лабораторна робота 7 Програмування з використанням множин
- •Контрольні питання
- •Лабораторна робота 8 Програмування з використанням типу запис
- •Приклад. Дано два раціональних числа, опишіть їх, використовуючи структуру даних запис (чисельник, знаменник). Скоротити їх, знайти їх суму. Етапи рішення програми:
- •Контрольні питання
- •Лабораторна робота 9 Програмування з використанням процедур і функцій
- •Контрольні питання
- •Задачі.
- •Лабораторна робота 10 Робота з файлами
- •Контрольні питання
- •Лабораторна робота 11 Графіка в Turbo Pascal
- •Процедури і функції модуля craph Процедури.
- •Функції.
- •GraphResult Повертає значення GrOk, що відповідає коду 0, якщо всі графічні операції програми виконалися без помилок, чи повертає числовий код помилки (від -1 до -14).
- •Приклад. Побудувати правильний n - кутник.
- •Лабораторна робота 12 Контрольна робота
- •Контрольні питання
- •Література
- •39614, М. Кременчук, вул Першотравнева, 20
Лабораторна робота 10 Робота з файлами
Мета роботи. Познайомитися з поняттям файлового типу даних (типізовані, текстові і нетипізовані файли); виробити навички роботи з файловим типом даних у мові програмування Pascal. Навчитися зчитувати інформацію з файлів, записувати інформацію у файл; навчитися вирішувати задачі з використанням файлів.
Файл являє собою структурований тип даних, що складається з послідовності компонентів одного типу й однієї довжини. Число елементів у файлі (довжина файлу) не фіксовано. Це є основною відмінністю файлу від масиву. Файл можна представити як рядок, у якої є початок, а кінець не фіксований. Елементи файлу записуються на цей рядок послідовно, один за одним за допомогою деякого пристрою - покажчика файлу. При читанні чи записі цей покажчик переміщується до наступного елементу і робить його доступним для обробки. У кожен момент доступний для читання чи запису лише той елемент файлу, на який установлений покажчик.
Приклад. Переписати з текстового файлу f у файл g рядка в переверненому виді, порядок рядків має бути зворотним.
Етапи рішення задачі: Будемо зчитувати файл f по рядкам і перевертаючи рядок будемо записувати їх у масив, далі створимо файл і заповнимо його рядками з масиву змінюючи порядок рядків на зворотний. Складемо блок -схему програми.
Зміст самих блоків не повинен викликати великі труднощі у звичайному розумінні, головне тут це - технічна реалізації мовою Паскаль, тому запишемо реалізацію кожного блоку на Паскале.
а) Зчитуємо рядка з файлу F
assign(f,'input.dat');
reset(f);
while not eof(f) do
begin readln(f,st);
end;
б) Перегортаємо рядки і записуємо їх у масив
st1:='';
for i:= 1 to length(st) do
st1:= st[i]+st1;
m[k]:=st1;
k:=k+1;
в) Записуємо у файл g
assign(g,'output.dat');
rewrite(g);
for i:= 1 to k do writeln(g,m[i]);
3. Програма цілком
program example11;
var f,g:text; m:array[1..100] of string; k,i:integer;
begin
assign(f,'input.dat');
reset(f);
k:=0;
while not eof(f) do
begin readln(f,st);
k:=k+1;
st1:='';
for i:= 1 to length(st) do st1:= st[i]+st1;
m[k]:=st1;
end;
assign(g,'output.dat');
rewrite(g);
for i:= 1 to k do writeln(g,m[i]);
end.
Контрольні питання
-
Що таке файл? Які існують види файлів?
-
Які стандартні процедури і функції є у Pascal для роботи з файлами?
-
Яким повинен бути зміст програми по створенню файлу і його корегуванні (заміна елементів, додавання елементів, видалення елементів)?
-
Які особливості роботи з текстовими файлами?
-
Які особливості роботи з типізованими файлами?
-
Як підрахувати число рядків у текстовому файлі?
Задачі
-
Дано текстові файли f1 і f2. Переписати зі збереженням порядку проходження компоненти файлу f1 у файл f2, а компоненти файлу f2 у файл f1. Використовувати допоміжний файл h.
-
Дано текстовий файл f. Записати у файл g компоненти файлу f у зворотному порядку.
-
Дано текстові файли f і g. Записати у файл h спочатку компоненти файлу f, потім – компоненти файлу g зі збереженням порядку.
Дано файл f, компоненти якого є цілими числами. Одержати у файлі g усі компоненти файлу f:
-
Що є парними числами;
-
Поділяються на 3 і не поділяються на 7.
-
Що є точними квадратами.
-
Дано файл f, компоненти якого є цілими числами. Одержати файл g, утворений з файлу f виключенням повторних входжень того самого числа.
Дано файл f, компоненти якого є цілими числами. Ніяка з компонентів файлу не дорівнює нулю. Файл f містить стільки ж від’ємних чисел, скільки і додатних. Використовуючи допоміжний файл h, переписати компоненти файлу f у файл g так, щоб у файлі g:
-
Не було двох сусідніх чисел з однаковим знаком.
-
Спочатку йшли додатні, потім від’ємні числа.
-
Числа йшли в наступному порядку: два додатних, два від’ємних і т.д. (передбачається, що число компонентів у файлі f поділяється на 4).
-
Дано файл f, компоненти якого є цілими числами. Ніяка з компонентів файлу не дорівнює нулю. Числа у файлі йдуть у наступному порядку: десять додатних, десять від’ємних, десять додатних, десять від’ємних і т.д. Переписати компоненти файлу f у файл g так, щоб у файлі g числа йшли в наступному порядку: а) п'ять додатних, п'ять від’ємних і т.д.
-
Дано файл f, компоненти якого є цілими числами. Записати у файл g найбільше значення перших п'яти компонентів файлу f, потім - наступних п'яти компонентів і т.д. Якщо в останній групі виявиться менш ніж п'ять компонентів, тоді останній компонент файлу g повинен дорівнювати найбільшому з компонент файлу f, що утворять останню (неповну) групу.
-
Дано символьний файл f . Групи символів, розділені пробілами (одним чи кількома) без пробілів усередині себе, будемо називати словами; видалити з файлу всі однобуквені слова і зайві пробіли. Результат записати у файл g.
Пряма на площині задається рівнянням ax+by+c=0, де a і b одночасно не дорівнюють нулю. Будемо розглядати лише прямі, для яких коефіцієнти a,b,c - цілі числа. Нехай f - файл, що містить коефіцієнти кількох прямих (не менше трьох). Переписати з файлу f у файл g коефіцієнти цих прямих, що: 14. Паралельні першій з прямих, заданої у файлі f.
15. Паралельні першій з прямих, заданої у файлі f, щоб всі прямі були різні.
16. Перетинають першу з прямих, заданих у файлі f.
17. Одержати у файлі g коефіцієнти всіх різних прямих файлу f.