
Лабораторна робота №8
Тема: Регулярні типи даних.
Мета роботи: Оволодіти правилами опису регулярних типів даних.
Вивчити операції та стандартні функції і процедури, які застосовуються до регулярних типів даних.
Здобути навички роботи з масивами і рядками символів.
Теоретичні відомості
Масив – це структурний тип даних, який складається з фіксованої кількості елементів однакового (базового) типу.
Масив на мові Паскаль можна описати таким чином:
type <назва типу>=array [тип індексу] of <тип елементів>;
var <ідентифікатор,…>:<назва типу>; або
var <ідентифікатор,…> array [тип індексу]of <тип елементів>;
Приклад: var A,B: array [1..10] of integer;
Масиви можуть бути одновимірними (вектори), двовимірними (матриці) та багатовимірними.
Достyп до кожного окремого елемента масиву відбувається за його індексом, наприклад, A[2], A[i], A[i+j]. Індексовані елементи масиву можна використовувати як звичайні змінні відповідного типу.
Для роботи з масивами як цілими об’єктами можна застосовувати лише операції відношення “дорівнює” (А=В), “не дорівнює” (A<>B) та операцію присвоєння (А:=В). Це допускається тільки тоді, коли масиви мають однакову структуру.
Рядок – це послідовність символів. При використанні у виразах рядок береться в лапки. Довжина рядка може змінюватися в межах від 0 до 255.
Рядок можна описати таким чином:
type <назва типу >= string [максимальна довжина рядка];
var <ідентифікатор,…>: <назва типу>; або
var <ідентифікатор,…>[максимальна довжина рядка];
Приклад: var St, St1, St2:string[50];
Доступ до кожного окремого символу рядка відбувається з допомогою його номера (індексу), наприклад, St[3], St[i], St[i+j].
Над рядками можна виконувати операцію конкатенації (+), яка зчеплює рядки в один рядок, і операції відношення (=, <>, >, >=, <, <=). Порівняння рядків відбувається зліва направо до першого символу, який не співпадає. Результатом порівняння є TRUE або FALSE.
Процедури для роботи з рядками
Delete (Str, Pos, N )—вилучення N символів у рядку Str, починаючи з позиції Pos.
Insert (Str1, Str2, Pos) – вставка рядка Str1 у рядок Str2, починаючи з позиції Pos.
Str (IBR, Str) – перетворення числового значення IBR у рядок Str.
Val (Str, IBR, Code) – перетворення рядка Str у величину цілого або дійсного типу IBR (Code <>0, якщо виявилась помилка).
Функції для роботи з рядками
Copy (Str, Pos, N) – виділяє із рядка Str підрядок довжиною N символів, починаючи з позиції Pos.
Concat (Str1, Str2, …,Str N) – виконує зчеплення в один рядок рядків Str1, Str2, …,Str N.
Lenght (Str) – обчислює довжину рядка Str.
Pos (Str1, str2) – виявляє перше входження підрядка Str1 у рядок Str2. Результат дорівнює номеру першої позиції входження (або 0, якщо підрядок Str1 не знайдено
UpCase (Ch) – перетворює малу літеру у велику. Параметр і результат мають символьний тип.
Завдання для самостійного виконання
Робота з одновимірними масивами
Завдання 1
Дано масив чисел а1, …, а20 і число b. Скласти програму опрацювання одновимірного масиву згідно завдань, вказаних у таблиці
№ Варіант |
Завдання |
1. |
Знайти кількість ненульових елементів масиву. |
2. |
Знайти суму додатних елементів масиву. |
3. |
Знайти суму елементів масиву з парними номерами. |
4. |
Знайти добуток від'ємних елементів масиву. |
5. |
Знайти кількість елементів масиву, рівних числу b. |
6. |
Знайти суму від'ємних елементів масиву. |
7. |
Знайти добуток елементів масиву, рівних числу b. |
8. |
Знайти кількість додатних елементів масиву. |
9. |
Знайти суму елементів масиву, відмінних від нуля. |
10 |
Знайти добуток додатних елементів масиву. |
11. |
Знайти максимальний елемент масиву. |
12. |
Поміняти мінімальний елемент масиву з першим. |
13. |
Знайти суму елементів масиву, відмінних від числа b. |
14. |
Знайти кількість від'ємних елементів масиву. |
15. |
Поміняти максимальний елемент масиву з останнім. |
Завдання2
Скласти програму і розв’язати задачу згідно варіанту. Вхідні дані підібрати самостійно з метою перевірки правильності розробленого алгоритму.