
- •Структура програми
- •Ідентифікатори.
- •Запис чисел на Pascal.
- •Додаткова інформація про оператор write (writeln)
- •3. Дано 3-й дійсні числа а,ь,с. Визначити, скільки серед них від'ємних.
- •Складений оператор.
- •Результати операцій над логічними даними:
- •Var ім 'я_масиву:аrrау[t1 ] of t2;
- •Var ім’я_масиву: ім'я_типу;
- •Var ім’я_мас:ім 'я_типу;
- •Процедури.
- •Структура процедури.
- •Параметри-значення та параметри-змінні.
- •Функції.
- •Відмінні особливості функції в порівнянні з процедурами:
- •Рекурсивні структури.
- •If умова then a;
- •If умова then a;
- •If умова then a;
- •Множини.
- •Var ім'я_запису: record
- •Var ім'я_запису:ім'я_типу;
- •Оператор приєднання.
- •With ім’я_запису do
- •Записи з варіантами.
- •Var ім'я_файлу: iм)я_типу; читання файлів.
- •Запис файлу.
- •Write(ім’я, параметри);
- •Читання та запис файлів.
- •Файлова система.
- •Фізичні файли.
- •Файлові типи.
- •Текстові файли.
- •Текст - орієнтовані процедури та функції.
- •Створення текстових файлів.
- •Операції введення-виведення текстових файлів.
- •Переваги типізованих файлів :
- •Безтипові файли.
- •Послідовний та прямий доступ до файлів.
- •Вказівники.
- •Зсилочнии тип.
- •Var p:pointer; (змінна — вказівник);
- •Операції розіменування.
- •Списки.
- •1. Зв'язне представлення з одним зв'язком.
- •2. Зв'язані представлення з двома зв'язками.
- •3В’язані списки.
- •Перегляд зв'язаного списку.
- •Списки властивостей.
- •Pascal – об’єктно-орієнтована мова.
- •Опис об’єкта: рядок
- •Розробка програм на мові тр з використанням мов Асемблера та с.
- •Підпрограма сортування методом обміну
- •Застосування механізму переривань
- •Лівий, правый: зв ’язок; дані: тип_даних;
Створення текстових файлів.
Текстові файли можна створити декількома способами.
Перший – текстовий файл створюється посимвольно.
Задача: написати програму по символьного формування рядків файлу.
Program p1;
Const n=5;
Var f: text;
i:integer;
sim: char;
Begin
Assign (f, ‘tek1’);
Rewrite (f);
For i:=1 to n do
Begin
Repeat
Read (sim); {вводимо симв. з клавіатури}
Write (f, sim) {запис в файл}
Until (sim = #13);
end;
close (f);
Reset (f);
While not eof(f) do
Begin
While not eoln(f) do
Begin
Read (f, sim);
Write (sim);
End;
Readln (f);
Writeln (f);
End;
End.
Формування файлу здійснюється за допомогою вкладених циклів. Зовнішній цикл забезпечує формування n рядків. У внутрішньому циклі організовано введення та запис в файл символа за символом до тих пір, поки не буде натиснута клавіша Enter. Саме її код (#13) входить до умови виконання циклу Repeat. Читання створеного файлу також виконується в двох циклах. Внутрішній цикл організує посимвольне читання рядку, доки не зустрінеться ознака кінця рядку. Оператор Readln (f) спрацьовує тільки після закінчення внутрішнього циклу, що забезпечує перехід на новий рядок.
Посимвольне читання файлу використовують в різних випадках, наприклад, для перекодування текстового файлу.
Другий – текстовий файл можна сформувати, використовуючи готові рядки (дані String).
Задача: написати програму створення та читання текстового файлу.
Uses CRT;
Const ob =’Grupa’;
Var fam: string[25];
spisok: text;
simv: char;
Begin
Assign (spisok, ob);
Rewrite (spisok);
Repeat
Writeln (‘Вв. наступне прізвище’);
Readln (fam);
Writeln (spisok, fam);
Writeln (‘для продовження роботи введіть будь-який символ’);
Writeln (‘для закінчення – необхідно ввести символ N (прописний)’);
Readln (simv)
Until simv = ‘N’;
Close (spisok);
Reset (spisok);
Writeln;
Writeln (‘зміст файлу’);
While not eof(spisok) do begin
Readln (spisok, fam);
Writeln (fam);
end;
End.
В циклі вводиться рядок, натискується Enter та будь-яка клавіша, як ознака припинення формування файлу. Цикл завершиться після введення символу N. Зверніть увагу на те, що рядок записується у файл за одне виконання оператора Writeln, а при читанні такого файлу вживають оператор Readln. Такий спосіб обробки файлу використовується в тих випадках, коли рядок якимсь чином створюється в оперативній пам’яті, а потім записується на диск, або прочитаний з файлу рядок аналізується в пам’яті як звичайний рядок String.
Третій – текстові файли можна створити у будь-якому текстовому редактору, тобто не програмним шляхом, а обробляти в самій програмі.
Задача: в файлі test2 записані цілі додатні та від’ємні числа. Кількість рядків та кількість чисел в кожному рядку невідома. Треба обчислити суму та кількість від’ємних чисел в кожному рядку, загальну кількість чисел у рядку та загальну кількість рядків.
Program pf3;
Var f: text;
i, j, x, s, kol: integer;
Begin
Clrscr;
Assign (Var f, ‘test2’); {файл створено в текстовому редактору}
Reset (Var f);
i:=0; {загальна кількість рядків}
while not eof(f) do
begin
j:=0; { загальна кількість чисел у рядку }
s:=0; {сума від’ємних чисел}
kol:=0; {кількість від’ємних чисел }
inc(i);
while not eoln(f) do
begin
read (f, x);
write (lst, x:5); {підключення модуля, який підтримує файл lst – якщо потрібно вивести результат на принтер}
ins (j);
if x<0 then begin
s:=s+x;
kol:=kol+1;
end;
end;
writeln (lst);
writeln (lst, ‘s=’, s:5; ‘kol=’, kol:5, ‘j=’, j:5);
Readln (f);
End;
Writeln (lst, ‘загальна кількість рядків=’, i:5);
Close (f);
End.
Зовнішній цикл забезпечує перехід від одного рядка до іншого. У внутрішньому циклі читається та аналізується число за числом.
Вказана можливість значно полегшує вирішення задачі коригування файлу. Текстовий файл можна виправляти у будь-якому текстовому редакторі, що значно зручніше, ніж використовувати програмні засоби.