Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика. Практикум

.pdf
Скачиваний:
1
Добавлен:
24.11.2025
Размер:
5.18 Mб
Скачать

нения и значение 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