На основе четырех рассмотренных порядковых типов можно определить новые, порядковые типы: например, можно сузить диапазон значений любого из 4-х порядковых типов. Такие типы называют ограниченными (или интервальными) типами.Другое их название - диапазоны. Такие типы задаются границами своих значений внутри базового типа:
<минимальное значение> .. <максимальное значение>
Примеры определения типов - диапазонов:
Typedate=1..31; TypeMonth=1..12; TypeSim='A'..'Z'
Можно сразу определить переменную типа - диапазон:
Day:1..31; Month:1..12; Sim:'A'..'Z' и т.п.
Необходимо помнить, что левая граница диапазона не должна превышать правой.
К значениям этого типа могут быть применены стандартные функции:
HIGH(X) - возвращает максимальное значение типа - диапазона, к которому принадлежит переменная Х;
LOW(X) - возвращает минимальное значение типа - диапазона, к которому принадлежит переменная Х.
Контрольные вопросы:
1. На какие два больших класса можно разделить все данные в Паскаль-программе?
2. Чем отличаются переменные от констант?
3. Как представляются константы в программе?
4. Как представляются переменные в программе?
5. Может ли константа иметь имя?
а) если может, то как оно задается и для каких целей?
б) если не может, то почему?
6. Что такое тип данных?
7. Какие типы данных имеются в Паскале?
8. Что такое тип integer?
9. Как записываются константы целого типа?
10. Как записываются переменные целого типа?
11. Перечислите функции, которые разрешены для целого аргумента.
12. Перечислите функции, которые возвращают целый результат.
13. Перечислите функции, разрешенные для данных вещественного типа.
14. Может ли число, правильно записанное на Паскале, оканчиваться точкой?
15. Может ли число, правильно записанное на Паскале, начинаться с точки?
16. Найдите и объясните ошибки в следующих описаниях констант:
CoNsT dwa = 2;
zwei = dwa + two;
two = 4;
funf = tri * two;
tri = dwa + dwa + 1;
two = funf div dwa; .
17. Найдите и объясните ошибки в описаниях переменных целого типа.
var a,b,c : integer;
s{путь} v{скорость} t{время} : integer;
b,c,d, : integer;
const : integer;
dwa+tri : integer;
x,,y ; integer;
p,r,s,t,u : integer
w : integer;
q{описание переменной}integer; .
18. Вычислите и проверьте делением уголком:
20 div 6 , 20 mod 6 ,
20 div 4 , 20 mod 4 ,
2 div 5 , 2 mod 5 ,
123 div 0 , 3.0 mod 0 ,
-8 div (-3) , -8 mod (-3) ,
-8 div 3 , -8 mod 3 ,
8 div (-3) , 8 mod (-3) ,
8 div 3 , 8 mod 3 .
19. Операция «число div 10» позволяет отбросить последнюю цифру числа. Операция «число mod 10» позволяет достать из числа последнюю цифру. Например, 123 div 10 = 12, 123 mod 10 = 3. Запишите, как определить вторую цифру (цифру десятков) целого числа?
Литература:
4. О.Л. Голицына, И.И. Попов , Основы алгоритмизации и программирования 85-93;