Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть1. Структурное программирование.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.94 Mб
Скачать

2. Таблица распределения идентификаторов

входные

промежуточные

Выходные

переменная

x

m

N

S

Имя

X

m

N

S

Тип

R

I

I

R

3. Блок-схема программы представлена на рис. 21б.

А

Б

Рис.21. Блок-схема программы:

а – I этап; б – II этап

4. Программа. Программа составляется по блок-схеме с учетом таблицы распределения идентификаторов.

program p3;

uses crt;

var X, S: real;

m, n: integer;

begin

clrScr;

write('Введите m=');

readln (m);

S:=0;

For n:=1 to m do

begin

write ('X=');

readln (X);

if X<0 then

S:= S+(exp(ln(abs(n*X))/3)*3/abs(3)

else S:=S+n*exp(X);

end;

writeln ('S=', S:5:2,' ','m=',m:2);

readln

end.

5. Протокол работы программы:

Введите m=4

X=3.2

X=-2.5

X=1.0

X=0.0

S=38.40 m= 4

6. Содержание отчета (см. задача 1).

Задача 12

1. Формулировка задачи: вычислить значение функции W при изменении аргумента х в заданном диапазоне с постоянным шагом ∆х. Значения аргумента и результаты вычисления функции вывести в таблицу.

,

где

Переменная х изменяется от хнач до хкон с шагом ∆х (хнач<=x<=xкон).

Исходные данные: xнач = 0.3; xкон = 1.2; ∆x = 0.3; a = 0.9; m = 4.

В задаче необходимо вычислить значения функций W при изменении аргумента x в заданном диапазоне с постоянным шагом.

На первом этапе определяется порядок вычислений и положение блоков, требующих дальнейшей детализации (см. рис. 22а). В задаче вводится ряд промежуточных переменных: уменьшаемое L (представляет собой линейный процесс), вычитаемое S (циклический процесс с заданным числом повторений) вычисляемой функции.

Во внешний цикл (вычисления текущего значения функции W) вложены: линейный процесс – L, разветвляющийся – F и внутренний цикл вычисления текущей суммы – S. Внешний цикл – циклический процесс с заданным диапазоном изменения переменной, в задаче реализован через оператор цикла с предусловием (while). Блоки вычисления S и F детализованы на следующем этапе (см. рис. 22б).

x:=xn

f=(x+a)/2

f=sgr(x-a)

L=1.7*sgrt(x+1)

S=S+(x+F*x)/(2*n+1)

S=0

W:=L-S

x:=x+dx

а

Б

Рис.22. Блок-схема программы:

а – I этап; б – II этап

  1. Блок-схема программы представлена на рис. 22б.

  2. Таблица распределения идентификаторов

Входные

Промежуточные

выходные

переменные

xнач

хкон

х

m

a

x

L

S

n

F

W

имя

хn

xk

dx

m

a

x

L

S

n

F

W

тип

R

R

R

I

R

R

R

R

I

R

R

4. Программа. Программа составляется по блок-схеме с учетом таблицы распределения идентификаторов.

Program p4;

uses crt;

const c='----------------';

var n, m: integer;

x, xn, xk, dx, L, S, a, F, W: real;

begin

ClrScr;

writeln ('введите xn, xk, dx, a, m');

readln (xn, xk, dx, a, m);

writeln (' Таблица');

writeln(c);

writeln('X',' ':9,'W');

writeln(c);

x:=xn;

while x<=xk do

begin

L:=1.7*sqrt(x+1);

if x>=a then F:=(x+a)/2

else F:=sqr(x-a);

S:=0;

for n:=1 to m do

S:=S+(x+F*x)/(2*n+1);

W:=L-S;

writeln(X:4:2,' ', W:8:2);

x:=x+dx;

end;

writeln(c);

readln

end.

5. Протокол работы программы:

6. Содержание отчета (см. задача 1).