Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры выполнения заданий по алгоритмизации и...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
124.42 Кб
Скачать

Упражнение 2 Разветвляющийся алгоритм

Формулировка задания:

1. Выполнить словесный алгоритм. Записать результат.

2. Составить блок-схему и написать программу по алгоритму.

Словесный алгоритм

Задан фрагмент алгоритма:

если W > R, то R=W+R, иначе W=R-W.

В результате выполнения данного алгоритма с начальными значениями: W=-7, R=55.

Решение:

1. Для начальных значений: W=-7, R=55 условие W > R не выполняется. В этом случае выполняется вторая ветка W=R-W=55+7=62.

В результате работы алгоритма значение переменных равны: W=62, R=55.

2. Блок-схема словесного алгоритма представлена на рис.15.

На рис. 15 появился новый блок 3, в котором проверяется условие. Блок проверки условия образует ветвление по двум направлениям в алгоритме.

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

1

Рис. 15. Алгоритм ветвления

  • Блоку 1 соответствует служебное слово BEGIN.

  • Блоку 2 соответствует оператор ввода Readln (w, r).

  • Блоку 3 соответствует оператор условия if w>r then w:=w+r else r:=r-w.

  • Блоку 4 соответствует оператор присваивания w=w+r.

  • Блоку 5 соответствует оператор присваивания r=r-w.

  • Блоку 6 соответствует оператор вывода Writeln (’w=’,w,’r=’,r).

  • Блоку 7 соответствует служебное слово END.

Программа алгоритма ветвления, представленного на рис.15.

PROGRAM PR2;

VAR

w, r: integer;

BEGIN

Writeln (’ввести w, r’); {На экран выводится подсказка – текст в скобках}

Readln (w, r); {Ввод с клавиатуры переменных w, r }

if w > r then

w := w + r

else

r:=r-w;

Writeln (’w=’, w, ’r=’, r); {Вывод результата}

END.

Упражнение 3 Алгоритмы. Циклы

Формулировка задания:

1. Выполнить словесный алгоритм. Записать результат.

2. Составить блок-схему и написать программу по алгоритму.

Пример1: Циклический алгоритм со счётчиком циклов задан в виде словесного описания. Заданы начальные значения переменных:

s:=0; d:=1;

Начало цикла для i от 1 до 3

d:=2*d; s:=s+d;

конец цикла; Вывод d, s.

Решение:

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

После выполнения первого цикла значения переменных равны d=2, s=2. Полученные значения подставляются во втором цикле. После выполнения второго цикла значения переменных равны d=4, s=6. Полученные значения во втором цикле подставляются при выполнении третьего цикла. В результате выполнения алгоритма значение переменных равны: d=8, s=14.

Блок-схема словесного алгоритма цикла со счётчиком представлена на рис.16.

6

1

2

3

4

5

7

Рис. 16. Алгоритм цикла со счётчиком

  • Блоку 1 соответствует служебное слово BEGIN.

  • Блоку 2 соответствует оператор ввода readln (n).

  • Блоку 3 соответствуют операторы присваивания s:=0; d:=1;

  • Блоку 4 соответствует оператор цикла for i:=1 to n do.

  • Блоку 5 соответствуют операторы присваивания d: =2*d; s:=s+d;

  • Блоку 6 соответствует оператор Writeln (‘d=’,d,‘s=’,s);

  • Блоку 7 соответствует служебное слово END.

Программа алгоритма цикла со счётчиком, представленного на рис.16.

PROGRAM PR3;

Var

s, d, i, n :integer;

begin

writeln (‘ввести количество циклов-n’);

readln (n);

s:=0; d:=1;

for i:=1 to n do {оператор цикла с параметрами}

begin

d: =2 * d;

s: =s + d;

Writeln (‘ d= ’, d, ‘ s = ’, s);

End; {конец оператора цикла}

End.

Пример 2: Циклический алгоритм с предусловием задан в виде словесного описания. Заданы начальные значения переменных:

x:=1; y:=5;

Начало цикла. Пока y>x выполнить:

y: = y – x;

k=k+1;

конец цикла;

Определить количество циклов k и значения переменной y после выхода из цикла.

Решение:

Цикл выполняется до тех пор, пока выполняется условие y>x. Так как y=5, x=1, то условие y>x выполняется и значение y вычисляется по формуле y=y–x. В результате выполнения первого цикла y=4. Во втором цикле условие y>x выполняется, после второго цикла значение y=3. В третьем цикле условие y>x выполняется, после окончания третьего цикла значение y=2. В четвертом цикле условие y>x выполняется, после выполнения цикла значение y=1. При значениях y=1, x=1 условие y>x не выполняется, цикл не будет выполняться. Следовательно, цикл закончится и выполнится четыре цикла. На выходе из цикла значения переменных будут равны: k=4, y=1, x=1.

Программа алгоритма цикла с предусловием, представленного на рис.12.

PROGRAM PR4;

Var

k, x, y: integer;

begin

writeln (‘ ввести x, y ’);

readln (x, y);

while y>x do {оператор цикла с предусловием}

begin

y: = y – x;

k:=k+1;

writeln (‘ k=’, k , ‘ y= ’ , y);

end; {конец оператора цикла с предусловием }

end.

В программе до выполнения цикла не задано начальное значение k. По умолчанию оно равно нулю.

В примере используется оператор цикла с предусловием, который в данном примере выполняется при условии y>x. Условие проверяется при входе в цикл. В теле цикла счётчик задан в виде оператора присваивания k:=k+1, который выдаёт количество выполненных циклов.

Пример3: Циклический алгоритм примера 2 переписать, используя оператор цикла с постусловием. Результат будет тот же.

Программа алгоритма цикла с постусловием, представленного на рис.13.

PROGRAM PR5;

Var

k, x, y: integer;

begin

writeln (‘ввести x, y , ’);

readln (x, y);

repeat {оператор цикла с постусловием}

y: = y – x;

k:=k+1;

readln (‘ k=’ , k , ‘ y= ’, y);

until y<=x; {конец оператора цикла с постусловием }

end.