Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лобораторні Pascal.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
530.94 Кб
Скачать

Хід роботи.

  1. Виконати свій варіант із завдання.

  2. Відкомпелювати програму і запустити на виконання.

  3. Записати відкоректовану програму, вихідні данні та результат роботи програми.

Контрольні питання.

  1. Дати поняття оператору умови.

  2. Визначити поняття множинного типу.

  3. Описати конструктор множини.

  4. Визначити операції та функції над даними множинного типу.

  5. Описати процес застосування множин у програмуванні.

Завдання.

  1. З множини чисел [1..n] виділити підмножину простих чисел виду 4k+1.

  2. З множини чисел [1..n] виділити підмножину повних квадратів виду 6k+1.

  3. З множини чисел [1..n] виділити підмножину простих чисел виду k2+n2.

  4. З множини чисел [1..n] виділити підмножину чисел виду p2 , де p – просте.

  5. З множини чисел [1..n] виділити підмножину чисел виду p-q , де p, q – прості.

  6. З множини чисел [1..n] виділити підмножину простих чисел p, таких, що p+2– просте число (пошук “близнят”).

  7. З множини чисел [1..n] виділити перетин підмножин - чисел виду 4k+1 і 5k+4.

  8. З множини чисел [1..n] виділити об’єднання підмножин - чисел виду 4k+3 і 5k+2.

  9. З множини простих чисел менших ніж n виділити підмножину чисел виду 2n+1, 2n-1.

  10. З множини чисел [1..n] виділити підмножину простих чисел виду k2+1.

  11. З множини чисел [1..n] виділити підмножину складних чисел виду k2+n2.

  12. З множини чисел [1..n] виділити підмножину складних чисел виду 6k1.

  13. З множини чисел [1..n] виділити підмножину складних чисел виду k2+1.

  14. З множини чисел [1..n] виділити підмножину простих чисел виду p*q , де p, q – прості.

  15. З множини чисел [1..n] виділити підмножину складних чисел виду 6k+1, і підмножину простих чисел виду 6k+1.

  16. З множини чисел [1..n] виділити підмножину простих чисел p таких що p-2, p+2 - складні.

  17. З множини чисел [1..n] виділити перетин підмножин і різницю підмножин чисел виду 4k+3 і 5n+2.

  18. З множини чисел [1..n] виділити підмножину досконалих чисел (число називається досконалим якщо воно дорівнює сумі своїх власних дільників, наприклад 6=3+2+1).

  19. З множини чисел [1..n] виділити підмножину складних чисел виду pq+1 , де p, q – прості.

  20. З множини чисел [1..n] виділити підмножину простих чисел виду pq+1 , де p, q – прості.

Лабораторна робота № 7 Файли. Управління файлами. Короткі теоретичні відомості.

Програма, яка написана мовою Pascal, повинна якимось чином обмінюватись даними з зовнішніми пристроями ( отримувати дані з клавіатури, магнітного диска, виводити дані на екран, принтер і т.д.) Для роботи з зовнішніми пристроями використовуються файли. Файли - це значення файлового типу даних - ще одного стандартного складного типу в мові.

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

Порядок компонент визначається самою послідовністю, подібно до того, як порядок слідування чергового кадру кінофільму визначається його розташуванням на кіноплівці. У будь-який момент часу доступний тільки один елемент файла (кадр кінофільму). Інші компоненти доступні тільки шляхом послідовного просування по файлу.

У результаті виконання програми відбувається перетворення одного текстового файла (який називається Input) в інший текстовий файл (який називається Output). Обидва ці файли є стандартними і використовуються для введення /виведення даних.

Над файлами можна виконувати два явних виду дій:

  1. Перегляд (читання) файла.

  2. Створення (запис) файла - виконується шляхом приєднання нових компонент у кінець початково порожнього файла.

Файли, з якими працює програма, повинні бути описані в програмі. Частина файлів ( що уявляють собою фізичні пристрої ) має в операційній системі стандартні імена. Наприклад, для читання даних з клавіатури і виведення результатів на екран монітора ми користуємось стандартними файлами Input і Output. Файл - принтер має ім’я Prn:

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

файловий тип

Файл, компоненти якого є символами, називається текстовим. Він має стандартний тип Text:

Type Text = File of Char;

Приклади:

Type

ExtClass = File of Person;

CardList = File of Integer;

Var

F : Text;

Data : File of real;

List1, List2 : CardList;

Class10A, Class10B : ExtClass;

Для роботи з нестандартними файлами ім’я файла повинно бути зв’язане з реально існуючим об’єктом - зовнішнім пристроєм. Якщо нам необхідно обробити дані з файла, що знаходиться на магнітному диску і який має (зовнішнє) ім’я D:\ExtName.dat, ми повинні повідомити системі, що працюючи з файлом IntName (читаючи з нього дані або записуючи до нього дані), ми працюємо з файлом ExtName.dat, що знаходиться на диску D:.

Для ототожнення внутрішнього імені файла з зовнішнім іменем використовується процедура Assign(< внутрішнє ім’я >, < ' зовнішнє ім’я ' >).

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

Процедура Rewrite(<ім’я файла >) - відкриває файл для запису. Якщо файл раніше існував, всі дані, що зберігались у ньому, знищуються. Файл готовий до запису першої компоненти.

Процедура Reset(<ім’я файла >) - відкриває файл для читання. Файл готовий для читання з нього першої компоненти.

По закінченню роботи з файлом (на запис) він повинен бути закритий. Для цього використовується процедура Close(<ім’я файла >). Ця процедура виконує всі необхідні машинні маніпуляції, що забезпечують збереження даних у файлі.

Для обміну даними з файлами використовують процедури Read і Writе.

Процедура Read (<ім’я файла >,<список введення >), читає дані з файла ( по замовченню ім’я файла - Input). Список введення - це список змінних.

Процедура Writе (<ім’я файла >,<список виведення >), записує дані у файл ( по замовченню ім’я файла - Output). Список виведення - це список виразів.

Якщо F - файл типу Text, то у списку введення/виведення допустимі змінні/вирази типу Integer, Real, Char, String[N]. В інших випадках типи всіх компонент списку повинні співпадати з типом компоненти файла.

При роботі з файлами застосовують стандартні логічні функції:

Eof(F) (end of file) - стандартна функція - признак кінця файла. Якщо файл F вичерпаний, то Eof(F) = True, в протилежному випадку Eof(F) = False.

Eoln(F) (End of line) - стандартна функція - признак кінця рядка текстового файла. Якщо рядок текстового файла F вичерпаний, то Eoln(F) = True, в протилежному випадку Eoln(F) = False. Фун­к­ція Eoln визначена тільки для файлів типа Text. Звичайно в програмах використовують або текстові файли, або файли, компонентами яких є структуровані дані (наприклад, записи).

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

Основні задачі обробки файлів.

Задача 1. Злиття (об’єднання) файлів. Дано файли F і G. Треба сформувати файл Н, який містить всі компоненти як F, так і G.

Алгоритм полягає у послідовному і почерговому перегляді файлів F і G і запису чергової компоненти в Н. Почерговість визначається порівнянням значень ключів компонент F і G. Оформимо алгоритм у виді процедури:

Procedure FileMerge(var F, G, H: OurFile);

Var X, Y : Component;

Flag : Boolean;

Procedure Step(var U:OurFile; var A, B:Component);

begin

Write(H, A);

If Eof(U)

then begin Write(H, B); Flag := False end

else Read(U, A)

end;

Procedure AppendTail(var U: Ourfile);

Var A: Component;

Begin

While not(Eof(U)) do begin

Read(U, A); Write(H, A)

end

end;

Begin

Reset(F); Reset(G); Rewrite(H);

Flag := True;

Read(F, X); Read(G, Y);

While Flag do

If X.Key < Y.Key

then Step(F, X, Y)

else Step(G, Y, X);

AppendTail(F);

AppendTail(G);

Close(H)

End;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]