Читайте также:
|
|
Напомню, что порядковыми типамиданных в Паскале называются следующие типы: целочисленные типы, Boolean, Char, перечислимый тип и диапазон.
Как видите, сюда не входят вещественные типы и String.
Порядковый тип - это такой тип, все значения которого можно перечислить, посчитать с начала до конца. Например, в тип Byte входит всего 256 различных значений, а именно все целые числа от 0 до 255. В тип Integer входит 65536 значений - целые числа от -32768 до 32767. Тип Char тоже порядковый, так как количество различных символов в Паскале ограничено числом 256.
Любой порядковый тип имеет внутреннюю нумерацию. Пусть мы задали тип TYPE weekday = (mon,tu,we,th,fr). Внутри компьютера mon будет иметь номер 0, tu - номер 1, we - 2, th - 3, fr - 4. Пусть мы задали переменную VAR a: array[mon..fr] of Real. Теперь для компьютера запись a[we] означает то же, что и запись a[2], если заранее была бы задана переменная VAR a: array[0..4] of Real.
Тип Char имеет нумерацию от 0 до 255. Внутренний номер символа есть его код по таблице кодировки ASCII. Например, буква Б имеет номер (код) 129.
У целочисленных типов (Byte, ShortInt, Word, Integer, LongInt) внутренний номер совпадает с самим числом. Так, число -58 в типе ShortInt имеет номер -58.
Внутренний номер элемента диапазона равен внутреннему номеру элемента типа, для которого создан диапазон. Пусть мы для типа weekday создали диапазон TYPE days = we.. fr. Здесь we будет иметь номер 2, а не 0.
Операции над порядковыми типами:
1. ORD. Эта функция выдает (или, как еще говорят - возвращает) внутренний номер значения любого порядкового типа. Например:
Ord('Б') возвращает 129
Ord (we) возвращает 2
Ord(-58) возвращает -58
2. В любом порядковом типе выполняются операции сравнения > < >= <= = <>. Например, справедливы неравенства 'ю' < 'я', we > tu. Это возможно потому, что операции сравнения выполняются фактически не над самими значениями, а над их внутренними номерами.
3. SUCC - сокращение от successor (следующий по порядку). Эта функция возвращает следующий по порядку элемент любого порядкового типа. Например:
Succ (8) возвращает 9
Succ('Ю') возвращает 'Я'
Succ (we) возвращает th
4. PRED - сокращение от predecessor - это successor "наоборот". PRED возвращает предыдущий элемент любого порядкового типа. Например:
Pred (25) возвращает 24
Pred('д') возвращает 'г'
Pred (tu) возвращает mo
Эти функции, как и любые другие, можно применять в выражениях. Например, оператор y:=10+Ord(we)+Succ(8) присвоит переменной y значение 21.
В операторе for переменная цикла может быть любого порядкового типа, например:
for ch:= 'd' to 'h' do...
Задание 109: Подсчитать, сколько заглавных букв в диапазоне от Б до Ф.
Задание 110: Правда ли, что сентябрь наступает позже июля?
Задание 111: В кондитерском магазине стоит очередь за Сникерсами. В очереди - Nina, Olga, Alex, Marianna, Ester, Misha, Tolik, Lena, Oleg, Anton, Pankrat, Robocop, Dima, Donatello, Zina, Sveta, Artur, Ramona, Vera, Igor, Ira. Известно, сколько у каждого денег. Спрашивается:
1) Хватит ли у них всех вместе денег на Сникерс (3 рубля)?
2) Какой по порядку в очереди стоит Лена?
3) Правда ли, что у Панкрата денег больше, чем у Миши?
Указание: для хранения денег организовать массив.
Дата добавления: 2015-11-14; просмотров: 40 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Какие бывают массивы | | | Символьный тип Char. Работа с символами |