Описание и использование меток

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

Label

<список идентификаторов - имен меток, через запятую>;

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

Переход к метке осуществляется с помощью оператора перехода к метке:

Goto <Идентификатор — имя метки>;

Пример:

program p4;

label M1, M2, M3, M4;

begin

goto M1;

M3: Writeln('метка 3'); goto M4;

M2: Writeln('метка 2'); goto M3;

M1: Writeln('метка 1'); goto M2;

M4: end.

Программа выводит на экран сообщения по порядку: ‘метка 1’ , 'метка 2’ , 'метка 3’, но операторы вывода в программе расположены в обратном порядке. Такой эффект достигается использованием меток и операторов перехода на метку goto.

Комментарии

Для пояснения хода вычислительного процесса, смыслового назначения переменных и формирования документации к программе используются комментарии.

Комментарии могут располагаться в любом месте программы и представляют собой текст, заключенный в фигурные скобки.

Комментарии игнорируются компилятором и предназначены, в первую очередь, для программиста. В качестве примера приведём текст программы из предыдущего пункта и сопроводим его комментариями.

Пример:

program p5;

{ Раздел описания меток }

label M1, M2, M3, M4;

{ Начало исполнительной части программы}

Begin

goto M1; {Оператор перехода на метку M1}

M3:Writeln('метка 3');{Вывод на экран сообщения}

goto M4; {Оператор перехода на метку M4 }

M2: Writeln('метка M2');{Вывод на экран

сообщения}

goto M3; { Оператор перехода на метку M3}

M1: Writeln{'метка M1');{Вывод на экран

сообщения}

goto M2; { Оператор перехода на метку M2}

M4: end. {Метка М4 расположена

в конце программы}

Описание переменных

Любая переменная в программе должна быть описана и иметь имя (идентификатор), тип и значение. Тип и идентификатор присваиваются переменной в разделе описания переменных.

Раздел описания переменных может повторяться в программе несколько раз. Он начинается ключевым словом Var, a заканчивается с началом любого другого описательного раздела, заголовком процедуры, функции или началом тела программы.

При компиляции под каждую переменную выделяется участок памяти, размер которого зависит от типа переменной.

Итак, структура описания переменных такова:

var

<список идентификаторов 1> : <тип переменных>;

<список идентификаторов 2> : <тип переменных>;

………………………………………………………….

<список идентификаторов n> : <тип переменных>;

Пример:

var

А, В, С, D : Real;

I, J, К, L, M: Integer;

U: Char;

Z: Boolean;

S: String;

В этом примере A, B, C, D – идентификаторы (имена) переменных. Ключевое слово Real в этой строке обозначает вещественный тип переменных из этого списка. Во второй строке приведён список идентификаторов переменных целого типа. В третьей строке описана одна переменная символьного типа, а в четвёртой – одна переменная логического типа, в пятой – одна переменная типа строки из символов.

Классификация типов данных

При объявлении переменной необходимо указать ее тип. Тип переменной описывает набор значений, которые она может принимать, действия, которые могут быть над ней выполнены, а также указывает на объём оперативной памяти, занимаемой переменной данного типа. Объявление типа указывается ключевым словом, которое собственно и обозначает тип.

Имеется шесть основных классов типов:

· простые типы;

· строковые типы;

· структурные типы;

· тип указатель;

· процедурные типы;

· объектные типы.

Простые (скалярные) типы разделяются на два блока:

· порядковые;

· вещественные.

Целочисленные типы

Первые пять порядковых типов относятся к категории целочисленных типов. В графе “Тип” в нижележащей таблицы приведены ключевые слова - обозначения целых типов. Каждый из них определяет некоторое подмножество целых чисел.

Тип Диапазон Размер в памяти
Shortint -128.. 127 1 байт
Integer -32768. .32767 2 байта
Longint -2147483648..2147483647 4 байта
Byte 0..255 1байт
Word 0..65535 2 байта

Приведём пример описания переменных целого типа:

var

I, J, : Integer;

К, L, M: Byte;

Z: Word; C : Shortint;

A: Longint;

Логический тип

Значениями логического типа являются встроенные идентификаторы False и True. Этот тип переменных задаётся ключевым словом Boolean. Поскольку логический тип является перечислимым, между этими значениями имеют место следующие отношения: False < True .

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

var

I, J, : Boolean;

Символьный тип

Множеством значений этого типа являются символы, упорядоченные в соответствии с расширенным набором символов кода ASCII. Тип этих переменных задаётся ключевым словом Char.

Переменная типа Char хранит значение одного символа. В операторе присваивания задать значение символьной переменной можно тремя способами. Первый состоит в использовании символьной константы – символ между двумя одинарными кавычками. Например:

………………

Var Сh: Char;

Begin

Ch := 'F';

………………

Второй и третий способы используются, когда вы знаете числовой код символа. В этом случае с помощью функции Chr можно преобразовать числовой код в символ. Противоположной по отношению к функции Chr является функция Ord, которая возвращает код символа, являющегося её аргументом.

Согласно третьему способу, знак # и последующая за ним целая беззнаковая константа обозначают символ. Например:

Var Сh: Char;

Begin

Ch := chr(7);

Ch := #7;

………………

В этом фрагменте оба оператора присваивают символьной переменной Сh одно и то же символьное значение – звуковой сигнал (это управляющий символ).

В работе могут понадобиться значения кодов некоторых символов, которые приведены ниже.

Таблица. Символы ASCII c кодами от 0 до 127

Код Вид Код Вид Код Вид Код Вид
NUL SP @ `
SOH ! A a
STX В b
ЕТX # С с
EOT $ D d
ENQ % E e
АСK & F f
BEL G g
BS ( H h
НТ ) I i
LF * J j
VT + К k
FF , L
CR - M m
SO . N n
SI / O o
DLE P p
DC1 Q q
DC2 R г
DC3 S s
DC4 T t
NAK U u
SYN V v
ETB W w
CAN X X
EM Y У
SUВ : Z z
ESС ; [ {
FS < \ |
GS = ] }
RS > ^ ~
US ? _ DEL

Таблица кодов символов содержит некоторое число управляющих символов, которые не имеют изображения. В этой таблице они обозначены совокупностью двух или трёх символов.

В нижележащей таблице приведены коды некоторых управляющих символов и описание действий, которые будут выполняться при выводе этих символов на любое устройство.

Код Мнемоническое обозначение Действие
BEL Звуковой сигнал динамика
LF Перевод строки (переход на следующую строку в этой же позиции)
FF Прогон страницы
CR Возврат каретки (переход в начало строки)
SUB Конец файла
ESC Символ Escape

Заметим, что для перехода к началу следующей строки в программе можно использовать две конструкции. Первая:

………

Writeln;

……….

Вторая конструкция:

………………

Write(#10,#13);

………………

Ниже приведён текст программы, которая по нажатой клавиши выдаёт её код согласно кодировке ASCII.

program kod_sym;

uses CRT; {Подключение основной библиотеки}

Var ch : char;

Begin

Наши рекомендации