- •Лабораторна робота №1. Розгалужені оператори мови Borland Pascal
- •Теоретичні відомості
- •1. Структура програми на Pascal
- •2. Прості оператори
- •3. Оператори розгалуження
- •4. Процедури введення / виведення
- •Порядок виконання роботи:
- •Контрольні запитання:
- •Лабораторна робота №2. Циклічні оператори мови Borland Pascal
- •Теоретичні відомості
- •Лабораторна робота №3. Процедури та функції користувача мови Borland Pascal
- •Теоретичні відомості
- •Опис процедур
- •Лабораторна робота №4. Одновимірні масиви мови Borland Pascal
- •Теоретичні відомості
- •Лабораторна робота №5. Двовимірні масиви мови Borland Pascal
- •Теоретичні відомості Багатовимірні масиви
- •Оголошення багатовимірних масивів. Доступ до елементів
- •Базові операції обробки двовимірних масивів
- •Лабораторна робота №6 Записи. Множини в мові Borland Pascal
- •Теоретичні відомості
- •Порядок виконання роботи:
- •Контрольні запитання
- •Звіт повинен містити:
- •Завдання 1до лабораторної роботи №6
- •Завдання2 до лабораторної роботи №6
- •Лабораторна робота №7. Текстові та бінарні файли мови Borland Pascal
- •Теоретичні відомості
- •Операції над текстовими файлами
- •Завдання до лабораторної роботи №7
- •Лабораторна робота №8 Динамічні структури даних в мові Pascal
- •Теоретичні відомості
- •Теоретичні відомості
- •Базові типи даних
- •Потоки введення – виведення даних
- •Математичні функції
- •Порядок виконання роботи:
- •Теоретичні відомості
- •Вираз1, вираз2 або команда1, команда2
- •If (логічний вираз) команда1; else команда2;
- •If (логічний вираз) команда1;
- •Теоретичні відомості
- •Лабораторна робота №4. Циклічні оператори (while, do…while).
- •Теоретичні відомості
- •Цикл з передумовою while
- •While ( вираз )оператор;
- •Завдання 2.
- •Лабораторна робота №5. Циклічні оператори (for).
- •Теоретичні відомості
- •Теоретичні відомості
- •Лабораторна роботА №7. Одновимірні масиви
- •Теоретичні відомості
- •Теоретичні відомості
- •Порядок виконання роботи:
- •Контрольні запитання
- •Звіт повинен містити:
- •Завдання до лабораторної роботи №3
Лабораторна робота №6 Записи. Множини в мові Borland Pascal
Мета: Засвоєння навичок опису та використання структур даних типу ,,запис"(гесогd)
Обладнання: ПК, програмне забезпечення Turbo Pascal, методичні вказівки та завдання до лабораторної роботи.
Теоретичні відомості
Опис фіксованого запису:
Record
<поле1>, <поле2>:<тип>;
<полеN!>: <тип> ;
End;
Причому в рамках одного запису всі імена полів мають бути унікальними.
Приклад:{тип -запис}
Type Student=Record
Name:string;
Year:1900. .2000;
End;
{змінна-запис} vаг price:record
Grivni,Kopijki:Word;
end;
S, {один студент}
G52_:.array[1. . 30] of Student; {група (масив) студентів}
F:file of Student; {файл із студентів}
Доступ до полів запису:
здійснюється за допомогою кваліфікованих ідентифікаторів: <ім'я змінної>.<поле> Для спрощення роботи з записами можна використовувати спеціальний оператор приєднання WITH
Варіантні записи включають дві частини: перша-фіксований запис; друга варіантний запис що складається з поля ознаки та одного чи декількох варіантних компонентів які записуються після ключового слова case
Приклад опису варіантного запису, в якому, в залежності від семестру(Semestr-варіантний запис), вибирається список відповідних предметів:
Type Tseml=record
Matem :byte;
History:byte;
End;
Tsem2=record
Algor :byte;
Phisic :byte;
End;
Student=Record
Name:string;
Case Semestr:byte of
1: (Markl:Tseml) ;
2: (Mark2:Tsem2) ;
End;
Множиною в мові Pascal називається скінченний набір однотипних даних. Об'єкти, з яких складається множина, називаються її елементами. Число, що дорівнює кількості елементів множини, називається її потужністю. У мові Pascal порожня множина позначається як порожній перелік, тобто символами [].
Зауважимо, що порядок елементів у переліку є несуттєвим і кожен елемент входить до складу множини один раз.
Множинний тип — це структурований тип даних, допустимими значеннями якого є деякі множини. Синтаксис оголошення множинного типу даних:
type <ім'я типу> = set of <базовий тип>;
Оголошення множинного типу даних вимагає визначення для нього деякого базового типу. Базовим може бути будь-який перелічуваний тип, крім Integer та Longint, а значенням множинного типу може стати довільний набір значень базового типу. Наведемо приклади. Припустимо, є таке оголошення множинного типу ТуреА:
type ТуреА = set of 2..4;
Оголошення змінної типу масиву або типу запису може бути відокремленим від оголошення відповідного типу або поєднаним із ним. Таку саму ситуацію маємо і зі змінною множинного типу даних: існує два різних синтаксиси її оголошення. А саме:
var <ім'я змінної>:set of <базовий тип>;
та
var <ім'я змінної>:<ім'я множинного типу>;
При оголошенні множинної змінної першим способом неявно оголошується неіменований множинний тип даних, а другий спосіб потребує попереднього оголошення множинного типу в розділі type. Наведемо приклади оголошення констант і змінних множинного типу, означуючи самі типи явно, в розділі type, або неявно, в розділі var:
Приклад
type
Digits = set of 0..9; {тип множини цифр }
Letters = set of 'A'..'Z'; {тип множини латиниці}
Day = (Sun, Mon, Tue, Wed, Thu, Fri, Sat); {тип множини днів }
WorkDay = Mon..Fri; {тип діапазону }
const
EvenDigits: Digits = [0, 2, 4, 6, 8];
Vowels: Letters = ['A’. ‘E’. ‘I’, ‘0’, ‘U’, ‘Y’];
HexDigits; set of 'O'./z' = ['0 і.. '9'. 'A'.. 'F'. 'a'.. 'f ];
var
symbol:set of char; {множина символів }
week:set of Day; {множина днів від Sun до Sat }
WorkWeek:set of WorkDay: {множина днів від Mon до Fri }
number:set of byte; {множина цілих однобайтових чисел}
intset:set of 0..100; {множина чисел від 0 до 100 }
Всі означені в мові Pascal операції над даними множинного типу мають відповідники у математиці. У табл. 1 перелічено всі такі операції та наведено їх запис як у математичній, так і у Pascal-символіці.
Важливі окремі випадки операцій об'єднання та різниці множин реалізовано у вигляді бібліотечних процедур Include та Exclude, що здійснюють включення елемента до множини та вилучення його із множини відповідно. Наведемо прототипи цих процедур.
IncludeCvar S;i); Exclude(var S;i);
Тут S — це змінна множинного типу; і — елемент, який включають до множини S або видаляють з неї. Тип і повинен бути базовим типом множини S.
Як і змінним усіх інших типів мови Pascal, змінній деякого множинного типу можна присвоювати значення виразів того самого типу. Слід зауважити, що одноелементна множина може бути утворена і шляхом запису імені цієї змінної базового типу у квадратних дужках. Тому коректним є таке присвоєння:
<ім'я змінної типу множини>:=[<ім'я змінної базового типу>];
Приклад демонструє застосування операцій над множинами. У програмі формуються дві множини: множина символів ensemble та множина чисел Digit. Множина ensemble спочатку є порожньою, введені користувачем символи додаються до неї доти, доки не буде введено символу ' п'. При цьому введені знаки питання замінюються знаками оклику. З множини Digit, яка спочатку містить цілі числа від 1 до 10, введені користувачем елементи вилучаються доти, доки не буде вилучено одиниці.
Приклад 1.
var ensemblerset of char;
Digit:set of byte;
ch:char;
number:byte;
begin
ensemble:=[];
repeat
writeln('Enter symbol. Enter "n" to finish');
readln(ch);
ensemble:=ensemble+[ch];
if ch='?' then ensemble:=ensemb1e+['!'];
until 'n' in ensemble;
repeat
writeln('Enter number. Enter 1 to finish');
readln(number);
Digit:=Digit-[number];
until not d in Digit);
end.
