Lab_rab_Pascal_OZO / Lab_06_Операторы_цикла
.docЛабораторная работа № 6.
Операторы цикла.
Цель: изучение и приобретение навыками использования операторов цикла и получение дальнейших навыков по отладке и тестированию программ.
Оборудование и программное обеспечение: компьютер, Turbo Pascal 7.0.
Место проведения:
Время:
Теоретические сведения:
Вычислительный процесс называется циклическим, если он содержит многократное повторение одних и тех же действий. Многократно повторяемые участки вычислений называются циклами. Для программной реализации таких вычислений в Turbo Pascal имеется несколько типов операторов цикла.
Оператор цикла с предусловием организует выполнение одного (возможно составного) оператора неизвестное число раз. Структура оператора:
while <условие> do <оператор>;
где <условие> - логическое выражение;
<оператор> - простой или составной операторы.
Пример 1:Вычислить сумму S = 1 + 1/2 + 1/3 + ... + 1/50.
Program ex1;
Var s: real;
n: integer;
Begin
s:=0; n:=1;
while n <= 50 do { пока значение n не превзойдёт 50 }
begin { тело цикла }
s:=s + 1/n;
n:=n + 1
end;
Writeln('Сумма равна: ',s)
End.
Оператор цикла с постусловием организует выполнение цикла, состоящего из любого количества операторов неизвестное заранее количество раз. Структура оператора:
repeat
<оператор 1>;
<оператор 2>;
. . .
<оператор N>;
until <условие>;
где <условие> - логическое выражение;
<оператор> - простой или составной операторы.
Пример 2: Вычисление суммы S = 1 + 1/2 + 1/3 + ... + 1/50.
Program EX2;
Var n: integer;
s: real;
Begin
s := 0; n := 1;
repeat
s := s + 1/n;
n := n + 1;
until n > 50;
Writeln('Результат суммирования ... ', s);
End.
Оператор цикла с параметром организует выполнение одного оператора заранее известное количество раз. Структура оператора:
Вариант первый: for i:=start to finish do <оператор>
Вариант второй: for i:=start downto finish to <оператор>
где i - параметр цикла;
start - начальное значение параметра;
finish - конечное значение параметра;
<оператор> - простой или составной операторы.
Пример 3: Вычислить сумму S = 1 + 1/2 + 1/3 + ... + 1/50.
Program EX3;
Var i:integer;
s:real;
Begin
s:=0;
for i:=1 to 50 do s:=s + 1/i;
Writeln('Cумма равна: ',s);
End.
Порядок выполнения работы:
Задание:
1. С использованием оператора цикла For составить и отладить программу для решения следующей задачи: Дано действительное число x. Вычислить сумму зависящего от x ряда (см. Приложение).
2. Провести вычисления для x=1, x=1.5, x=2.
3. Решить поставленную в пункте 1 задачу с использованием цикла While и с использованием Repeat. Провести численные вычисления и сравнить полученные результаты с результатами пункта 2.
Содержание отчета по каждому заданию:
-
исходные данные (условие задачи);
-
алгоритм (блок-схема) решения задачи;
-
текст программы (или основной фрагмент программы);
-
результаты выполнения программы
-
тестовый вариант в форме с фиксированной точкой.
Контрольные вопросы:
-
Что называется циклом, телом цикла?
-
Какие операторы цикла языка Pascal Вы знаете?
-
Приведите известные Вам форматы оператора For.
-
С каким шагом может изменяться параметр оператора For?
-
Как можно рассчитать число шагов в операторе For?
-
Поясните отличия в операторах цикла с предпроверкой и постпроверкой условий.
-
Какой формат имеет оператор While?
-
Приведите пример, когда тело цикла в операторе While не выполняется ни одного раза.
-
Приведите формат оператора Repeat.
-
Поясните, в каком случае прекращаются повторения в операторе Repeat.
Приложение: (ваш номер по журналу соответствует номеру варианта)