Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция студ 7 (2007).doc
Скачиваний:
2
Добавлен:
28.10.2018
Размер:
100.35 Кб
Скачать

Процедури

Delete(Str,Poz,N) – вилучення N символів з рядка Str, починаючи з позиції Poz. Якщо Poz>255, виникає програмне переривання. N, Poz :integer

Insert(Str1,Str2,Poz)–вставка рядка Str1 у Str2, починаючи з позиції Poz (має бути значенням типу integer).

Str(Number,St) – перетворення числового значення величини Number і занесення результату в рядок St. Після Number може записуватися формат, аналогічний формату виведення. Якщо у форматі зазначена недостатня кількість розрядів, поле виведення розширюється до потрібної довжини.

Значення Number

Вираз

Результат

1500

Str(Number:6, St)

‘__1500’

4.8Е+03

Str(Number:10, St)

‘______4800’

76854

Str(-Number:3, St)

‘-76854’

Val(St,Number,Cod) – перетворює значення St у величину цілого або дійсного типу і розміщує результат у Number. Значення St не повинно містити зайвих пробілів на початку і наприкінці рядка. Cod – ціла змінна, значення якої не дорівнює нулю, якщо під час перетворення виявлена помилка. Cod буде містити номер позиції першого помилкового символу, a Number не буде визначено.

Значення Str

Вираз

Результат

‘1450’

val (Str, Number, Cod)

1450 Cod=0

‘14.2Е+02’

val (Str, Number, Cod)

1420 Cod=0

‘14.5А+01’

val (Str, Number, Cod)

? Cod=5

Функції

Copy(St,Poz,N) – копіює (запам’ятовує) зі змінної St підрядок довжиною N символів, по­чинаючи з позиції Poz. Якщо Poz > Lenght(Sf), то результатом буде пробіл; якщо Poz > 255, то виникне помилка при виконанні.

Pos(St1,St2) – виявляє номер першої появи в рядку St2 рядка St1. Результат має цілий тип і дорівнює номеру тієї позиції, де знаходиться перший символ рядка Stl. Якщо в St2 рядок Stl не знайдений, результат дорівнює 0.

UpCase(Ch) – перетворює малу літеру на велику. Параметр і результат мають літерний тип. Обробляються тільки літери латинського алфавіту.

Concat(A, В, ...) – з’єднує рядки в один рядок.

Рядком нульової довжини називається вираз ‘ ‘. Розглянемо задачу, що зумовлює застосування такого даного.

Тотожні й сумісні типи

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

Тотожність типів

Тотожність типів потрібна тільки для змінних фактичних і формальних параметрів при виклику процедур і функцій.

Два типи, скажімо T1 і T2, є тотожними, якщо є істинним одне з наступних тверджень:

  • T1 і T2 являють собою той самий ідентифікатор типу;

  • T1 описаний як еквівалентний типу, тотожному T2.

Друга умова означає, що T1 не обов'язково повинен бути описаний як безпосередньо еквівалентний T2. Наступні описи типів:

T1 = integer; T2 = T1; T3 = integer; T4 = T2;

означають, що T1, T2, T3, T4 і integer є тотожними типами.

Наступні описи типів: T5 = set of integer; T6 = set of integer; – не визначають T5 і T6 як тотожні, оскільки set of integer не є ідентифікатором типу. Дві змінні, описані в тому самому описі, наприклад: V1, V2: set of integer; мають тотожні типи, оскільки їх описи не роздільні. Опис:V1: set of integer; V2: set of integer; V3: integer; V4: integer; означають, що V3 і V4 мають тотожний тип, а V1 і V2 – ні.

Сумісність типів

Іноді, наприклад, у виразах і операціях порівняння, потрібна сумісність типів. Сумісність типів, крім того, є важливою передумовою для сумісності по присвоюванню.

Сумісність типів має місце, якщо виконується принаймні одна з наступних умов:

  • Обидва типи є тотожними.

  • Обидва типи є дійсними типами.

  • Обидва типи є цілочисловими.

  • Один тип є піддіапазоном іншого.

  • Обидва типи є відрізками того самого основного типу.

  • Обидва типи є множинними типами із сумісними базовими типами.

  • Один тип є рядковим, а інший тип є або рядковим типом, або символьним типом.

  • Один тип є вказівником (Pointer), а інший є будь-яким типом вказівників.

  • Обидва типи є процедурними з ідентичними типами результатів, однаковим числом параметрів і відповідністю між параметрами.