4 - циклические вычислительные процессы общее
.pdfЛ. Р. № |
Студент |
Иванов И. И. |
|
«Циклические |
Группа |
ХХ-999 |
|
|
|
||
Дата |
дд.мм.гг |
||
вычислительные процессы» |
|||
|
|
||
|
Допуск |
|
|
|
|
|
|
|
Выполнение |
|
|
|
|
|
|
|
Отчет |
|
|
|
|
|
Условие задачи 1
Трижды определить значение выражения, используя три различных цикла
k |
|
n |
2 |
|
S = ∑ |
|
. |
||
|
|
|||
n=1 |
|
n + x |
Тестовые примеры к задаче 1
1)
Входные данные: k = 5, x = 1
Выходные данные:
S = 0.707+3.016+7.517+14.672+24.878
полученная сумма S = 24.878
2)
Входные данные: k = 3, x = 0
Выходные данные:
S = 1.000+ 3.828+ 9.025
полученная сумма S = 9.025
1
Блок-схемы к задаче 1 |
|
|
|
|
|
|
|
|
|
Начало |
|
|
|
Начало |
|
Ввод k, x |
|
|
|
|
|
|
|
|
|
Ввод k, x |
|
S := 0 |
|
|
|
|
|
|
|
Начало |
|
S := 0 |
|
n := 1 |
|
|
|
|
|
|
|
Ввод k, x |
|
n := 1 |
|
|
|
S := 0 |
|
|
|
n ≤ k |
|
|
|
|
n2 |
|
|
|
|
S := S + |
|
|
|
n := 1 , k |
|
|
|
|
|
|
n + x |
|
n2 |
||
|
|
|
|
S := S + |
|
S := S + |
n2 |
n := n + 1 |
|
n + x |
|
n + x |
|
|
|
|
|
|
|
|
|
n := n + 1 |
|
|
|
n > k |
|
|
|
Вывод S |
|
|
|
|
|
Конец |
|
Вывод S |
|
Вывод S |
|
|
|
|
|
||
|
|
|
|
|
a) |
Конец |
Конец |
|
|
|
||
использование |
б) |
в) |
|
цикла for |
|||
использование |
использование |
||
|
цикла repeat |
цикла while |
2
Листинг программы на Pascal к задаче 1 (вариант с циклом for)
program cicleForSumm; var n,k:integer;
x,S:real; begin
cls;
writeLn('Введите k, x'); readLn(k,x);
for n:=1 to k do S:=S+sqr(n)/sqrt(n+x);
writeLn('полученная сумма S=',S:8:3); end.
Листинг программы на Pascal к задаче 1 (вариант с циклом repeat)
program cicleRepeatSumm; var n,k:integer;
x,S:real; begin
cls;
writeLn('Введите k, x'); readLn(k,x);
S:=0;
n:=1; repeat
S:=S+sqr(n)/sqrt(n+x);
writeLn(S,n:5);
n:=n+1; until n>k;
writeLn('полученная сумма S=',S:8:3); end.
Листинг программы на Pascal к задаче 1 (вариант с циклом while)
program cicleWhileSumm; var n,k:integer;
x,S:real; begin
cls;
writeLn('Введите k, x'); readLn(k,x);
S:=0;
n:=1;
while n <= k do begin
S:=S+sqr(n)/sqrt(n+x);
n:=n+1;
end;
writeLn('полученная сумма S=',S:8:3); end.
3
Условие задачи 2
Трижды протабулировать функцию, используя три различных цикла
f |
( |
x |
) |
= |
( |
x +a |
) |
2 на интервале x |
[ |
] |
, x = 0,3 , указав при этом значения |
|
|
|
|
|
−2; 3 |
функции с нечетной и четной целой частью.
Тестовые примеры к задаче 2
|
1) Входные данные: a = 12 |
|||
f( |
Выходные данные: |
- целая часть 100 четная |
||
-2.00) = |
100.00 |
|||
f( |
-1.70) = |
106.09 |
- целая часть 106 четная |
|
f( |
-1.40) = |
112.36 |
- целая часть 112 четная |
|
f( |
-1.10) = |
118.81 |
- целая часть 118 четная |
|
f( |
-0.80) = |
125.44 |
- целая часть 125 нечетная |
|
f( |
-0.50) = |
132.25 |
- целая часть 132 четная |
|
f( |
-0.20) = |
139.24 |
- целая часть 139 нечетная |
|
f( |
0.10) |
= |
146.41 |
- целая часть 146 четная |
f( |
0.40) |
= |
153.76 |
- целая часть 153 нечетная |
f( |
0.70) |
= |
161.29 |
- целая часть 161 нечетная |
f( |
1.00) |
= |
169.00 |
- целая часть 169 нечетная |
f( |
1.30) |
= |
176.89 |
- целая часть 176 четная |
f( |
1.60) |
= |
184.96 |
- целая часть 184 четная |
f( |
1.90) |
= |
193.21 |
- целая часть 193 нечетная |
f( |
2.20) |
= |
201.64 |
- целая часть 201 нечетная |
f( |
2.50) |
= |
210.25 |
- целая часть 210 четная |
f( |
2.80) |
= |
219.04 |
- целая часть 219 нечетная |
|
2) Входные данные: a = 1 |
|||
f( |
Выходные данные: |
- целая часть 9 нечетная |
||
-2.00) = |
9.00 |
|||
f( |
-1.70) = |
7.29 |
- целая часть 7 нечетная |
|
f( |
-1.40) = |
5.76 |
- целая часть 5 нечетная |
|
f( |
-1.10) = |
4.41 |
- целая часть 4 четная |
|
f( |
-0.80) = |
3.24 |
- целая часть 3 нечетная |
|
f( |
-0.50) = |
2.25 |
- целая часть 2 четная |
|
f( |
-0.20) = |
1.44 |
- целая часть 1 нечетная |
|
f( |
0.10) |
= |
0.81 |
- целая часть 0 четная |
f( |
0.40) |
= |
0.36 |
- целая часть 0 четная |
f( |
0.70) |
= |
0.09 |
- целая часть 0 четная |
f( |
1.00) |
= |
0.00 |
- целая часть 0 четная |
f( |
1.30) |
= |
0.09 |
- целая часть 0 четная |
f( |
1.60) |
= |
0.36 |
- целая часть 0 четная |
f( |
1.90) |
= |
0.81 |
- целая часть 0 четная |
f( |
2.20) |
= |
1.44 |
- целая часть 1 нечетная |
f( |
2.50) |
= |
2.25 |
- целая часть 2 четная |
f( |
2.80) |
= |
3.24 |
- целая часть 3 нечетная |
4
Блок-схемы к задаче 2 |
|
|
|
|
|
|
Начало |
Начало |
|
|
|
|
|
|
Ввод a |
Ввод a |
|
|
|
|
|
|
x0:=-2 |
x0:=-2 |
|
|
|
N:=trunc((3-x0)/0.3) |
|
f := (x+a)2 |
|
|
|
|
|
k := 0 , N |
|
|
|
|
|
|
Вывод x, f |
x:=x0+0.3*k |
|
|
|
f := (x+a)2 |
|
trunc(f) mod 2 ≠ 0 |
|
|
|
‘Целая часть’ |
|
|
|
‘Целая часть’ |
|
Вывод x, f |
|
trunc(f) ‘нечетная’ |
trunc(f) ‘четная’ |
|
|
|
|
trunc(f) mod 2 ≠ 0 |
|
x := x + 0.3 |
|
‘Целая часть’ |
‘Целая часть’ |
|
|
trunc(f) ‘нечетная’ |
trunc(f) ‘четная’ |
|
x > 3 |
|
|
|
Конец |
Конец |
|
|
|
a) использование цикла for |
б) использование цикла repeat |
5
Листинг программы на Pascal к задаче 2 (вариант с циклом for)
program cicleForTabul; var x0,f,x,a:real;
N,k:integer; begin
cls;
writeLn('Введите a'); readLn(a);
x0:=-2; N:=trunc((3-x0)/0.3); for k:=0 to N do
begin
6
x:=x0+0.3*k;
f:=sqr(x+a); write('f(',x:8:2,') =',f:8:2); if trunc(f) mod 2 <> 0 then
writeLn(' - целая часть ',trunc(f) ,' нечетная ') else
writeLn(' - целая часть ',trunc(f) ,' четная');
end;
end.
Листинг программы на Pascal к задаче 2 (вариант с циклом repeat)
program cicleRepeatTabul; var f,x,a:real;
begin cls;
writeLn('Введите a'); readLn(a);
x:=-2; repeat
f:=sqr(x+a); write('f(',x:8:2,') =',f:8:2); if trunc(f) mod 2 <> 0 then
writeLn(' - целая часть ',trunc(f) ,' нечетная ') else
writeLn(' - целая часть ',trunc(f) ,' четная'); x:=x+0.3;
until x>3;
end.
Листинг программы на Pascal к задаче 2 (вариант с циклом while)
program cicleWhileTabul; var f,x,a:real;
begin cls;
writeLn('Введите a'); readLn(a);
x:=-2;
while x <= 3 do begin
f:=sqr(x+a); write('f(',x:8:2,') =',f:8:2); if trunc(f) mod 2 <> 0 then
begin
writeLn(' - целая часть ',trunc(f) ,' нечетная ') end
else
writeLn(' - целая часть ',trunc(f) ,' четная');
x:=x+0.3;
end;
end.
7
Условие задачи 3
Ввести целое число N . Если N >0 , то составить программу наглядного вычисления факториала, выводя в каждой строке кроме самого значения факториала поочередно столько раз символы «>» и «<», сколько сомножителей в факториале. Например, для N =5:
1>
2<<
6>>>
24<<<<
120>>>>>
Тестовый пример к задаче 3
Входные данные:
N=6
Выходные данные:
1>
2<<
6>>>
24<<<<
120>>>>>
720<<<<<<
8
Блок-схема к задаче 3
Листинг программы на Pascal к задаче 3
program ABC;
var i,k,N:integer; f:LongInt;
begin
writeLn('Введите N'); readLn(N);
f:=1;
for i:=1 to N do begin
f:=f*i;
write(f);
for k:=1 to i do
if i mod 2 <> 0 then write('>')
else write('<');
writeLn;
end;
end.
9
Список задач №1 для лабораторной работы «Циклические вычислительные процессы»
1. |
Трижды определить значение суммы, используя три различных цикла |
|||||
|
S = ∑6 (n2 + x). |
|
|
|
||
|
n=1 |
|
|
|
|
|
2. |
Трижды определить значение произведения, используя три различных |
|||||
|
|
4 |
|
|
|
|
|
цикла P =∏(n2 + x). |
|
||||
|
|
n=1 |
|
|
|
|
3. |
Трижды определить значение суммы, используя три различных цикла |
|||||
|
S =∑5 (n3 +n x). |
|
|
|||
|
n=1 |
|
|
|
|
|
4. |
Трижды определить значение произведения, используя три различных |
|||||
|
|
8 |
|
|
|
|
|
цикла |
P =∏(n + x). |
|
|||
|
|
n=1 |
|
|
|
|
5. |
Трижды определить значение суммы, используя три различных цикла |
|||||
|
S =∑9 |
ln (n). |
|
|
|
|
|
n=3 |
|
|
|
|
|
6. |
Трижды определить значение суммы, используя три различных цикла |
|||||
|
S =∑k (n +1)2 . |
|
|
|
||
|
n=1 |
|
|
|
|
|
7. |
Трижды определить значение произведения, используя три различных |
|||||
|
цикла |
k n |
|
|
|
|
|
P =∏ |
+ x . |
|
|||
|
|
n=1 2 |
|
|
|
|
8. |
Трижды определить значение произведения, используя три различных |
|||||
|
|
5 |
1 |
|
|
|
|
цикла |
P =∏ |
|
|
+ x . |
|
|
|
2n |
||||
|
|
n=1 |
|
|
9. Трижды определить значение суммы, используя три различных цикла
S = ∑6 (x n −1)3 .
10. |
n=1 |
|
|
Трижды определить значение произведения, используя три различных |
|||
|
|
5 |
|
|
цикла |
P =∏(2x + n ). |
|
11. |
|
n=1 |
|
Трижды определить значение произведения, используя три различных |
|||
|
|
6 |
|
|
цикла P =∏(n +2x). |
||
12. |
|
n=1 |
|
Трижды определить значение суммы, используя три различных цикла |
|||
|
S = ∑4 |
n + x |
. |
|
2 |
||
|
n=1 (n +1) |
10