- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка pascal
- •Оглавление
- •Введение
- •Глава 1 основные понятия .
- •Алфавит языка.
- •Основные определения языка.
- •Составные части программы.
- •Вопросы для самоконтроля
- •Глава 2 стандартные типы данных
- •Данные целого типа.
- •Вычисление об"ема шара
- •Данные действительного типа.
- •Данные логического типа.
- •Данные символьного типа.
- •`Теплоход``маяк``` или `д``артаньян`
- •Описание констант и переменных.
- •Var_имя переменной: тип;
- •Вопросы для самоконтроля
- •Глава 3 выражения.
- •3.1. Стандартные функции.
- •3.2. Арифметические выражения.
- •3.3. Логические выражения.
- •Вопросы для camokohtpoля
- •Глава 4 основы программирования простых задач.
- •4.1. Оператор присваивания.
- •4.2. Понятие о составном и пустом операторах. Назначение символа точки с запятой.
- •Простейший ввод данных.
- •5 Позиций
- •8 Позиций
- •Примеры программирования простых задач.
- •Вопросы для самоконтроля
- •5.1. Условный оператор.
- •Оператор выбора.
- •Оператор перехода.
- •Go to метка
- •Lавеl метка;
- •Label метка 1, метка 2,…, метка n;
- •5.4.Примеры программирования вычислительных процессов с разветвлениями.
- •Глава 6 организация циклических прцессов.
- •Оператор цикла с предварительным условием.
- •Оператор цикла с последующим условием.
- •Операторы циклической части программы
- •Оператор цикла с параметром.
- •Вложенные циклы.
- •Глава 7 основы ввода и вывода.
- •7.1. Оператор ввода.
- •7.2. Оператор вывода
- •Программирование циклических вычислительных процессов.
- •Вопросы для самоконтроля
- •Глава 8 Переменные типы.
- •Перечислимый тип данных.
- •Var а: (зима, весна, лето, осень);
- •Ограниченный тип данных.
- •Вопросы для самоконтроля
- •Глава 9 Сложный тип данных – массивы.
- •Понятие массива.
- •Var_имя массива: array [t1] of_t2;
- •Тип массива.
- •Упакованные массивы.
- •Понятие многомерных массивов.
- •Глава 10 Сложный тип данных – множества.
- •10.1. Множества в языке Паскаль.
- •Var _имя множества: set_of_ базовый тип;
- •Примеры программирования задач с использованием множества
- •Вопросы для самоконтроля
- •Глава 11 Сложный тип данных – записи.
- •Понятие записи.
- •Оператор присоединения.
- •Вопросы для самоконтроля
- •Глава 12 Подпрограммы.
- •Общие сведения.
- •Процедуры и функции.
- •Вопросы для самоконтроля
- •Глава 13 Файлы
- •13.1. Понятие файла.
- •13.2. Чтение файла.
- •13.3. Запись файла.
- •13.4 Чтение и запись файла
- •Вопросы для самоконтроля
Оператор перехода.
В языке ПАСКАЛЬ принят естественный порядок выполнения программы: все операторы выполняются последовательно один за другим в том порядке, как они записаны. Однако в практике программирования задач возникает необходимость нарушения последовательности выполнения операторов. Например, необходимо обойти участок программы, а вернуться к нему позже. Для этого предназначен оператор перехода, который имеет следующую форму записи:
Go to метка
Метка представляет собой любое целое число без знака в диапазоне 1-9999 или идентификатор A, AB или какие – либо другие. Индентификаторы выбранные для меток, не могут являться именами переменных.
Число или идентификатор записывается перед помечаемым оператором и отделяется от него двоеточием:
GOTO 32
10:A:=2;
32:Y:=X/Z;
ПРИМЕЧАНИЕ:
Индентификаторы выбранные для меток, не могут использоваться для выбора имен переменных.
Здесь после оператора GOTO_32 выполняется оператор с меткой 32. Следует отметить, что оператор, следующий за оператором перехода, также должен быть помечен. Иначе все операторы в программе между оператором GOTO и оператором с меткой 32 будут лишними, так как доступа к ним нет и они никогда не будут выполняться.
Оператор перехода является простым оператором, так как в его состав не входят другие операторы.
Метка должна быть объявлена в разделе описания LABEL (см. параграф 1.3). Объявление метки имеет вид
Lавеl метка;
Допускается объявлять список меток:
Label метка 1, метка 2,…, метка n;
Для рассмотренного примера объявление меток выглядит следующим образом:
LABEL 10, 32,А,АВ;
В простых программах оператор перехода не вызывает никаких затруднений. В сложных программах и записанных на многих листках скачки при выполнении операторов программы проследить трудно. При этом ясность и понятность программы могут быть нарушены. Поэтому современный программист стремится избежать применения операторов перехода. В ряде случаев это удается сделать простыми способами. Например, отрезок программы, типичный для многих языков программирования,
IF А>В THEN GОТ0 1;
А:=А - В;
GOTO 2 ;
1:А:=А+B ;
2:Y:= A;
можно заменить следующей конструкцией языка ПАСКАЛЬ:
IFA>В THEN A:=A+В
ELSE А:=А-В;
Y:=A;
Однако в некоторых случаях оператор безусловного перехода оказывается весьма полезным. Например, пусть необходимо прекращать выполнение программы, если встречаются так называемые ситуации прерывания выражения, содержащие функции логарифма LN или корня квадратного SQRT от отрицательных аргументов, или необходимо выполнить деление на выражение, которое обращается в нуль:
IF Y<=0 THEN GOTO 100
ELSE A:= X*LN(Y);
If У<0 THEN GOTO 100
ELSE 8:=X + SQRT(Y);
S:=Т-COS(PT) ;
IF S=0 THEN GOTO 100
ELSE R:=257*W/S;
100:WRITE(‘ВЫПОЛГНЕНИЕ ПРОГРАММЫ ПРЕКРАЩАЕТСЯ’);
В этом примере всякий раз, когда встречается недопустимая ситуация, происходит переход к оператору с меткой 100. На экран дисплея выводится сообщение о прерывании программы и выполнение программы заканчивается.
