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

3. Примеры циклических программ

К типовым задачам организации циклов относятся задачи следующих

видов:

6

3. 1. Пример расчёта значений функции

Вычислить значения у = sin(a + b), z = ^b если а --

><Ь<2,4ЛЬ=0,6.

Смысл данной задачи сводится к тому, что надо определить и вывести

на экран значения переменных у и z при постоянном значении а. При этом b будет последовательно принимать значения -0,5; 0,1; 0,7; 1,3; 1,9.

Эти значения получаются, начиная от начального (-0,5), прибавлени­

ем к предыдущему шага (0,6) до конечного значения (2,4).

Для реализации этой задачи можно использовать конструкцию Repeat Д. until, поскольку переменная цикла является вещественной.

Алгоритм решения этой задачи имеет вид:

PROGRAM N1;

( Начало J

VAR

Л -А

A,B,Y,Z: REAL;

6 = -0,5

BEGIN

Т

A:=0.42; B:.=-0.5;

У ,2

REPEAT

1 ,

Y:=SIN(A+B) I

4 1

1 = ь(0,6 |

Z:=SQRT(ABS(A-B));

WRITELN ('У=',Y:30:3,.'

,Z:10:3)

b > 2 , 4 > ~ -

B:=B+0.6;

UNTIL B>2.4;

END.

Конец J

(

Описание алгоритма:

В блоке 2 переменной b присваивается значение - 0,5.

В блоке 3 начинается цикл по переменной b и вычисляются значения

переменных у и z .

В блоке 4 вычисляется выполняется приращение переменной b

В блоке 5 завершается цикл с постусловием.

3. 2. Задачи вычисления сумм, произведений, и подсчета количе­

ства элементов

3.2.1. В машину вводится п произвольных чисел. Подсчитать их

сумму. Здесь удобно использовать конструкцию FOR...TO...DO, поскольку

количество повторений фиксировано, а переменная цикла имеет целочис­

ленный тип.

Рассмотрим алгоритм и программу решения этой задачи:

Начало

/ ввод я /

PROGRAM N2;

VAR

. *

( K=l,« ) 1

BEGIN

/7

WRITE ('Введите количество чисел - N ^ ' ) ;

/ вводл /

READLN (N); S:=0;

i .

FOR K:=l TO N DO

s-s + x

BEGIN

1

WRITE ('Введите число Х=');

READLN (X) ;

J ВЫВОД S j

5:-S+X;

END;

( Конец "

WRITELN ('Сумма-',S:10:3);

END.

Описание алгоритма.

В блоке 2 предусмотрен ввод количества чисел, которые предполага­

ется ввести — п.

В блоке 3 организован цикл по переменной к, изменяющейся от 1 до п

с шагом 1.

В блоке 4 вводим значение числа и присваиваем его переменной X.

В блоке 5 накапливаем сумму значений X с помощью формулы

S=S+X. В этой формуле S, стоящие справа от знака = , предыдущее значение, а слева - последующее.

Этот блок является последним в цикле.

В блоке 7, который выполняется после завершения работы цикла, вы­

численное значение суммы — S выводится на экран.

3. 2.2. Найти произведение четных чисел натурального ряда (2, 4, 6....), вычисление завершить, когда величина произведения станет больше

числа 3700.

В данной задаче удобнее использовать одну из двух конструкций

REPEAT...UNTIL или

WHILE...DO, которые обеспечивают повторение цикла до выполне­

ния некоторого условия (Р<3700).

Воспользуемся конструкцией WHILE...DO, и составим алгоритм и

программу peiпения задачи.

PROGRAM N3;

Начало

VAR

К: INTEGER;

Р: REAL;

/ -7

BEGXN;

( пока Р<3700 )

п

Р:-] ;

1 .

К: =2 ;

р = рк

WHILE P<37 00 DO

к = к + 2

BEGIN;

_ (

Р:=Р*К;

1

К:=К+2;

/ вывод Р I

END;

— ^ * Л

WRITELN ('ПРОИЗВЕДЕНИЕ;-', Р:10:3);

Конец

END.

Описание алгоритма

В блоке 2 присваиваем переменной, в которой будем накапливать

произведение начальное значение — 1, а переменной К присваиваем первое

четное натуральное число — 2.

В блоке 3 организуем цикл, который будет повторятся до тех пор, по­

ка Р<3 700.

В блоке 4 накапливаем произведение значений К, используя рекур­

рентную формулу Р=Р*К и формируем следующее четное число по формуле

К"-К+2. Этот блок является последним в цикле.

R ftrmve 5 который выполняется после завершения заботы никла нн

экран выводится вычисленное значение произведения.

9

Примечание I.

Рекуррентными называют такие формулы, в которых каждое после­

дующее значение получается из предыдущего, например: S:=S+K.

Особенностью этих формул является то, что справа и слева от знака

присваивания стоит одна и также переменная S. Та, что стоит слева от знака

:~, называется последующим значением, а та, которая справа —предыдущим.

3. 2.3. С клавиатуры вводятся произвольные числа. Признаком за­

вершения работы является ввод числа 77777. Подсчитать количество введен­

ных чисел.

Для решения этой задачи воспользуемся конструкцией

REPEAT...IJNTIL.

Для подсчета количества чисел воспользуемся тем же принципом, что

и для подсчета суммы, но только суммировать будем единицы и тип пере­

менной будет целым.

Составим алгоритм и программу решения задачи.

PROGRAM N4;

VAR

X: REAL;

К: INTEGER;

BEGIN

К:=0;

REPEAT

WRITE ('ВВЕДИТЕ Х = ' ) ;

READLN (X); ,

K;~K+];

UNTIL X -mill;

WRTTELN ('Количество чисел =',К);

Г ~N

{ Конец 1

END.

Описание алгоритма.

В блоке 2 производим очистку переменной К.

В блоке 3 вводится очередное значение переменной X.

В блоке 4 количеству К прибавляется единица. Этот оператор являет­

ся последним в цикле.

В блоке 5, выполняется проверка условия завершения цикла

(Х=77777).

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]