Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
План-конспект проведення лекційного заняття з дисципліни «Інформатика»
Модуль 5. Структуровані типи даних (масиви, рядки, записи та файли), підпрограми
Лекція: 5.3. Записи та файли
ВСТУП
Як розглядалося на попередньої лекції, для вирішення науково-технічних та економічних задач, де необхідно обробляти велику кількість даних, використовують масиви. Але всі елементи масиву повинні мати однаковий тип, що суттєво обмежує можливості їх використання. Наприклад, для вирішення задач спільного збереження та оброблення великих сукупностей даних різних типів необхідно використовувати окремі масиви для кожного типу даних, а встановлення їх відповідності здійснювати за допомогою складної індексації, що суттєво ускладнює програму.
Тому для подання комбінацій обєктів різних типів у Pascal використовують записи.
Однією з найбільш фундаментальних структур даних, що використовуються у мові Pascal є файли.
1. Записи у Pascal АВС
Запис це структурований тип даних, що складається із фіксованої кількості компонентів одного або декількох типів. Визначення типу запису починається ідентифікатором record та завершується ключовим словом end. Між ними розміщується список компонентів, що мають назву полів із зазначенням ідентифікаторів та типів кожного поля:
record список полів 1: тип1; ... список полів N: типN; end
Останній символ ; не є обовязковим. Наприклад:
type
Date=record
Day: 1..31;
Month: (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
Year: Integer;
end;
Тепер можна описувати змінні типу Date:
var d1,d2: Date;
Для того, щоб отримати доступ до полів запису, необхідно використовувати складні імена змінних із зазначенням відповідних полів, де імя змінної та імя поля розділяються крапкою:
Складне імя можна використовувати скрізь, де припустимо застосування типу поля. Для присвоювання полям значень використовують оператор присвоювання. Як і для масивів, можна копіювати вміст полів одної змінної у іншу:
Звернення до полів запису за допомогою складних імен іноді має громіздкий вигляд. Для скорочення звернення у мові Pascal існує оператор with. Він має вигляд:
with імя запису або обєкта do оператор
або with список імен do оператор
Усередині оператора можна використовувати прості імена полів (без зазначення імені запису). Наприклад, хай описана змінна:
var
DateOfBirthday=record
Day: Integer;
Month: Integer;
Year: Integer;
end;
Тоді присвоювання значень її полям без використання оператора with має вигляд:
DateOfBirthday.Day:=23;
DateOfBirthday.Month:=2;
DateOfBirthday.Year:=1965;
Використання оператора with дозволяє скоротити попередній фрагмент:
with DateOfBirthday do
begin
Day:=23;
Month:=2;
Year:=1965;
end;
Pascal допускає вкладення записів. Відповідно, й оператор with також може бути вкладеним. Наприклад, якщо є опис:
var
x,y,z: integer;
a: record
x,y: integer;
end;
b: record
x: integer;
end;
то наступні фрагменти програм еквівалентні:
with a,b do |
with a do with b do |
b.x:=1; |
Звичайно записи використовують при обробленні динамічних структур та для організації файлів на дисках. Для вирішення задач створення баз даних корисні масиви записів. Записи також можуть використовуватися для опису комплексних чисел, тому що у стандартній мові Pascal засобів для цього немає. В цьому випадку дійсна та уявна частини комплексного числа подаються як поля запису. У Pascal АВС є стандартний тип complex, який також організований як запис.
2. Оброблення файлів у Pascal АВС
Файл у Pascal це послідовність елементів одного типу, що зберігається на диску. Будь-який файл, що може бути оброблений засобами Pascal АВС, має три характерні особливості: по-перше, він має імя, що надає можливість програмі використовувати декілька файлів одночасно; по-друге, він містить компоненти одного типа. Компонентом може бути буд-який тип Pascal АВС, крім файлового типу. Тобто, може бути файл рядків, записів або масивів, але не може бути створений файл файлів. Третя особливість: довжина файлу, що створюється, не визначається при його опису і обмежується тільки ємністю накопичувача інформації.
Для доступу до файлу описується спеціальна файлова змінна, яка вважається «представником» файлу у Pascal програмі найчастіше її позначають літерою F. Pascal АВС підтримує два типи файлів типізовані та текстові.
Для опису текстового файлу використовується стандартне імя типа text, а для опису типізованого файлу - конструкція file of тип елементів:
Файл можна уявити як потенціальне нескінченний список значень одного базового типу. Всі елементи файлу пронумеровані, початковий елемент має нульовий номер. У будь-який момент часу програмі доступний тільки один елемент файлу, на який посилається поточний покажчик. Як правило, всі дії з файлами виконуються заелементне, у поточній дії бере участь той елемент, на який вказує поточний покажчик. У результаті виконання дій покажчик може переміщуватися до іншого елемента файлу.
Засоби оброблення файлів у Pascal АВС
Тому що кожному файлу ставиться у відповідність файлова змінна, до початку роботи з файлом необхідно встановити цю відповідність. Для цього використовується процедура Assign(f, name), де f змінна будь-якого файлового типу, а name типe string повне імя файла, що відповідає вимогам ОС. Процедура Assign завжди передує іншим процедурам роботи з файлами. Слід памятати, що використання процедури Assign для вже відкритого файла неможливо.
Для роботи з файлом перш за все необхідно його відкрити. У Pascal АВС для цього існують дві процедури:
Приклад: стандартне відкриття файла.
Якщо файловій змінній призначити порожній рядок, виконується автоматичне посилання на стандартний файл введення, тобто з відкриттям такого файла зявляється можливість введення даних з клавіатури.
Операція закриття файла є логічним завершенням роботи з будь-яким відкритим файлом. Для цього використовується процедура Close(f).
Приклад: повний ланцюжок команд для створення простого текстового файла WORK.TXT:
var
F: text;
begin
Assign(F, WORK.TXT);
Rewrite (F);
Write(F, Простий текстовий файл);
Close(F);
end.
До файлів застосовні процедури введення-виведення Read(f,a,b,...), Write(f,a,b,...), Readln(f,a,b,...), Writeln(f,a,b,...), де f змінна файлового типу. Ці процедури зчитують з файла (або записують у файл) змінні a,b... Якщо файл типізований, то типи змінних повинні співпадати з типом файла. Для процедур виведення у текстові файли можна використовувати формати виведення.
Існує ще багато процедур та функцій, що виконують файлові операції (перейменування, вилучення) або деякі функції редагування файлів. Повний перелік процедур та функцій для роботи з файлами наведений у довідковій системі Pascal АВС.
Література