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

Структурні типи даних визначають впорядковану сукупність скалярних змінних і характеризуються типом своїх компонентів. В мові Паскаль допускаються наступні структурні типи даних: рядки, масиви, множини, записи, файли, покажчики.

Рядок - це послідовність символів. При використовуванні у виразах рядок обов'язково береться в апострофи. Кількість символів в рядку (довжина рядка) може динамічно змінюватися від 0 до 255. Для визначення даних рядкового типу використовується ідентифікатор string, за яким слідує укладене в квадратні дужки значення максимально допустимої довжини рядка даного типу. Рядкові дані можуть використовуватися в програмі також як константи. Визначення рядкового типу встановлює максимальну кількість символів, яку може містити рядок.

Формат:

Туре <ім'я типу> = string [максимальна довжина рядка];

Var <ідентификатор...> : <ім'я типу>;

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

Операція зчеплення (+) застосовується для зчеплення декількох рядків в один результуючий рядок. Вираз "Е'+'С'+' 18'+*40'. Результат 'ЕС 1840". Довжина результуючого рядка не повинна перевищувати 255.

Операції відношення (=, < >, <, >=, <=) проводять порівняння двох рядкових операндов і мають пріоритет більш низький, ніж операція зчеплення, тобто спочатку завжди виконуються всі операції зчеплення, якщо вони присутні, і лише потім реалізуються операції відношення. Порівняння рядків проводиться зліва направо до першого неспівпадаючого символу, і той рядок вважається більше, в якій перший неспівпадаючий символ має більший номер в стандартній таблиці символів. Результат виконання операцій відношення над рядковими операндами завжди має булевий тип і приймає значення True, якщо вираз істинний і False, якщо вираз помилковий.

Якщо рядки мають різну довжину, але в загальній частині символи співпадають, вважається, що більш короткий рядок менший ніж більш довгий. Рядки вважаються рівними, якщо вони повністю співпадають по довжині і містять одні і ті ж символи.

Якщо значення змінної після виконання оператора привласнення перевищує по довжині максимально допустиму при описі величину, всі зайві символи справа відкидаються.

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

  1. Структурні типи даних. Множини. Опис множин. Операції над множинами.

Структурні типи даних визначають впорядковану сукупність скалярних змінних і характеризуються типом своїх компонентів. В мові Pascal допускаються наступні структуровані типи даних: рядки, масиви, множини, записи, файли і покажчики. Множина – це структурований тип даних, який являє собою набір вибраних по якій-небудь ознаці або групі ознак об’єктів, які можна розглядати як єдине ціле. Елементи множини не впорядковані. Для опису множини використовується зарезервоване слово set (множина).

Регулярний типмножини. Це означає, що елементи таких структур даних будуть однотипні значення (цілі числа, символи, перелічувальні типи). На відмінну від масивів, де кількість елементів є фіксованою і незмінною, множини можуть змінювати свій склад, проте кількість елементів не може перевищувати деякого фіксованого значення. І масиви, і рядки можуть мати декілька однакових елементів, у множині всі елементи різні. Оголошення множини, при доповненні стандартних слів set of, після яких вказується ідентифікатор елементів множини. В якості базових типів можуть бути лише порядкові типи і кількістю елементів до 256. Це цілі byte, shorting, символи char, логічні boolean.

Значення множинних величин задається в парі квадратних дужок, переліком через кому або інтервалом.

Наприклад

A:=[109,100,0,5..50]; B:=[100,0..99]; C:=[‘A’,’Z’]; D:=[red];

Множини можуть бути порожніми [ ].

В пам’яті множини представляються у вигляді чисел достатньо великого розміру. Кожне із цих чисел в своєму подвійному записі матиме одиничний біт у позиції, що відповідає присутньому елементу. Таким чином множини займають у пам’яті 256 бітів і до 32 байт. Якщо базовий тип є перелічувальний або інтервальний із меншою, ніж 256 елементів, то і відповідне поле в пам’яті буде менше. Задання перелічувальних типів визначає порядок бітів, що відповідають кожному елементу.

Над множинами можуть виконуватися наступні дії:

Обєднання (додавання). Виконується над множинами одного базового типу.

Наприклад. A:=[1,2,3] B:=[3,4,8] C:=A+B { C=[1,2,3,4,8] }

Виконання операції додавання фактично є побітовою операцією диз’юнкції.

Перетин (множення множин). Результатом є спільна частина двох множин.

Наприклад. [1,2,3]*[3,4,8] =[3] [1,2,3]*[ ]= [ ]

Виконання операції множення фактично є побітовою кон’юнкцією.

Віднімання. Результат віднімання деякої множини В від множини А будуть всі елементи А, яких немає в множині В. Наприклад. [1,2,3]-[3,4,8]=[3]. Це побітова операція виключення або одиничними бітами у зменшуваному.

Операція належності

Дає істинний результат, якщо деякий елемент належить множині. Операція хибна в іншому випадку.

Наприклад. [1] in [3,4,8] = false..........[1] in [1,2,3]=true Формування множини безпосередньо з клавіатури і вивід їх на екран неможливо, оскільки стандартні процедури вводу-виводу не допускають параметрів множини так як і перелічувального. Але ці дії легко реалізувати за рахунок операції об’єднання та перевірки належності in для виводу.

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