- •Липецкий государственный технический университет
- •Кафедра электропривода Лабораторная работа №3
- •Содержание
- •Лабораторная работа №3. Программирование циклических алгоритмов
- •Вариант задания 2
- •Этапы решения задачи
- •Составляем блок-схему алгоритма и программу расчета, используя оператор цикла for.. .
- •С оставляем блок-схему алгоритма и программу расчета, используя оператор цикла Repeat…until.
- •Этапы решения задачи
- •Вариант задания 4
- •Э тапы решения задачи
- •Вариант задания 3
- •Библиографический список
Зададим начальное значение переменной z=1, затем при выполнении условия (i mod 4) = 0, будем присваивать этой переменной противоположный знак z=-z .
Составляем блок-схему алгоритма и программу расчета, используя оператор цикла for.. .
да
нет
program lr3_2_1;
var x, F:real; t, z:integer;
begin
x:=1.2; //random(400)/100-2; {задаём произвольное х от -2 до +2}
F:=0; {задаём начальное значение суммы}
z:=1; {задаём начальное значение знака слагаемого}
for t:=1 to 60 do
begin
F:=F+z*power(x,t)/sqr(t); {расчет суммы}
if t mod 3 = 0 then z:=-z;
end;
writeln ('при х = ',x,' F = ', F:0:2); {вывод x и f}
end.
Составляем блок-схему алгоритма и программу расчета, используя оператор цикла while ..do. Этот цикл называется циклом с предусловием, так как проверка проводится до начала очередной итерации. До первого входа в цикл переменной t уже должно быть присвоено начальное значение. Затем сравним его с конечным значением. Цикл будет выполняться, пока условие истинно. Как только условие нарушается, выполнение цикла завершается.
program lr3_2_2;
var x, F:real; t, z:integer;
begin
x:=1.2; //random(400)/100-2; {задаём произвольное х от -2 до +2}
F:=0; {задаём начальное значение суммы}
z:=1; {задаём начальное значение знака слагаемого}
while t<60 do
begin
inc(t);
F:=F+z*power(x,t)/sqr(t); {расчет суммы}
if t mod 3 = 0 then z:=-z;
end;
writeln ('при х = ',x,' F = ', F:0:2); {вывод x и F}
end.
С оставляем блок-схему алгоритма и программу расчета, используя оператор цикла Repeat…until.
|
program lr3_2_3; var x, F:real; t, z:integer; begin x:=1.2; //random(400)/100-2; {задаём произвольное х от -2 до +2} F:=0; {задаём начальное значение суммы} z:=1; {задаём начальное значение знака слагаемого} repeat inc(t); F:=F+z*power(x,t)/sqr(t); {расчет суммы} if t mod 3 = 0 then z:=-z; until t=60; writeln ('при х = ',x,' F = ', F:0:2); {вывод x и F} end. |
Выполним программу в среде PascalABC.NET.
При тестировании с одним и тем же значением х=1.2 все три варианта циклов дали одинаковый результат.
