Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Автоматичне приведення типів

Читайте также:
  1. Питомий електричний опір гірських порід різних генетичних типів і складу
  2. Формування двох типів рабовласницьких держав: “азіатського” та “античного” типу.

Цікавою особливістю варіантних змінних є те, що під час виконання програми їх тип автоматично приводиться для відповідності змісту виразу. Природно, це правило вірне не для всіх типів варіантних змінних, а тільки для тих, в яких зберігаються числові (цілочисельні і дійсніі), строкові, символьні і логічні значення.

Допустимо, наприклад, що в програмі є варіантна змінна Vi, якій присвоєне значення 200. Після присвоєння змінна Vi буде цілочисельною (мати тип з кодом varbyte):

Vi:= 200;

Допустимо також, що є змінна S типу string. Тоді в результаті виконання оператора привласнення S: = Vi, значенням змінної S буде рядок ’200’ Таким чином, під час виконання оператора значення цілочисельної змінної буде автоматично переведено в символьний вигляд.

Більш того, можлива і зворотна ситуація, коли варіантна змінна рядкового типу автоматично переводиться в чисельну форму. Проте саме в таких ситуаціях можуть виникати помилки часу виконання. Розглянемо приклад безпомилкового використання варіантної змінної (лістинг 5).

Лістинг 5. Приклад безпомилкового використання варіантної змінної

Program Usingvariants2;

Var

V: Variant; { Опис варіантної змінної, тип змінної не визначений}

i: Integer; { Опис змінної типу String}

Begin

V:= '280'; { Присвоєння значення варіантній змінній V, змінній призначається рядковий тип даних}

і:= V; { Цілочисельній змінній і присвоюється значення варіантної змінної V. Значення змінної і стає рівним 280}

End.

Але значенням змінної V міг би бути не рядок '280', а, наприклад, рядок 'а280' – див. лістинг 6.

Лістинг 6 Приклад виникнення помилкової ситуації

Program Usingvariants3;

Var

V: Variant{ Опис варіантної змінної, тип змінної не визначений}

і: Integer; { Опис змінної типу String}

Begin

V:= ‘а280’; { Присвоєння значення варіантній змінній V, змінній призначається рядковий тип даних}

I:= V; { Помилка часу виконання – невідповідність типів, оскільки із рядкової варіантної змінної неможливо виділити цілочисельне значення)

End.

Виконання такої програми неможливе і буде перервано з повідомленням про помилку: "Could not convert variant of type (String) into type (Integer)" - "Неможливо привести тип String до типу Іnteger". Ця помилка з'являється не із-за неможливості перетворити рядок в числове значення взагалі, а із-за неможливості виділити ціле число саме з цього рядка.

Правила трансформації варіантних значень при використанні їх у виразах приведені в таблиці. 2.

Таблиця 2

Правила зміни варіантних значень


Дата добавления: 2015-07-11; просмотров: 207 | Нарушение авторских прав


Читайте в этой же книге: Завдання | Одержання та дослідження колоїдних розчинів срібла. | Кадровий облік | Звіти з кадрового обліку, з нарахування і виплати зарплати | Нарахування зарплати | Особливості обліку ПДФО | Виплата зарплати | Введення початкових залишків по зарплаті | Типізовані покажчики | Динамічні масиви |
<== предыдущая страница | следующая страница ==>
Визначення типу варіантних змінних| Варіантні масиви

mybiblioteka.su - 2015-2024 год. (0.009 сек.)