Оператор перехода
Оператор перехода имеет вид:
goto p;
где p— метка, которой помечен некоторый иной оператор в программе. В данном случае речь идет о переходе на метку, указанную после оператора.
Оператор перехода предназначен для передачи управления в другую точку программы (т.е. для нарушения естественного порядка выполнения операторов).
Например:
goto 11;
...
11: WriteLn (a) ;
В Turbo Pascal допускается использовать в качестве меток как числа (от 1 до 9999), так и идентификаторы.
После оператора GOTO должна быть указана единственная метка, и такой же меткой обязательно должен быть помечен один (и только один) из операторов программы. Однако один и тот же оператор может помечаться несколькими метками. Иными словами, каждый оператор перехода передает управление в одну (и только в одну) точку программы, однако возможна передача управления из разных точек программы в одну.
Все метки, используемые в программе, должны быть объявлены. Раздел описания меток обозначается зарезервированным словом LABEL и находится между заголовком и телом программы. Вот как может выглядеть раздел описания меток, в котором объявлены три метки.
label 1, 2, new;
Злоупотреблять использованием операторов GOTO не рекомендуется, поскольку в результате получаются малопонятные программы. Тем более что без оператора GOTO, как правило, можно обойтись, применив другие средства Turbo Pascal.
В заключение заметим, что если метка должна использоваться внутри процедуры или функции, она должна быть в ней описана. Иными словами, передача управления снаружи внутрь процедуры или функции с помощью оператора перехода невозможна.
Задача 5.
Найти сумму ряда:
Математическая формулировка задачи:
С умму ряда можно определить при помощи цикла. Для этого обозначим знаменатели дробей переменной i. Эта переменная будет счетчиком цикла. Она имеет начальное значение 2 и конечное значение 100 (так как знаменатель первой дроби равен 2, а последней дроби равен 100). В цикле значение переменной i будет увеличиваться на 1 на каждом проходе. При помощи переменной i на каждом проходе цикла получаем очередной элемент ряда el:=1/i. Будем добавлять текущий элемент каждый раз к предыдущей сумме, то есть на каждом проходе цикла сумма станет увеличиваться на очередное значение el. Так постепенно накопится вся сумма.
Алгоритм решения задачи 5: Текст программы:
Program Ex_5;
Uses Crt;
Var
S: real; { сумма }
El: real; { элемент ряда }
i: integer; { знаменатели дробей }
Begin
ClrScr;
S:=0;
For i:=2 to 100 do
begin
el:=1/i;
S:=S+el;
End;
Writeln(‘S=’,S);
Readln;
End.
- 230401 «Информационные системы»
- 230115 «Программирование в компьютерных системах»
- Лабораторная работа №1. Организация ввода-вывода информации
- Алфавит языка Turbo Pascal.
- Переменные и константы.
- Основные типы переменных.
- Структура программы.
- Оператор присваивания, операторы ввода с клавиатуры и вывода на экран.
- Процедуры управления выводом на экран.
- Компиляция и выполнение программы.
- Лабораторная работа №2. Арифметические выражения. Программирование алгоритмов линейной структуры.
- Арифметические выражения в языке Turbo Pascal.
- Стандартные арифметические функции.
- Генератор случайных чисел.
- Составление алгоритма и программы для решения задачи.
- Лабораторная работа № 3. Программирование алгоритмов разветвленной структуры. Оператор ветвления if … then … else
- Условный оператор if … then … else.
- Составной оператор.
- Лабораторная работа № 4. Программирование алгоритмов разветвленной структуры. Оператор ветвления case.
- Условный оператор Case.
- Лабораторная работа № 5. Программирование алгоритмов циклической структуры с известным числом повторений.
- Оператор циклаWhile.
- Оператор цикла repeat.
- Вложенные циклы
- Оператор перехода
- Лабораторная работа № 6. Обработка строк с использованием операторов цикла.
- Лабораторная работа № 7. Программирование алгоритмов циклической структуры с неизвестным числом повторений.
- Лабораторная работа № 8. Обработка одномерных числовых массивов.
- Лабораторная работа № 9. Обработка двумерных числовых массивов.
- Лабораторная работа № 10. Использование процедур и функций при обработке массивов.
- Лабораторная работа № 11. Тип запись. Массивы записей.
- Лабораторная работа № 12. Обработка информации из файлов последовательного доступа.
- Лабораторная работа № 13. Обработка информации из файлов прямого доступа.
- Лабораторная работа № 14. Модуль программиста. Многомодульный проект.
- Текст модуля программиста к задаче 14.