Действия над порядковыми типами

  • docx
  • 06.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

0.1. Действия над порядковыми типами
Иконка файла материала 77.docx

0.1. Действия над порядковыми типами

Напомню, что порядковыми типами данных в Паскале называются следующие типы:  целочисленные типы, 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)  Правда ли, что у Панкрата денег больше, чем у Миши?

Указание: для хранения денег организовать массив.


 

Скачано с www.znanio.ru