Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль учебник.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
174.35 Кб
Скачать

7.5. Опера тор перехода

Оператор перехода имеет вид: Goto M;

М - метка. Все метки должны быть описаны в разделе описания меток;

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

Оператор Goto Met; передает управление на оператор с меткой Met. (Нельзя передавать управления во внутрь структурных операторов)

Пусть программа содержит последовательность операторов:

Х:=2; А:=Х; Goto Met;

1 :A:=A*2; В:=А; Met:Writeln(B);

В этом случае сначала выполняются операторы Х:=2; А:=X; затем следует переход к оператору, помеченному меткой Met т.е. к оператору Writeln(B);

Пример 1.

Даны 3 различных отрицательных числа. Найти предыдущее и следующее значение максимального из этих чисел.

Решение:

Program Vetl;

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;

8.Программирование циклических алгоритмов

В Паскале существуют 3 оператора цикла:

8.1.Цикл с постусловием («До»)

Repeat

Ml;

М2;

:

Mk;

Until N;

Блок - схема

Repeat - повторять;

Until -до;

Ml, M2,..., Mk - группа операторов, они называются операторами тела цикла.

N - выражение, имеющее логическое значение (условие выхода из цикла)

Выполняется:

  1. Выполняются операторы Ml, М2,..., Mk;

  2. Вычисляется значение N;

  1. Если 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. Вычислить произведение чисел: Р=2*4*6*…* R, где R – четное.

  5. Найти значение функции у=х2 при х=1,3,5,…,15.

  6. Найти значения функции Т=(р2+15) при р=2,4,6,…,20.

8.2. Оператор цикла с предусловием «Пока»

While N do M;

Блок-схема

While - пока;

Do - выполнять;

N - выражение, имеющее логическое значение (условие входа в цикл);

М - любой оператор в единственном числе. Если по смыслу задачи надо повторять группу операторов, то их надо превратить в один составной оператор (заключить в операторные скобки). Этот оператор или группа операторов называется телом цикла;

Выполняется:

  1. Вычисляется значение N;

  2. Если N - True, то выполняется оператор М (группа операторов), иначе оператор цикла заканчивает свою работу;

  3. Перейти к пункту 1.

Среди операторов тела цикла обязательно должен присутствовать оператор, изменяющий значение выражения N;

Пример 1.

Дины числа от 1 до N (N - четное). Найти: S=

Решение:

Program Cil;

Var K,N: Integer;

S:Real;

Begin

Writeln (Введите четное число');

Readln(N);

K:=0; S:=0;

While K<N do

Begin

K:=K+2;

S: =S+l/K;

End;

Writeln (‘S=’,S);

End.

Задачи:

  1. Даны числа от 1 до N. Найти: ,

  2. Даны числа от 1 до N (N - нечетное). Найти:

  3. Найти значение X: X=(l*3*5*...*N)/(l+3+5+...+N) (N нечетное).

  4. Даны числа от 1 до N. Вычислять: , вплоть до слагаемого, меньшего заданного Е (Е<1)

  5. Вычислить сумму чисел: S=K+(K+1)+(K+2)+(K+3)+…+(K+N); (K<N)

  6. Вычислить среднее арифметическое чисел: K,K+1,K+2,… K+N; (K<N)

  7. Вычислить произведение чисел: P=N*(N+1)*(N+2)*(N+3)*…*(N+R); (N<R)

  8. Вычислить: P=1+(1*2)+(1*2*3)+(1*2*3*…*R).

  9. Вычислить: P=1*(1+2)*(1+2+3)*(1+2+3+…+R).

  10. Найти значения функции M=N2-N при N={2,4,6,…,T} (T - четное).

  11. Найти значения функции X=Y2*(Y2-Y)/Y при Y={N*1,N*2,…,N*M} (N<M).