Описание меток
Все метки, которые используются в программе, должны быть описаны в этом разделе. Раздел начинается со служебного слова Label, за которым следуют через запятую все используемые метки:
Label <метка1>[,<метка2>...];
Хотя метки и могут стоять перед любым оператором, причем даже несколько сразу, но используются они в единственном операторе безусловного перехода GoTo, который не рекомендуется к использованию, поэтому на практике данный раздел встречается редко. Например:
Label M1,Metka,L38;
Определение констант
Все значения, которые используются в программах на любых языках программирования, делятся на 2 больших класса: константы и переменные. При трансляции программы константы располагаются непосредственно в области кода программы, переменные же хранятся отдельно в сегменте данных. Так как при выполнении программы она не должна модифицировать сама себя (свойство реентерабельности), то константы изменять нельзя. Переменные же могут изменяться в процессе выполнения программы сколько угодно раз. Так, при трансляции оператора и дальнейшем его выполнении
А:=В+С
используются 3 ячейки памяти, а оператора
А:=8+9
только одна. Переменные обозначаются именами, а константы числами, строками и т.д.
Паскаль допускает введение в программу объектов, внешне похожих на переменные, но которые на самом деле являются константами, то есть не подлежат изменению при выполнении программы. Константе можно присваивать свое имя, которое просто является синонимом фиксированного числа. Использование в программе имен констант вместо записи конкретных значений является правилом хорошего стиля программирования, так как делает программу более наглядной и способствует лучшему ее пониманию без снижения эффективности. Кроме того, если конкретные значения обозначены именами, например, границы массивов, показатели точности вычислений, то при необходимости их легко изменить, не выискивая по всему тексту программы.
Описание констант начинается со служебного слова Const, за которым идет последовательность описаний констант:
Const <имя>=<значение>;
[<имя>=<значение>;...]
Здесь тип значения не указывается, так как считается, что значение является единственно возможным с однозначно определяемым типом по значению константы. В Турбо-Паскале допускается использовать в качестве значения константное выражение, строящееся по тем же правилам, что и обычное. Его операндами могут быть константы, ранее описанные имена констант и некоторые стандартные функции. Например:
Const
Max = 100; {константа целого типа}
Min = 0;
Center =(Max-Min) div 2; {выражение и результат тоже целого типа}
m_e = 9.10955854e-31; {масса покоя электрона – число вещественное}
LiteraA ='A'; {символьная константа}
В Турбо-Паскале существует понятие типизированных констант. Но на самом деле они являются переменными, которым в разделе описаний присваиваются начальные значения. Типизированные константы, как и обычные переменные, можно изменять в процессе вычислений, то есть они – переменные, но с начальными значениями. То есть их можно было бы описать в разделе описания переменных, а затем первыми операторами присвоить им начальное значение. Но в некоторых случаях, например при задании начальных значений массивам, их использование удобно. Для типизированных констант уже необходимо задавать конкретный тип, например:
Const max:integer = 9999;
MyArray: array[1..3] of string = ('Red','Blue','Green');
При составлении программ могут использоваться данные самых разнообразных типов, включая и достаточно сложные. От типа переменной зависит выделяемая для нее память и интерпретация данных в выделенной памяти.
В простейшем случае указывается стандартный тип при описании переменной, например, как в примере вычисления суммы. Однако в Паскале допускается определение своего типа отдельно, например определение комплексного типа:
Type Complex = Record
Re,Im:real;
end;
Начинается этот раздел с служебного слова Type и широко используется при работе с динамическими переменными и при объектном программировании.
Описание переменных
Перед началом выполнения программы под все переменные (за исключением динамических) должно быть выделено место в памяти ЭВМ. То есть все переменные, используемые в программе, должны быть описаны и транслятор «должен знать» о них. В некоторых языках программирования используются правила умолчания, так в Фортране тип и размер переменной определяется по первой букве имени, и часто этот раздел отсутствует: при встрече новой переменной по тексту программы для нее автоматически определяется размер и выделяется место (она заносится в таблицу). Но язык Паскаль разрабатывался как «надежный» язык программирования, с максимально возможным поиском формальных ошибок. Поэтому в нем все переменные, участвующие в программе, должны быть описаны в данном разделе.
Общий вид описания переменных выглядит следующим образом:
Var <имя1>[,<имя2>...] :<тип>; ...
Например:
Var x:real;
i,j,k:integer;
Так как по свойству массовости алгоритма переменные присутствуют в каждой программе, то в реальных программах всегда в наличии и этот раздел.
Раздел описания процедур и функций будет рассмотрен далее.
Контрольные вопросы -
Какие группы символов входят в алфавит языка Паскаль?
-
Что такое служебные слова?
-
Приведите примеры метасимволов для описания общих конструкций языка программирования.
-
Из каких элементов состоит программа на языке Паскаль?
-
Что такое в структуре программы блок?
-
Какие бывают разделы описаний?
-
Как отделяются операторы друг от друга?
-
Как записываются комментарии?
-
Для чего используются идентификаторы (имена)?
-
Какие есть правила образования идентификаторов (имен)?
-
Что такое метка и для чего они используются?
-
Каким образом рекомендуется располагать конструкции программы для ее большей наглядности?
-
Каким образом описываются метки?
-
Какие различия между константами и переменными?
-
Как описываются константы?
-
Как определяется тип описываемых констант?
-
Что такое типизированные константы?
-
Как описываются типы?
-
Как описываются переменные?
-
Какой раздел описаний чаще всего присутствует в простых программах?
Достарыңызбен бөлісу: |