Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основні етапи рішення задач.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
672.52 Кб
Скачать

28.Модулі користувача (правила створення).

Крім стандартних модулів, в Турбо Паскаля можливі модулі користувача, Вони вимагають описания, яке починається ключовим словом мови unit і містять 3 розділу: розділ інтерфейсу (interface), розділ реалізації (implementation), розділ ініціалізації (необов'язковий).

Структура модуля

Модуль має наступну структуру:

UNIT <ім'я модуля>

INTERFACE

<розділ інтерфейсний>

IMPLEMENTATION

<розділ реалізації>

BEGIN

<розділ ініціалізації>

END.

29.Поняття запису. Описання та робота з ними. Навести приклади.

Тип запис (record) мови Паскаль.

Дуже часто у програмах необхідно обробляти набори даних різних типів як єдине ціле. Наприклад, якщо вводити у програму дані з екзаменаційної відомості: прізвище студента (описується типом string), номер залікової книжки (цілочисельний тип), екзаменаційна оцінка (тип-діапазон 2..5 на базі цілочисельного). Всі ці дані пов’язані між собою і повинні оброблятися як єдине ціле. Враховуючи те, що студентів в групі не більше 30, можна було би використовувати масив, але дані різнотипні, тому простий масив використати неможна.

У таких випадках для найдоцільнішим буде використання типу запис.

Запис (record ) – це складний структурований тип даних, що включає декілька частин – полів запису і кожне поле описується певним типом. Змінна – запис описується типом record , після якого задаються назви полів запису та їх тип. Опис закінчується ключовим словом end. Запис описується у розділі type або var за допомогою такої конструкції:

Var

<ім’я запису> = record

<ім’я поля 1> : <тип поля 1>;

<ім’я поля 2> : <тип поля 2>;

. . .

<ім’я поля М> : <тип поля М>;

end;

Доступ до конкретного поля запису дає складне ім’я вигляду:

< ім’я запису > . < ім’я поля > ;

Складені імена використовувати незручно, тому щоб цього уникнути , застосовують команду приєднання

with < ім’я змінної типу запис > do< команда>;

Из ведомости 3-х студентов с их оценками ( порядковый номер, Ф.И.О. и три оценки) определить количество отличников и средний бал каждого студента.

Program Spic;

Type wed = record {Тип wed включает 3 поля: n, fio, bal}

n : integer ;

fio : string[40] ;

bal : array [1..3] of integer {Поле bal – массив из 3 оценок }

end;

Var spisok : wed ; {Запись spicok типа wed}

i, j, kol, s : integer; sr : real;

Begin

kol:=0; {kol- количество отличников}

With spisok do {with присоединяет имя записи spisok ко всем }

For i:=1 to 3 do { полям внутри цикла For по i }

begin

n:=i;

Write (' Vvedite FIO # ', i ,' ');

Readln (fio);

s:=0;

For j:= 1 to 3 do

begin

write ( 'Vvedite ocenky: ' );

readln ( bal [j] );

s := s+ bal [j];

end;

if s=15 then kol:=kol+1; {подсчет количества отличников}

sr := s/3; writeln ( fio, ', Sredniy bal = ', sr:4:1); end;

writeln ( ' Kolichestvo otlichnikov = ', kol );

readln;

end.

30.Поняття файлу. Програмна модель файлу. Типи файлів. Способи доступу.

Програмна модель файлу

З точки зору користувача файл являє собою сукупність однотипної інформації, що зберігається на диску під заданим ім’ям. Розмір файлу обмежений тільки фізичними можливостями пристрою (диску).

Типи файлів:

  1. типізований файл:

  2. нетипізований файл;

  3. текстовий файл.

Типізований файл – являє собою лінійну послідовність компонентів (елементів) одного типу і, як слідство цього, одного розміру (рис. 20). Всі компоненти файлу пронумеровані, починаючи з 0. Але це не означає, що файл організований аналогічно масиву. Нажаль, до компонентів файлу не можна звертатися за їх індексами. Наприкінці файлу встановлюється управляючий символ EOF (end of file) – ознака кінця файлу.

В Паскаль-програмі розмір типізованого файлу вимірюється не в байтах, а в компонентах, тобто кількість компонентів файлу є його розміром.

В кожний момент часу доступним є тільки один компонент файлу. На нього вказує файловий покажчик, який є аналогом курсору. Він вказує, до якого компоненту файлу відбувається звернення. При виконанні операції читання або запису файловий покажчик автоматично пересувається на наступний компонент файлу.

Нетипізований файл – являє собою лінійну послідовність байтів. Для швидкісного зчитування даних з нетипізованого файлу до пам’яті та запису з пам’яті на диск нетипізований файл розбивається на блоки фіксованого розміру (рис.21). Бажано, щоб розмір блоку був 128, 256, 512 і т.д. байтів (це обумовлено фізичною організацією дискового простору). Переваги використання нетипізованого файлу відчутні при роботі з великими масивами даних, тому що існує можливість перенесення інформації не по окремих елементах, а блоками (гуртово).

Текстовий файл – являє собою послідовність символів. Текстовий фал може бути розбитий на рядки ( EOLN (end of line) – ознака кінця рядка). Наприкінці файлу знаходиться ознака EOF (рис. 22).

31.Обробка файлів у програмах мовою Pascal. Використання стандартних процедур для обробки файлів.

У програмах файли використовуються для постійного збереження даних. Для того щоб у програмі здійснити звернення до файлу необхідно:

  1. Оголошення файлової змінної

Файлова змінна ( ФЗ ) – це спеціалізована змінна програми для доступу до файлів.

Відповідно до типу файлу файлова змінна може бути одного з трьох типів:

  • типізована файлова змінна оголошується:

< ідентифікатор ФЗ> : file of <тип компонентів файлу> ;

Наприклад:

Var

F:file of integer; {ФЗ для доступу до файлу з цілими числами}

G:file of real; {ФЗ для доступу до файлу з дійсними числами}

  • нетипізована файлова змінна:

< ідентифікатор ФЗ> : file ;

Наприклад:

Var

H:file; {нетипізована ФЗ}

  • текстова файлова змінна

< ідентифікатор ФЗ> : text ;

Наприклад:

Var

J:text; {ФЗ для доступу до текстового файлу}

  1. Зв’язування файлової змінну з файлом на диску

Ця операція виконується за допомогою процедури:

Assign (<ФЗ>, <ім’я файлу>);

<ФЗ> – файлова змінна будь-якого типу;

<ім’я файлу> - повне ім’я файлу, що включає ім’я диску, список каталогів та безпосередньо ім’я файлу з розширенням. Ім’я файлу – це послідовність символів, тобто змінна типу string або рядкова константа. Наприклад:

Assign(f, ‘c:\MyDir\myfile.dat’);

В наведеному прикладі файлова змінна f зв’язується з фаайлом, що розташований на диску c: в каталозі MyDir. Ім’я файлу – myfile, розширення dat.

Після установки зв’язку файл необхідно відкрити.

  1. Відкриття файлу

Для того щоб отримати доступ до компонентів файлу, його необхідно відкрити.

Під час відкриття файлу можливі два випадки: відкриття вже існуючого файлу та відкриття нового файлу (або створення). Крім того відкриття типізованих, нетипізованих та текстових файлів можливе за допомогою різних процедур, що визначає різні можливості при виконанні операцій зчитування та запису елементів файлу.

Дії з файлами:

Для того, щоб знайти потрібний елемент файлу, необхідно послідовно переглянути всі попередні. Такий спосіб доступу називають послідовним.

Для визначення кінця файлу використовують функцію:

Еоf (<ім’я файлу >) ;

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

Для роботи з файлами використовують команди (процедури модуля System):

Assign (<ім’я файлу >, <зовнішнє ім’я файлу>) – налагоджує зв’язок між іменем файлу (файлова змінна) з файлом на зовнішньому носії;

Reset (<ім’я файлу >) – відкриває файл для читання з нього даних;

Read (<ім’я файлу >, < ім’я змінної > ) – читає (вводить) дане з файлу в оперативну пам’ять;

Close(<ім’я файлу >) – закриває файл;

Rewrite (<ім’я файлу>) – відкриває файл для записування в нього даних;

Write (<ім’я файлу >, < ім’я змінної > ) – записує (виводить) дане у файл;