Приветствую Вас Гость |

Админ:a.khubiev@bk.ru
все уроки создания вирусов недоступны.Для доступа обратитесь к админу
Меню сайта

Пройди регистрацию,добавь 5 статей и получи статус

VIP

пользователя и много полезных бонусов.

Статистика

Главная » Статьи » Мои статьи

Явное преобразование типов и Перечисляемый тип(паскаль)

Явное преобразование типов

 

В ряде случаев в Pascal происходит автоматический переход от одного типа данных к другому (от целого к действительному, от символьного к строковому и т.д.). Существует также ряд функций, осуществляющих преобразование типов (ord, chr, trunc, round). Наряду с этим в Паскаль возможно явное преобразование типов (ретипизация данных). Для того, чтобы осуществить явное преобразование типа, необходимо использовать имя типа аналогично тому, как используется имя функции. В качестве параметра в этом случае указывается имя преобразуемой переменной.

Преобразовать можно любой тип к любому другому, однако следует выполнять требование: в операторе присваивания переменная слева должна занимать в памяти столько же или больше байт, сколько занимает преобразуемое значение.

Пример задачи, где используется явное преобразование типов

Вычислить значение функции sign(x) = 1 при x>0; 0 при x=0; -1 при x<0.

var x: real; sign: integerbegin readln(x); sign:= byte(x>0)-byte(x<0);writeln(sign)end.

 

В программе при положительном значении x выражение x>0 принимает значение true, а выражение x<0 — false. В результате получается, что byte(x>0) = 1, byte(x<0)=0, а sign=1. При отрицательном значении x byte(x>0)=0, byte(x<0)=1, sign=-1. При нулевом значении x sign=0.

Перечисляемый тип

 

В программу можно ввести и переменные какого-либо типа, не совпадающие ни с одним из стандартных типов. Такой тип задается перечислением значений при объявлении типа; любое из этих значений может принимать переменная данного типа, объявленная далее в программе. Общий вид описания перечисляемого типа:

type nm = (word1, word2, …, wordN)var w: nm;

 

здесь nm – идентификатор типа (произвольный), word1, word2… - конкретные значения, которые может принимать переменная w, принадлежащая типу nm. Значения данного типа считаются упорядоченными, т.е. описание типа одновременно вводит упорядочение word1 < word2 < wordN. Порядковые значения отсчитываются с 0.

К переменным типа перечисления можно применять функции ord, pred, succ и процедуры inc и dec.

Ко всем переменным одного и того же скалярного типа применимы операции отношения: =, <>, <=, >=, <, >.

Особенностью переменных типа перечисления является то, что их значения нельзя вводить с клавиатуры и выводить на экран (но можно использовать при работе с типизированными файлами).

Пример 1. type color = (red, yellow, green, blue);
Здесь определено, что red < yellow < green < blue. Переменная типа color может принимать одно из перечисленных значений.

Функция succ(x)

По элементу x определяется та упорядоченная последовательность, которой принадлежит x, и выдается элемент, следующий за x в этой последовательности.

Пример 2. Пусть задана последовательность букв в алфавитном порядке. Тогда succ(A) есть B; succ(L) есть M и т.д.

Для примера 1 succ(red) есть yellow.

Функция pred(x)

По элементу x определяется последовательность, которой принадлежит x, и выдается предыдущий элемент этой последовательности.

Пример 3. pred(F) есть E; pred(Z) есть Y и т.д.

Функция ord(x)

Выдается номер элемента x в последовательности.

Пример 4. ord(red) равен 0, а ord(green) равен 2.

Категория: Мои статьи | Добавил: aslan09 (02.11.2014)
Просмотров: 316 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
  Aslan Hubiev   Главная   Регистрация   Вход  
Вход на сайт

Поиск


© 2024