Перечислимые и ограниченные типы. презентация

Описание типов ::= type ; {;} ::= = ::= ::= │ ::= │ │ Перечислимые типы Пример: type месяц=(янв,фев,мар,апр,май,июн,июл,

Слайд 1Перечислимые и ограниченные типы.
Константы
::=
const ;

{<описание константы>;}
<описание константы> ::= <имя константы> = <константа>
<константа> ::= <целое> │ <вещественное> │ <символ> │ <строка> │<знак> <имя константы>
<знак> ::= <пусто> │ + │ -
<имя константы> ::= <имя>

program square(input, output);
const N=20; pi=3.1415826;
var R, fi, S: real;
begin
write(‘радиус=‘); read(R);
fi:=2*pi/N; {угол}
S:=N*(0.5*sqr(R)*sin(fi));
writeln(‘площадь=’, S:15:4)
end.


Слайд 2Описание типов
::= type ; {;}
::=

<имя типа> = <тип>
<имя типа> ::= <имя>
<тип> ::= <имя типа> │ <конструктор типа>
<конструктор типа> ::= <простой тип> │
<составной тип> │<ссылочный тип>

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

Пример:
type месяц=(янв,фев,мар,апр,май,июн,июл,
авг,сен,окт,ноя,дек);
масть=(пики,трефы,бубны,червы);


Слайд 3Описание перечислимого типа
type = ;
где
::=

(<имя> {,<имя>})

Описание переменных перечислимого типа

Пример:
Первый вариант описания переменных
type пол=(муж, жен);
var некто,ктото: пол;

Второй вариант описания переменных
var некто, ктото: (муж,жен);


Слайд 4Переменные нестандартного типа можно описывать двояко:
1) type T=;
var x,y:

T;
2) var x,y: <тип>;

Операции над объектами перечислимого типа

1. Функция ord(x). Значением этой функции является порядковый номер константы х в перечне всех констант, указанном при описании его типа. Причем нумерация начинается с 0.
Примеры:
ord(янв)=0, ord(фев)=1, ord(трефы)=2, ord(false)=0

2. Функция succ(x). Значением этой функции является константа, следующая за х в описании его типа.
Примеры:
succ(янв)=фев, succ(трефы)=бубны
Если х - последняя константа в перечне его типа, то к ней функция succ неприменима: succ(дек) – ошибка


Слайд 53. Функция pred(x). Значением этой функции является константа, предшествующая х в

описании его типа.
Примеры:
pred(май)=апр, pred(трефы)=пики
Если x – первое имя в перечне типа, то pred(x) - не определено: pred(янв) – ошибка.

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

5. Присваивание.
Присваивание новых значений переменным перечислимого типа осуществляется с помощью обычного оператора присваивания v:=е, где v – переменная перечислимого типа, а значение выражения е должно быть того же типа.


Слайд 6Оператор варианта
Синтаксис:
::= case of < вариант >{;< вариант >}end

|
case <селектор> of <вариант> {;< вариант >} <завер> else <оператор> ; end

if m=янв then k:=31 else
if m=фев then k:=28 else
...
if m=дек then k:=31;

case m of
янв: k:=31;
фев: k:=28;
мар: k:=31;
...
дек: k:=31
end

case m of
янв,мар,май,июл,авг,окт,дек: k:=31;
апр,июн,сен,ноя: k:=30;
фев: k:=28
end


Слайд 7 ::= {,< константа >} :

::= |

;

Слайд 8Замечания:
1. Выражение между case и of называется селектором и может быть

любого простого типа, кроме real. (Дело в том, что для real нельзя перечислить все возможные значения.)
2. Варианты отделяются друг от друга точкой с запятой. За последним вариантом точка с запятой, вообще говоря, не нужна, но ее можно и указать.
3. Оператор варианта обязательно завершается словом end.
4. Константы, перечисленные в вариантах, должны быть того же типа, что и селектор, и должны различаться. Это очевидные требования, т.к. иных значений селектор не может принимать, а если какое-то значение выписать дважды, то будет двусмысленность - будет неясно, какой вариант выбирать при этом значении.
Запомните: константы - это явно заданные значения какого-то типа (числа, символы и т.п.) или имена констант. Указывать в вариантах переменные и более сложные выражения нельзя.
5. В варианте указывается только один оператор. Если их надо несколько, следует объединить их в составной оператор.
6. Порядок вариантов и констант в них в операторе варианта произволен
7. Второй вид оператора case используется только в языке Турбо Паскаль!!!

Слайд 9Семантика: вычисляется выражение-селектор и отыскивается вариант, одна из констант которого совпадает

со значением селектора. Если такой вариант нашелся, то выполняется оператор этого варианта и на этом завершается выполнение всего оператора варианта. Если же ни в одном из вариантов нет нужной константы, то выполняется оператор следующий после служебного слова else. Если служебное слово else отсутствует, то выполняется следующий оператор за case.
Отметим, что это семантика оператора case для языка Турбо Паскаль.
В стандартном Паскале используется только первый вариант оператора case, а в случае отсутствия нужной константы фиксируется ошибка !!!

Слайд 10Пример. Пусть значением символьной переменной c является один из знаков '+',

'-', '*' или '/' и надо вычислить z=x#y, где x, y и z – вещественные переменные, а # - операция, соответствующая этому знаку. Если значение с не совпадает ни с одним из этих символов выдать сообщение об ошибке.
С помощью оператора варианта эта задача решается так:
case c of
'+': z:=x+y;
'-': z:=x-y;
'*': z:=x*y;
'/': z:=x/y;
else writeln (’Ошибка в операции’);
end

Слайд 11Ограниченные типы
type день=1..31;
var d: день;
Описание ограниченного типа
type =

<ограниченный тип>;
где
<ограниченный тип>::= <константа>..<константа>

Примеры:
type цифра = '0'..'9';
натур = 1..maxint;
лето = июнь..август;
ложь = false..false;


Слайд 12Описание переменных ограниченного типа
var :;
или
var :;
Примеры:
var digit:

цифра; k,m: натур; m:лето;
малое:-9..9; буква:'A'..'Z';
 

Операции для ограниченных типов
К объектам ограниченного типа применимы любые операции базового типа.
Единственное отличие - в присваивании: присваивать переменным ограниченного типа можно только те объекты базового типа, которые принадлежат диапазону, указанному в описании ограниченного типа. Причем за этим следит сам компьютер: прежде чем присвоить значение такой переменной, он проверяет, попадает ли это значение в диапазон или нет; если нет - фиксируется ошибка.


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика