Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Раздел описания переменных (var)



Каждая встречающаяся в программе переменная должна быть описана. Описание обязательно должно предшествовать использованию переменной. Раздел описания переменных начинается зарезервированным словом var (variable - переменная), затем через запятую перечисляются имена переменных и после двоеточия следуют их тип и точка с запятой.

Формат:

var < идентификатор> : < тип>;

В рассматриваемом примере программы три переменные A, B и Sum, которые могут принимать целочисленные значения, описаны следующим образом:

var A, B, Sum: integer;

Переменные вводятся в программу для хранения и передачи данных внутри нее. Все переменные, которые предполагается использовать в программе должны, прежде всего, быть определены в разделе описания переменных. Описание переменных начинается со служебного слова VAR, вслед за которым располагается последовательность самих определений переменных. Определение переменной заключается в указании ее имени (идентификатора) и типа. Имя и тип разделяются двоеточием. После объявления и описания переменной должен стоять символ "; ". Концом блока описания будет начало какого-либо другого блока программы или описание процедур и функций.

Синтаксис описания переменных:

VAR
ИмяПеременной1: ИмяТипа1;
ИмяПеременной2: ИмяТипа2;
...
ИмяПеременнойN: КонструкцияТипа;

или

VAR
ИмяПеременной1,
ИмяПеременной2,
ИмяПеременной3: ИмяТипа;

Имя типа может быть именем стандартного типа языка или введенного программистом в предшествующем блоке описания типов TYPE.

Однотипные переменные могут перечисляться через запятую перед объявлением их типа.

Вопрос 30.



Если в программе некоторые константы используются многократно, то
удобно присвоить им имя.
Например,
e: = 2.71;
Такое присвоение удобно сделать один раз и далее в программе
обращаться к константе уже по имени.
Присвоение константе имени выполняется в разделе описания констант.
Раздел начинается служебным словом Const и имеет формат, который
иллюстрирует рисунок 6.6.

Рисунок 6.6 – Синтаксическая диаграмма раздела констант
Таким образом, в разделе констант могут быть объявлены обычные (нетипизованные) константы и типизованные константы.
Формат описания нетипизованной константы представляет рисунок 6.7.
Описание константы вводит идентификатор (< Ид.> на синтаксической диаграмме), под которым подразумевается некоторое константное выражение.
Тип константы определяется типом данного выражения.
Константное выражение – это выражение, вычисляемое на этапе компиляции. Константное выражение не может содержать имен переменных и типизированных констант, оператора получения адреса @ или включать 135 обращение к определенным пользователем функциям. В константных
выражениях допустимо обращение к следующим стандартным функциям: Abs,
Chr, Hi, Lo, Length, Odd, Ord, Pred, Ptr, Round, Sizeof, Succ, Swap, Trunc.

Рисунок 6.7 – Синтаксическая диаграмма описания нетипизованной константы
В константных выражениях могут быть использованы только имена констант.
Если некоторая константа используется в программе один раз, то ей можно не присваивать имя в разделе констант. В этом случае значение константы будет записываться непосредственно в выражениях раздела операторов. Таким образом, раздел констант может быть пустым (отсутствовать).

-----------------------------------------------------------------------------------------
Пример 6.2.
Объявление нетипизованных констант.
Const
E = 2.7115;
I = 10000;
Eps1 = 0.0001;
Eps2 = Eps1 / 100.0;
Pi1 = -2 * Pi;


Типизованные константы аналогичны инициализированным
переменным.
Инициализированные переменные – это переменные, которым при входе
в блок присваиваются начальные значения.
Различают скалярные и структурные типизованные константы.
Синтаксис объявления типизованных констант представляет рисунок 6.8.
На данном рисунке < Ид.> - идентификатор типизованной константы.
< Константа> представляет собой скалярную типизованную константу.
Остальные виды констант – это структурные типизованные константы. 136
Структурные типизованные константы будут детально представлены в
подразделах, описывающих соответствующие типы данных.

Рисунок 6.8 – Синтаксическая диаграмма
описания типизованных констант
Типизованные константы можно использовать аналогично переменным
того же типа. Их значения можно изменять в процессе вычислений. Они могут
использоваться в левой части оператора присваивания.
Типизованные константы инициализируются только один раз – в начале
выполнения программы или подпрограммы. При каждом новом входе в
подпрограмму типизованные константы заново не инициализируются.
Типизованные константы из всех подпрограмм располагаются в сегменте
данных. Поэтому их общий объем ограничен 64К байтами.

Вопрос 31.



Оператор перехода Goto

Его еще называют оператором безусловного перехода.

 

Данный оператор служит для безусловной передачи управления помеченному оператору.

Оператор Goto указывает, какой оператор должен выполняться следующим. В языке имеется ряд ограничений на использование операторов Goto:

1) с помощью Goto нельзя переходить внутрь производных операторов, не содержащих данный оператор Goto (составного оператора, операторов For, Repeat, While, If, Case, With);

2) с помощью оператора Goto запрещен переход из одной альтернативы в другую в выбирающих операторах (If, Case);

3) с помощью оператора Goto нельзя входить в подпрограмму или выходить из нее.

!!!!!!! Наличие оператора Goto делает программу ненаглядной, трудночитаемой, трудноотлаживаемой. Программа с Goto не является структурированной. Желательно использовать операторы Goto минимально, а лучше вообще не использовать.

Вопрос 32.



Оператор If является производным оператором. Относится к группе выбирающих операторов. Используется в разветвляющихся программах для выбора того или иного участка вычислений в зависимости от выполнения некоторого условия. Поэтому его еще называют оператором условного перехода.

Формат оператора If представляет рисунок 7.3.

Здесь в переводе с английского: If – если, Then – то, Else – иначе. Смысл оператора: если логическое выражение истинно (принимает значение True), то выполняется < Оператор_1>. В противном случае выполняется < Оператор_2>.

После выполнения любого из < Операторов_1 или_2> следующим выполняется оператор, записанный за оператором If.

В операторе If после слов Then и Else можно записать только один оператор. Если необходимо записать группу операторов, используют операторные скобки Begin End, т.е. составной оператор.

 

Конструкция Else < Оператор_2> в операторе If необязательна (см. рисунок 7.3). Это соответствует алгоритму: если выражение истинно, выполняется< Оператор_1>, в противном случае следующий оператор.

Конструкция оператора If без Else называется сокращенной формой оператора If, конструкция с Else – полной формой.

Возможно использование вложенного оператора If, т.е. оператор, записанный после Then или Else, также может быть условным.

 

Примеры:

Пример составного оператора:

Вопрос 33.


Оператор CASE- производный оператор, относящийся к группе выбирающих операторов

Пример:

case Symbol of

'A'..'Z', 'a'..'z':

writeln('Letter');

'0'..'9':

writeln('Digit');

Else

writeln('Other character');

end;

 

Порядок и правила выполнения программ с оператором CASE:

1)Сначала вычисляется значение селектора(константы выбора имеют тот же тип, что и селектор)

2)Выполняется только одна ветвь: та, которая соответствует значению селектора(выражения)

-Выражение(селектор) должно быть перенумерованного типа

3)Если подходящей ветви нет-выполняется ветвь ELSE

-Если нет и её-не выполняется ни одна из ветвей

Пример:

Type

TColour=(clRed, clGreen, clBlue);

Var

Colour: TColour;

...

case Colour of

clRed:

writeln('Red Colour');

clGreen:

writeln('Green Colour');

clBlue:

writeln('Blue Colour');

Else

writeln('Unknown Colour');

end;

Использование оператора CASE в виде функционального блока:

*в прямоугольник, образованный штриховыми линиями, заключен ФУНКЦИОНАЛЬНЫЙ БЛОК


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 4204; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.021 с.)
Главная | Случайная страница | Обратная связь