
- •Часть 1
- •Содержание
- •Среда программирования Turbo Pascal
- •Лабораторная работа №1 Программирование вычислительного процесса с алгоритмом линейной структуры
- •5. Протокол работы программы
- •6. Содержание отчета
- •Лабораторная работа №2 Программирование разветвляющегося вычислительного процесса
- •Примеры программирования разветвляющихся вычислительных процессов
- •1. Использование условного оператора
- •4. Программа. Программа составляется по блок-схеме с учетом таблицы распределения идентификаторов.
- •4. Программа. Программа составляется по блок-схеме с учетом таблицы распределения идентификаторов.
- •Лабораторная работа №3 Программирование циклических вычислительных процессов
- •Примеры программирования циклических вычислительных процессов с заданным числом повторений
- •2. Таблица распределения идентификаторов
- •2. Таблица распределения идентификаторов
- •Примеры программирования циклических вычислительных процессов с заданным диапазоном изменения переменной
- •3. Блок-схема программы
- •Примеры программирования вычислительных процессов, выполняемых до достижения заданной точности
- •Лабораторная работа №4 Программирование комбинированных вычислительных процессов.
- •Примеры программирования комбинированных вычислительных процессов
- •2. Таблица распределения идентификаторов
- •2. Блок-схема программы
- •3. Таблица распределения идентификаторов
- •2. Таблица распределения идентификаторов
- •Приложение 1 Структура программы
- •Приложение 2 Основные функции
- •Приложение 3 Основные элементы блок-схемы
- •Приложение 4
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 этап |
Блок-схема программы представлена на рис. 22б.
Таблица распределения идентификаторов
|
Входные |
Промежуточные |
выходные |
||||||||
переменные |
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).
|