Перечислимые и ограниченные типы. Константы ::= const ; { ;} ::= = ::= ::= + - ::= program square(input, output); const N=20; pi=3.1415826; var R, fi,

Презентация:



Advertisements
Похожие презентации
Операторы языка Паскаль Условные операторы. Оператор условия ЕСЛИ (if) Оператор условия ВЫБОР (case) Условные операторы предназначены для выбора к исполнению.
Advertisements

Операторы в языке Паскаль О ператор присваивания О ператор вызова процедуры О ператор безусловного перехода П устой оператор Простые Структурные (вкл.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
Тема: «Понятие переменной в Turbo Pascal». Понятие переменной Если "заглянуть" в компьютер, то переменную можно определить так: Переменная - это имя физического.
Составить программу, которая запрашивает номер месяца и выводит соответствующее название времени года. В случае, если введено недопустимое число, программа.
Презентация на тему: «Программирование Разветвляющихся структур». Составила: учитель информатики Чура Н.А. 1.
1 Программирование на языке Паскаль Тема 6. Оператор выбора.
Оператор CASE. Pascal. Структура оператора CASE: Оператор CASE позволяет реализовать множественный выбор и в общем виде записывается так: case выражение.
ТЕМА : « О ПЕРАТОР ВЫБОРА C ASE ». C ASE … OF Оператор выбора Case …of является обобщением оператора if. Позволяет выбрать одно из нескольких возможных.
Структура программы на языке Pascal. Программа на языке «Паскаль» Программа состоит из заголовка и блока В заголовок входят: служебное слово program и.
Раздел описания переменных начинается со слова VAR (variables-переменные), за которым идет список имен переменных через запятую. Тип указывается после.
Язык программирования Паскаль (Pascal). Структура программы на Паскале Заголовок программы Соглашения Описание меток Описание констант Описание переменных.
При решении многих задач приходится обрабатывать большое количество однотипных данных. Для хранения этих данных пришлось бы вводить большое количество.
ЛИНЕЙНЫЕ АЛГОРИТМЫ. Алгоритмические действия над исходными данными и рабочими объектами языка, необходимые для решения поставленной задачи описываются.
Тема урока Переменная. Тип данных. Ввод и вывод данных.
Pascal 1 Основы языка Паскаль Информатика и ИКТ Смирнов М.В. МКО ООШ п. Климковка Белохолуницкого района Кировской области.
ОПЕРАТОР ВЫБОРА. Часто возникают ситуации, когда приходится осуществлять выбор одного из нескольких альтернативных путей выполнения программы. Несмотря.
Серкова Екатерина Геннадьевна Открытый урок «Условный оператор»
19. Тип-диапазон Тип-диапазон используется для ограничения набора допустимых значений другого базового порядкового типа. Переменная типа-диапазона имеет.
Транксрипт:

Перечислимые и ограниченные типы. Константы ::= const ; { ;} ::= = ::= ::= + - ::= program square(input, output); const N=20; pi= ; 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.

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

Описание перечислимого типа type = ; где ::= ( {, }) Описание переменных перечислимого типа Пример: Первый вариант описания переменных type пол=(муж, жен); var некто,кто-то: пол; Второй вариант описания переменных var некто, кто-то: (муж,жен);

Переменные нестандартного типа можно описывать двояко: 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(дек) – ошибка

3. Функция pred(x). Значением этой функции является константа, предшествующая х в описании его типа. Примеры: pred(май)=апр, pred(трефы)=пики Если x – первое имя в перечне типа, то pred(x) - не определено: pred(янв) – ошибка. 4. Операции сравнения. К константам одного и того же перечислимого типа можно применять операции сравнения:, >, =, <>. 5. Присваивание. Присваивание новых значений переменным перечислимого типа осуществляется с помощью обычного оператора присваивания v:=е, где v – переменная перечислимого типа, а значение выражения е должно быть того же типа.

Оператор варианта Синтаксис: ::= 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

::= {, } : ::= | ;

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

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

Пример. Пусть значением символьной переменной 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

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

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