Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Записи у Pascal АВС

ВСТУП

Як розглядалося на попередньої лекції, для вирішення науково-технічних та економічних задач, де необхідно обробляти велику кількість даних, використовують масиви. Але всі елементи масиву повинні мати однаковий тип, що суттєво обмежує можливості їх використання. Наприклад, для вирішення задач спільного збереження та оброблення великих сукупностей даних різних типів необхідно використовувати окремі масиви для кожного типу даних, а встановлення їх відповідності здійснювати за допомогою складної індексації, що суттєво ускладнює програму.

Тому для подання комбінацій об’єктів різних типів у Pascal використовують записи.

Однією з найбільш фундаментальних структур даних, що використовуються у мові 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 begin x:=1; y:=2; z:=3; end; with a do with b do begin x:=1; y:=2; z:=3; end; b.x:=1; a.y:=2; z:=3;

 

Звичайно записи використовують при обробленні динамічних структур та для організації файлів на дисках. Для вирішення задач створення баз даних корисні масиви записів. Записи також можуть використовуватися для опису комплексних чисел, тому що у стандартній мові 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 АВС для цього існують дві процедури:

- Reset(f) – відкриває вже існуючий на диску файл. Текстові файли відкриваються тільки для читання, типізовані – для читання і запису;

- Rewrite(f) – створює та відкриває новий файл. Текстові файли відкриваються тільки для запису, типізовані – для читання і запису. Якщо файл із вказаним ім’ям вже існує, він видаляється та замість нього створюється новий.

Приклад: стандартне відкриття файла.

 

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

Операція закриття файла є логічним завершенням роботи з будь-яким відкритим файлом. Для цього використовується процедура 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 АВС.

 

Література

1. Попов В.Б. Паскаль и Дельфи. Самоучитель – СПб.: Питер, 2004. – 544 с.

2. Глушаков С.В., Зорянский В.Н., Хоменко С.Н. Программирование на Turbo Pascal 7.0 (TP 7) – Харьков: Фолио, 2005. – 501 с.

3. Справочная система Pascal ABC.

 

<== предыдущая лекция | следующая лекция ==>
Постэмбриональный период | Христианство как духовный стержень европейской культуры
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 704; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.