- •Міністерство освіти і науки Україні
- •Закарпатський державний університет
- •Природничо-гуманітарний коледж
- •Методичні вказівки
- •До лабораторних робіт по дисципліні
- •Лабораторна робота № 1. Лінійні програми.
- •Короткі теоретичні відомості.
- •Структура програми.
- •Приклад розділу змінних
- •Тип даних Integer .
- •Тип даних Real.
- •Тип даних Сhar.
- •Тип даних Boolean (логічний).
- •Хід роботи
- •Контрольні питання.
- •Варіанти завдань.
- •Лабораторна робота № 2. Оператори повторення.
- •Короткі теоретичні відомості.
- •1. Оператор циклу з параметром.
- •2. Циклічні програми. Складність циклічної програми.
- •3. Оператори повторення While і Repeat.
- •4. Обмежені типи.
- •5. Мітки. Оператор переходу. Застосування оператора переходу для дострокового виходу з циклу.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 3. Масиви. Алгоритми сортування та пошуку.
- •Короткі теоретичні відомості.
- •1. Складні (складені) типи.
- •2. Регулярний тип. Масиви.
- •3. Пошук елемента в масиві.
- •4. Постановка задачі сортування.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 4 Рядки та засоби їх обробки. Короткі теоретичні відомості.
- •Хід роботи
- •Контрольні питання.
- •Лабораторна робота №5 Процедури та функції. Короткі теоретичні відомості.
- •1. Опис процедур.
- •2.Формальні параметри. Локальні і глобальні об’єкти.
- •3. Оператор процедури. Фактичні параметри.
- •4. Функції.
- •5. Рекурсивно-визначені процедури і функції.
- •Хід роботи
- •Контрольні питання.
- •Лабораторна робота № 5. Складні типи даних: записи. Короткі теоретичні відомості.
- •1. Записи.
- •2 .Записи з варіантами.
- •3.Оператор приєднання.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 6. Множини. Короткі теоретичні відомості.
- •1.Множинний тип.
- •2.Конструктор множини.
- •3. Операції і відношення.
- •4. Застосування множин у програмуванні.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 7 Файли. Управління файлами. Короткі теоретичні відомості.
- •Хід роботи.
- •Контрольні питання.
Хід роботи.
Виконати свій варіант із завдання.
Відкомпелювати програму і запустити на виконання.
Записати відкоректовану програму, вихідні данні та результат роботи програми.
Контрольні питання.
Дати поняття оператору умови.
Визначити поняття множинного типу.
Описати конструктор множини.
Визначити операції та функції над даними множинного типу.
Описати процес застосування множин у програмуванні.
Завдання.
З множини чисел [1..n] виділити підмножину простих чисел виду 4k+1.
З множини чисел [1..n] виділити підмножину повних квадратів виду 6k+1.
З множини чисел [1..n] виділити підмножину простих чисел виду k2+n2.
З множини чисел [1..n] виділити підмножину чисел виду p2 , де p – просте.
З множини чисел [1..n] виділити підмножину чисел виду p-q , де p, q – прості.
З множини чисел [1..n] виділити підмножину простих чисел p, таких, що p+2– просте число (пошук “близнят”).
З множини чисел [1..n] виділити перетин підмножин - чисел виду 4k+1 і 5k+4.
З множини чисел [1..n] виділити об’єднання підмножин - чисел виду 4k+3 і 5k+2.
З множини простих чисел менших ніж n виділити підмножину чисел виду 2n+1, 2n-1.
З множини чисел [1..n] виділити підмножину простих чисел виду k2+1.
З множини чисел [1..n] виділити підмножину складних чисел виду k2+n2.
З множини чисел [1..n] виділити підмножину складних чисел виду 6k1.
З множини чисел [1..n] виділити підмножину складних чисел виду k2+1.
З множини чисел [1..n] виділити підмножину простих чисел виду p*q , де p, q – прості.
З множини чисел [1..n] виділити підмножину складних чисел виду 6k+1, і підмножину простих чисел виду 6k+1.
З множини чисел [1..n] виділити підмножину простих чисел p таких що p-2, p+2 - складні.
З множини чисел [1..n] виділити перетин підмножин і різницю підмножин чисел виду 4k+3 і 5n+2.
З множини чисел [1..n] виділити підмножину досконалих чисел (число називається досконалим якщо воно дорівнює сумі своїх власних дільників, наприклад 6=3+2+1).
З множини чисел [1..n] виділити підмножину складних чисел виду pq+1 , де p, q – прості.
З множини чисел [1..n] виділити підмножину простих чисел виду pq+1 , де p, q – прості.
Лабораторна робота № 7 Файли. Управління файлами. Короткі теоретичні відомості.
Програма, яка написана мовою Pascal, повинна якимось чином обмінюватись даними з зовнішніми пристроями ( отримувати дані з клавіатури, магнітного диска, виводити дані на екран, принтер і т.д.) Для роботи з зовнішніми пристроями використовуються файли. Файли - це значення файлового типу даних - ще одного стандартного складного типу в мові.
(Послідовний) файл - це послідовність однотипних компонент, яка має ознаку кінця і оброблюється послідовно - від початку до кінця.
Порядок компонент визначається самою послідовністю, подібно до того, як порядок слідування чергового кадру кінофільму визначається його розташуванням на кіноплівці. У будь-який момент часу доступний тільки один елемент файла (кадр кінофільму). Інші компоненти доступні тільки шляхом послідовного просування по файлу.
У результаті виконання програми відбувається перетворення одного текстового файла (який називається Input) в інший текстовий файл (який називається Output). Обидва ці файли є стандартними і використовуються для введення /виведення даних.
Над файлами можна виконувати два явних виду дій:
Перегляд (читання) файла.
Створення (запис) файла - виконується шляхом приєднання нових компонент у кінець початково порожнього файла.
Файли, з якими працює програма, повинні бути описані в програмі. Частина файлів ( що уявляють собою фізичні пристрої ) має в операційній системі стандартні імена. Наприклад, для читання даних з клавіатури і виведення результатів на екран монітора ми користуємось стандартними файлами 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;
