Информатика. Практикум
.pdfнения и значение R, если решения нет, то вывести сообщение «Действительных корней нет» и значения R, a, b, c.
Решение задачи
Схема алгоритма решения задачи представлена на рис. 2.17.
Программа
Program Task2_17;
Var
A, B, C, X1, X2, D : Real;
N, R |
: Integer; |
Begin |
{начало раздела операторов программы} |
R := 10; |
{начальное значение параметра цикла 1} |
While R <= 100 do |
|
Begin |
{начало цикла 1} |
{вычисление параметра А}
A := 1/(Sin(R)+1.5);
for N := R to 20 do A := A - 1/Exp(N*Ln(R));
{вычисление параметра B}
B := 1;
for N := 1 to 30 do B := B*Sin(N); B := Exp(R/50) + B;
C := A*B + Ln(Abs(A)) * Ln(Abs(B));{вычисление параметра С}
D := B*B - 4*A*C; {вычисление дискриминанта}
If D >= 0 Then {начало блока 1 - вычисление корней}
Begin
X1 := (-B + Sqrt(D))/(2*A); X2:= (-B - Sqrt(D))/(2*A);
{вывод значений корней на экран}
Writeln(' R= ',R:3,' X1 = ',X1:5:2,' X2 = ', X2:5:2);
end |
{конец блока 1} |
Else Writeln(' R= ', R:3, ' Действительных корней нет. A= |
|
', A:5:2, ' B= ', B:5:2, ' C= ', C:5:2); |
|
R := R + 5; |
{приращение параметра цикла 1} |
end; |
{конец цикла 1} |
Readln; |
{ожидание нажатия клавиши Enter} |
end. |
{конец программы} |
Обозначения схемы алгоритма
X1, X2 – корни квадратного уравнения.
101
|
1 |
|
Начало |
|
|
|
|
|
|
|
2 |
|
R=10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
R<100 |
нет |
18 |
|
|
|
|
|
|
|
|
Конец |
|
|
|
|
|
|
4 |
|
да |
|
|
|
|
|
|
|
|
A=1/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(SinR+1.5) |
|
|
|
|
|
|
|
|
5 |
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
N=R, 20 |
|
|
|
|
|
Вычисление |
|
|
|
|
|
|
|
|
|
||
|
|
A - 1 |
|
|
|
|
|
параметра А |
|
|
|
A |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
RN |
|
|
|
|
|
|
|
7 |
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
B=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
N=1,30 |
|
|
|
|
|
Вычисление |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
параметра B |
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
B sinN |
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
12 |
B=… C=… |
|
B |
eR/50 |
B |
|
||
|
|
|
C |
A B |
ln A lnB |
|
|||
|
|
|
D=... |
|
|
|
|||
|
|
|
|
|
D |
B2 |
4AC |
|
|
|
нет 13 |
|
|
да |
|
|
|||
|
|
D>0 |
|
|
|
|
|
||
|
|
|
14 |
|
|
|
|
|
|
|
|
|
|
X1=… |
X1 |
( B |
D)/2A |
Решение |
|
16 |
|
|
|
|
|||||
«Действительных |
X2=... |
X2 |
( B |
D)/2A |
квадратного |
||||
Вывод |
|
|
|
|
уравнения |
||||
корней нет» |
15 |
Вывод |
|
|
|
||||
«...» |
|
|
|
|
|||||
|
R, A, B, C |
|
R, X1, |
|
|
|
|
||
|
|
|
|
|
X2 |
|
|
|
|
|
17 |
|
|
|
|
|
|
|
|
|
|
|
R=R+5 |
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.17 |
|
|
|
|
102 |
|
|
|
|
|
|
|
|
|
Результат работы программы
R= |
10 |
Действительных корней нет. A= 1.05 B= |
1.22 C= |
1.29 |
||||||
R= |
15 |
X1 |
= -0.33 X2 |
= -2.57 |
|
|
|
|
|
|
R= |
20 |
X1 |
= -0.19 X2 |
= -3.41 |
|
|
|
|
|
|
R= |
25 |
Действительных корней нет. A= |
0.73 |
B= |
1.65 |
C= |
1.05 |
|||
R= |
30 |
Действительных корней нет. A= |
1.95 |
B= |
1.82 |
C= |
3.96 |
|||
R= |
35 |
Действительных корней нет. A= |
0.93 |
B= |
2.01 |
C= |
1.83 |
|||
R= |
40 |
X1 |
= -0.16 X2 |
= -4.84 |
|
|
|
|
|
|
R= |
45 |
X1 |
= -0.11 X2 |
= -5.67 |
|
|
|
|
|
|
R= |
50 |
X1 |
= -1.07 X2 |
= -2.29 |
|
|
|
|
|
|
R= |
55 |
Действительных корней нет. A= |
2.00 |
B= |
3.00 |
C= |
6.77 |
|||
R= |
60 |
X1 |
= -1.05 X2 |
= -2.92 |
|
|
|
|
|
|
R= |
65 |
X1 |
= -0.13 X2 |
= -8.41 |
|
|
|
|
|
|
R= |
70 |
X1 |
= -0.16 X2 |
= -9.06 |
|
|
|
|
|
|
R= |
75 |
X1 |
= -1.11 |
X2 |
= -3.87 |
|
|
|
|
|
R= |
80 |
Действительных корней нет. A= |
1.98 |
B= |
4.95 |
C= 10.88 |
||||
R= |
85 |
X1 |
= -0.74 |
X2 |
= -6.50 |
|
|
|
|
|
R= |
90 |
X1 |
= -0.16 |
X2 |
= -14.32 |
|
|
|
|
|
R= |
95 |
X1 |
= -0.24 |
X2 |
= -14.36 |
|
|
|
|
|
R= 100 X1 = -1.21 X2 = -6.14
2.5. Задача по вычислению функции, заданной в интервале
Задача 2.18. Разработать схему алгоритма и программу для вычисления интервальной функции z для десяти значений xi, заданных массивом, которые вводятся с клавиатуры:
10xi2 |
3b, |
если |
x |
100; |
|
|
|
i |
|
z sin x3 / 5 cos(ax ) , |
если 100 |
x 300; |
||
i |
i |
|
|
i |
11x |
xa , |
если |
xi |
300, |
i |
i |
|
|
|
где a и b – параметры, рассчитываемые как
30 |
|
1 |
|
1 |
|
|
1 |
|
||
a |
cos( j 3) , b |
1 |
|
... |
|
. |
||||
|
|
|
||||||||
j |
1 |
|
2 |
3 |
100 |
|||||
На экран выводить значения интервальной функции z для каждого xi.
103
Решение задачи
Схема алгоритма решения задачи представлена на рис. 2.18.
|
Программа |
Program Task2_18; |
|
Uses Crt; |
|
Var |
|
X |
: Array[1..10] of Real; |
z, a, b |
: Real; |
I |
: Integer; |
Begin |
{начало раздела операторов программы} |
ClrScr; |
{очистка экрана} |
Write('Введите массив из 10 чисел: ');
for I:=1 to 10 do Read(X[I]); {ввод значений массива Х} a:=0; b:=1;
for I:=1 to 30 do a := a + Cos(I+3);{вычисление параметра a} for I:=2 to 100 do b := b + 1/i; {вычисление параметра b} {для X[I] вычисление значения функции Z}
for I := 1 to 10 do
Begin |
{начало цикла} |
If X[I] < 100 Then Z:= 10*X[I]*X[I] + 3*b |
|
|
Else If X[I]>300 Then Z := 11*X[I]+Exp(a*Ln(X[I])) |
|
Else Z:= Sin(Exp(3/5*Ln(X[I]))*Cos(a*X[I])); |
Writeln('Z', I,'=', Z:10:3);{вывод на экран результатов} |
|
end; |
{конец цикла} |
Repeat Until KeyPressed;{ожидание нажатия любой клавиши} |
|
End. |
{конец программы} |
Результат работы программы
Введите массив из 10 чисел: 1 150 250 350 10000 -235 0.02 -0.005 789 10
Z1= |
25.562 |
Z2= |
0.811 |
Z3= |
-0.973 |
Z4= |
5596.076 |
Z5=235154.762
Z6=552265.562
Z7= |
15.566 |
Z8= |
15.562 |
Z9= |
13598.539 |
Z10= |
1015.562 |
104
Обозначение схемы алгоритма
X[I] – xi элемент массива X.
1 |
Начало |
|
|
1 |
|
|
2 |
A |
|
12 |
D |
|
|
|
|
|
|
|
||
3 |
I=1,10 |
|
|
I=1,10 |
14 |
|
Ввод |
Ввод |
13 |
|
|
||
|
|
да |
Z=10X[I]2+ |
|||
|
массива Х |
X[I]<100 |
||||
|
X[I] |
|
|
+3b |
||
4 |
|
|
|
|
||
|
|
|
нет |
16 |
|
|
|
A |
|
15 |
|
||
|
|
X[I]>300 |
да |
Z=11X[I]+ |
||
|
|
|
|
|||
5 |
|
|
|
|
|
+X[I]a |
a=0 |
|
17 |
нет |
|
|
|
|
|
|
|
|||
|
b=1 |
|
|
Z=sin(X[I]3/5 |
|
|
6 |
B |
|
|
·cos(aX[I])) |
|
|
|
|
|
|
|
|
|
7 |
I=1,30 |
|
18 |
|
|
|
|
|
|
|
|
||
|
|
|
Вывод |
|
|
|
|
a=a+ |
Вычисление |
|
|
|
|
|
|
Z, I |
|
|
||
|
+cos(I+3) |
параметра a |
|
|
|
|
|
|
|
|
|
||
8 |
|
|
19 |
|
|
|
|
B |
|
|
D |
|
|
|
|
|
|
|
|
|
9 |
C |
|
20 |
|
|
|
|
|
|
|
|||
|
I=2,100 |
|
|
Конец |
|
|
10 |
|
Вычисление |
|
|
|
|
|
b=b+1/I |
|
|
|
|
|
|
параметра b |
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
1 |
|
|
|
|
|
Рис. 2.18
Вычисление и вывод Z
2.6.Задачи по нахождению суммы конечного
ибесконечного функциональных рядов
Задача 2.19. Разработать схему алгоритма и программу вычис-
ления ряда S(x) 2sin x 4sin3 x 6sin5 x ... 20sin19 x , если
105
переменная x может изменяться по закону x = 1; 3 (0,5). Вывести на экран значения сумм S для каждого значения x.
Решение задачи
Схема алгоритма решения задачи представлена на рис. 2.19.
Программа
Program Task2_19; |
|
|
Uses Crt; |
|
|
Var |
|
|
J |
: Byte; |
|
P, S, X : Real; |
|
|
Begin |
{начало раздела операторов программы} |
|
ClrScr; |
{очистка экрана} |
|
X:= 1; |
{начальное значение переменной Х} |
|
While X <= 3 do |
|
|
Begin |
{начало цикла 1 - для перебора значений Х} |
|
|
S:= 0; |
{начальное значение переменной суммы S} |
|
P := sin(X); |
|
|
for J := 1 to 10 do {цикл для суммирования членов ряда} |
|
|
Begin |
|
|
S := S + 2*J * P; {вычисление суммы} |
|
|
{вычисление произведения для элементов ряда} |
|
|
P := P * sin(X)*sin(X); |
|
|
End; |
|
|
Writeln('X = ',X:4:1,' S = ',S:6:2);{вывод результатов} |
|
|
X:= X + 0.5; |
{приращение переменной Х} |
end; |
{конец цикла 1} |
|
Repeat Until KeyPressed;{ожидание нажатия любой клавиши} |
||
End. |
|
{конец программы} |
|
|
Результат работы программы |
X = 1.0 S = |
17.30 |
|
X = 1.5 |
S = |
106.48 |
X = 2.0 |
S = |
35.90 |
X = 2.5 |
S = |
2.90 |
X = 3.0 |
S = |
0.29 |
Обозначение схемы алгоритма
106
P – промежуточная переменная для вычисления значений элементов ряда.
107
1 |
|
|
2 |
Начало |
|
|
|
|
|
X=1 |
|
3 |
|
нет |
|
X < 3 |
|
|
|
|
4 |
да |
|
S=0 |
|
|
|
|
|
|
P=sin(X) |
|
5 |
A |
|
|
|
|
|
J=1,10 |
Вычисление |
|
|
|
6 |
|
суммы десяти |
|
S=S+2J·P |
членов ряда |
P=P·Sin2(X) |
|
|
7 |
|
|
|
A |
|
8 |
Вывод |
Вывод |
|
||
|
X, S |
результатов |
9 |
|
|
|
X=X+0.5 |
Приращение |
|
переменной Х |
|
|
|
|
10 |
Конец |
|
|
|
|
|
|
Рис. 2.19 |
108
Задача 2.20. Разработать схему алгоритма и программу вычисления
суммы членов ряда S |
|
1 |
|
1 |
) . Ограничиться числом чле- |
1 ln9 (x 2) |
|
||||
x |
|
x |
|||
нов ряда, для которых выполняется условие Sn – Sn–1
< 0,01, где
|
n |
|
1 |
|
1 |
|
|
Sn |
|
|
) |
– сумма n членов ряда. Использовать функ- |
|||
|
1 ln9 (x 2) |
|
|||||
x |
|
|
x |
|
|||
цию для вычисления члена ряда.
Решение задачи
Схема алгоритма решения задачи представлена на рис. 2.20.
Программа
Program Task2_20;
Var
X : Integer;
S1, S2, E : Real;
{функция вычисления члена ряда}
Function F(x :Integer) : Real;
Begin |
{начало раздела операторов функции F} |
F:=1/Exp(9*Ln(x+2))+1/x; |
|
End; |
{конец функции F} |
Begin {начало раздела операторов основной программы}
X:= 1;
S2:= F(Х); {сумма, состоящая из 1-го члена ряда} Repeat {начало цикла}
S1:= S2; {S1-сумма, состоящая из (X-1) членов ряда} X:= X + 1; {увеличение X на 1}
S2:= S2 + F(X);{S2-сумма, состоящая из X членов ряда} E:= Abs(S2 - S1);{вычисление погрешности E}
Until E < 0.01; {конец цикла-пока погрешность не станет < 0.01} Writeln('Сумма ряда = ', S2:5:3); {вывод результата на экран} Readln; {ожидание нажатия клавиши Enter}
End. {конец основной программы}
Результат работы программы
Сумма ряда = 5.197
109
Обозначения схемы алгоритма
S1 – значение суммы, состоящей из (X – 1) членов ряда; S2 – значение суммы, состоящей из X членов ряда;
F(X) – вызов функции F для вычисления значения члена ряда в зависимости от значения Х;
E – значение погрешности вычислений.
1 |
Начало |
|
|
|
2 |
|
|
|
|
|
X=1 |
|
|
|
3 |
|
|
Вычисление суммы, |
|
|
|
|
|
|
|
S2=F(X) |
|
состоящей из |
|
|
|
|
первого члена ряда |
|
4 |
S1=S2 |
|
S1 - сумма (X-1) |
|
|
|
|
||
|
X=X+1 |
|
членов ряда |
Вычисление |
5 |
|
|
|
|
S2=S2+ |
|
S2 - сумма X |
суммы членов |
|
|
|
ряда |
||
|
+F(X) |
|
членов ряда |
|
6 |
|
|
Вычисление |
|
|
E=|S2-S1| |
|
|
|
|
|
погрешности |
|
|
|
|
|
|
|
нет 7 |
E<0.01 |
да |
|
|
|
|
|
|
|
|
|
8 |
Вывод |
|
|
|
|
|
|
|
|
|
S2 |
|
|
|
9 |
Конец |
|
|
|
|
|
|
|
|
|
Рис. 2.20 |
|
110 |
|
|
|
|
