Примеры решений задач

Лабораторная работа 6 (4 ч)

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

Цели:

- научиться программировать циклические алгоритмы.

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

Имеется три вида циклических алгоритмов: цикл с предусловием (цикл While), цикл с постусловием (цикл Repeat) и цикл с заранее заданным числом повторений (цикл For).

Оператор Repeat организует выполнение цикла, состоящего из любого числа операторов, с заранее неизвестным числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется, если условие выполнения окажется истинным. Структура оператора Repeat имеет вид:

Repeat

<Оператор 1>;

<Оператор 2>;

……………….

<Оператор N>;

Until <условие>;

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

While <условие> do <тело цикла>.

Оператор For организует выполнение цикла с заранее заданным числом повторений. Выполнение очередного повтора включает в себя сначала выполнение оператора, а затем присваивание переменной цикла следующего значения. Существует два варианта оператора цикла For.

For <переменная>:= <нач. знач.> to <кон. знач.> do <оператор>;

For <переменная>:= <нач. знач.> downto <кон. знач.> do <оператор>;

Первая разновидность цикла при каждой итерации увеличивает значение переменной на единицу, вторая – уменьшает.

Различные операторы цикла могут быть вкложены один в другой неограниченное число раз.

Примеры решений задач

1. Используя оператор Repeat, найти сумму первых n двузначных чисел, кратных 11 ( вводится с клавиатуры).

Program Primer1;

Var n, s, a, i: Integer;

Begin

Write('Введите количество чисел n = ');

Read(n);

s:= 0; a:= 11; i:= 0;

Repeat

If a mod 11 = 0 then

Begin

s:= s + a;

i:= i + 1;

End;

a:= a + 1;

Until (i = n) or (a > 99);

WriteLn('Искомая сумма = ', s);

End.

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

Program Primer2;

Var a, b, h, x, y: Real;

Begin

WriteLn('Введите значения концов отрезка:');

Read(a, b);

WriteLn('Введите шаг: ');

Read(h);

WriteLn('_____________');

WriteLn('| x | y |');

WriteLn('|______|______|');

x:= a;

While x <= b do

Begin

y:= x/2 + 1;

WriteLn(x: 6: 2,' | ',y: 6: 2);

x:= x + h;

End;

WriteLn('|_____________|');

End.

3. Используя оператор For, написать программу, вычисляющую сумму элементов ряда для . Значения и должны вводиться с клавиатуры.

Program Primer3;

Var x, s, a: Real;

n, i: Integer;

Begin

WriteLn('Введите x и n: ');

Read(x, n);

S:= 1; a:= 1;

For i:= 1 to n do

Begin

a:= a * (-1 / x);

s:= s + a;

End;

WriteLn('Искомая сумма = ', s: 4: 2);

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: