M- метка. Все метки должны быть описаны в разделе описания меток;
В рассмотренных выше программах операторы выполнялись в том порядке, в каком они были записаны. Изменить этот порядок можно с помощью оператора перехода. Он прерывает естественную последовательность операторов: следом за ним выполняется оператор, помеченный указанной меткой.
Оператор Goto Met; передает управление на оператор с меткой Met.
Пусть программа содержит последовательность операторов:
X:=2; A:=X; Goto Met;
1:A:=A*2; B:=A; Met:Writeln(B);
В этом случае сначала выполняются операторы X:=2; A:=X; затем следует переход к оператору, помеченному меткой Met т.е. к оператору Writeln(B);
Задача 6.
Даны 3 отрицательных числа. Найти предыдущее и следующее значение максимального из этих чисел.
Решение:
Program Vet6;
Label 1;
Var A,B,C:Integer;
Begin
1:Writeln(’Введите отрицательные числа’);
Readln(A,B,C);
If (A>0) or (B>0) or (C>0) Then Goto 1;
{далее задачу решаем самостоятельно}
End;
Программирование циклических алгоритмов
В Паскале существуют 3 оператора цикла:
Цикл с постусловием («До»)
Repeat
M1;
M2;
:
Mk;
Until N;
Блок - схема
:
:
-
+
Repeat – повторять;
Until – до;
M1, M2,…, Mk – группа операторов, они называются операторами тела цикла.
N – выражение, имеющее логическое значение (условие выхода из цикла)
Выполняется:
1. Выполняются операторы M1, M2,…, Mk;
2. Вычисляется значение N;
3. Если N – True, то оператор цикла заканчивает свою работу, иначе перейти к пункту 1
Среди операторов тела цикла обязательно должен присутствовать оператор, изменяющий значение выражения N;
Задача 1.
Найти произведение чисел от 1 до 10.
Решение:
Program Ci1;
Var K:Integer;
P:Real;
Begin
K:=0;P:=1;
Repeat
K:=K+1;
P:=P*K;
Until K=10;
Writeln(’P= ’,P:10:5);
End.
Задачи:
1. Даны числа от 1 до N. Найти:а) сумму всех чисел; б) произведение всех чисел; в) среднее арифметическое.
2. Вычислить сумму всех двузначных чисел.
3. Вычислить сумму чисел: S=1+3+5+…+R где R-нечетное.
4. Вычислить произведение чисел: P=2+4+6+…+R где R-четное.
5. Найти значения функции y=x2 при х=1,3,5,…,15.
6. Найти значения функции р=(р2+15) при р=2,4,6,…,20.