КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Действия над порядковыми типамиНапомню, что порядковыми типамиданных в Паскале называются следующие типы: целочисленные типы, 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) Правда ли, что у Панкрата денег больше, чем у Миши? Указание: для хранения денег организовать массив.
|