Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В языке C они выполняются конструкцией вида:
(<имя-типа>)<выражение>
Пример.
sqrt (( double )n)
Следует заметить, что применение оператора приведения типа, как его принято называть, ограничено, поскольку автоматические преобразования в подавляющем большинстве случаев дают тот же результат.
В языке Basic явные преобразования выполняются с помощью группы встроенных функций.
CBool (<выражение>) à boolean
CByte (<выражение>) à byte
CСur (<выражение>) à currency
CDate (<выражение>) à date
CDbl (<выражение>) à double
CInt (<выражение>) à integer
CLng (<выражение>) à long
CSng (<выражение>) à single
CStr (<выражение>) à string
CVar (<выражение>) à variant
Необходимо отметить особенности некоторых видов явных преобразований. Преобразование вида float | double à int в языке C приводит к отбрасыванию дробной части.
Пример.
int k, m;
float s;
s=3.78;
k=s; à k=3
m=-s; à s=-3
В языке Basic аналогичное преобразование вызывает округление.
Пример.
dim k as integer, m as integer, s as single
s=3.78
k=s à k=4
m=s-0.5 à k=3
Преобразование вида int à unsigned в языке C для отрицательных чисел приводит к следующему эффекту.
Пример.
int k;
unsigned m;
k=-1;
m=k; à m=65535
При преобразовании типов в направлении, обратном схеме автоматических преобразований, возможны потеря точности и даже ошибки во время выполнения программы. Это происходит в том случае, если результат преобразования имеет меньшую точность представления, чем источник, или меньший диапазон представления данных.
Пример.
dim k as long, s as single, m as integer
k=123456789
s=k à s=1.234568 e +8
m=k à Ошибка!
Вопросы для самопроверки и контроля
Вопросы для самопроверки
1. Что произойдет при присваивании переменной типа enum значения не из списка допустимых значений в программе на языке C? А в языке Basic?
2. Есть ли предопределенный тип для дат/времени в языке C?
3. Какое средство языка C напоминает тип variant языка Basic?
4. Для чего нужен тип void?
5. Какой язык позволяет менять структуру и размеры массивов во время выполнения программы?
6. Может ли структура быть элементом другой структуры?
7. Как называются инструкции, задающие пользовательский тип данных в языках C и Basic?
8. Каков основной принцип автоматических преобразований числовых типов данных?
Контрольные вопросы
1. Можно ли использовать данные типа currency не в денежных расчетах?
2. Есть ли средства для манипулирования частями массивов, например, строкой или столбцом матрицы? Если есть, то в каком языке и какие?
3. Есть ли средства для работы с битами? Назовите, если они есть.
4. Что называют рекурсивной структурой?
5. Что является признаком переменной структуры?
6. Что такое объединение?
7. Отличаются ли правила обращения к элементу структуры в языках C и Basic?
8. Каковы недостатки использования типа данных variant?
9. Напишите инструкцию явного преобразования типа языка C.
Дата публикования: 2014-11-02; Прочитано: 173 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!