Обчислювальна техніка і програмування
Обчислювальна техніка і програмування
Зміст
1. Завдання.
2. Постановка задачі.
2.1. Аналіз структури вхідних даних задачі.
2.2. Визначення порядку підстановки і вводу вхідних даних.
2.3. Аналіз структури виду і типу результатів розрахунку.
2.4. Вибір математичних методів розрахунку.
2.5. Вибір обслуговування мови програмування.
3. Схеми алгоритмів.
3.1. Таблиці прийнятих позначень змінних і const.
3.2. Схема алгоритму основної програми.
3.3. Схема алгоритму розробленої підпрограми.
4. Текст програм.
4.1. Текст основної програми.
4.2. Текст розробленої програми.
5. Опис програмних модулів.
5.1. Опис основної програми.
5.2. Опис розробленої підпрограми.
6. Роздрук результатів.
7. Перелік використаних літературних даних.
Завдання
За допомогою стандартної програми надрукувати таблицю значень функції.
, де х [0,2; 8,2]; x = 0,2; a = 3,5, при і a = *e при ;
е - найбільший елемент, помножений на суму його індексів матриці L = D * Q; d = f(x) задача таблична і допускає кусково-лінійну інтерполяцію.
f(x)0,221,852,43,24,33,6
x0,11,025,36,18,410,2
D =
1,2-4,35,8
3,10,2-0,3
-0,40,52,8
Q =
0,220,33-0,8
1,312,451,48
-2,13-1,420,37
Для множення матриць і визначення d при заданому значенні х скласти під програму загального вибору.
2. Перш за все ми знаходимо і вводимо матриці D * Q (розмір ). Обчислюємо добуток матриці. Потім знаходимо індекс максимального елементу. Нам потрібно знайти а, х, b. Відомо, що а - це нерівність і вона дорівнює а = *е, е - найбільший елемент матриці, помножений на суму його індексів. Також це значення, яке задане таблично. І цю функцію потрібно знайти через частино-лінійну інтерполяцію.
2.1. Вхідні дані задачі це xp = 0,2, xa = 8,2, dx = 0,2, а також задана матриця . Вхідні дані в задачі задані десятковим значенням.
2.2.
Знаходимо і вводимо матриці.
Знаходимо добуток матриці.
Знаходимо значення а.
Знаходимо значення е.
е - найбільший елемент матриці.
Обрахуємо суми індексів помножених матриць.
Знаходимо значення х.
Знаходимо d1 - яка задана таблично і допускає кусково-лінійну інтерполяцію.
Ввід y - значення функції, яка задана.
Ввід x, y.
Ввід і вивід таблиці.
2.4. Матрицею розміру або () - матрицею називається прямокутна таблиця з чисел аij, i {1,2,…, m}, j {1,2,…, n}, вигляду:
a11 a12 … a1n
a21 a22 … a2n
A= … … … … ,
am1 am2 … amn
яка складається з m рядків і n стовпчиків. Якщо m = n, то матриця називається квадратною; якщо m = 1, то маємо матрицю-рядок; якщо n = 1 матрицю стовпчик.
Для множення матриць вибираємо метод Сімпсона, який полягає в тому:
a11 a12 a13 b11 b12 b13 a11b11 a12b12 a13b13
a21 a22 a23 x b21 b22 b23 = a21b21 a22b22 a23b23 ;
a31 a32 a33 b31 b32 b33 a31b31 a32b32 a33b33
Таким чином будемо обраховувати в програмі. Значення d - яке задано таблично, можна розв'язати як кусково-лінійну інтерполяцію.
2.5. Курсова робота на мові Pascal. Програма написана на мові Pascal оформлюється з допомогою скінченного набору знаків, які утворять алгоритм мови. Алфавіт мови складається з букв, десяткових та шіснадцяткових цифр і спеціальних знаків. Слова мови Pascal поділяють на: зарезервовані, стандартні, ідентифікатора, користувача і ідентифікатори.
3. Схеми алгоритмів.
3.1. Таблиця прийнятих позначень змінних і констант.
A x x x e L D Q d n ma xp xk dx e L D Q b n m
3.2. Схема алгоритму основної програми.
початок
x, a, k
y:=
y:= ?
кінець
Алгоритм введення матриці.
початок
n, m
i:= 1,n
j:= 1,m
B i j - ?
кінець
початок
n, m
i:= 1,n
j:= 1,m
Q i j - ?
кінець
Алгоритм знаходження добутку матриць.
початок
i:= 1,n
j:= 1,m
4ij = 0
k:= 1,n
4 i j = 4 i j + D i j * Q i j
4 i j - ?
кінець
Знаходження алгоритму таблиці функції.
початок
а
хs a:=*e
a:= 3,5
a:= ?
кінець
Алгоритм пошуку індексу максимальна цього елементу.
початок
Im:= 1
Jm:= 1
I:= 1,n
J:= 1,m
Im:= i
Jm:= d
кінець
3.3. Схема алгоритму розробленої підпрограми.
початок
D, Q
i:= 1,m
j:= 1,m
S:= 0
k:= 1,m
S:= S+D[i,k]+a[k,j]
d[i,j]:= S
кінець
4. Текст програми.
4.1. Текст основної програми.
Program Kursova
Const Uses Student;
n=3;
m=3;
xp=0.2;
xk=8.2;
dx=0.2;
Var
x1,F:ovmat;
x, i, j, Im, Jm:integer;
d, q, l: dvm r
a, b, c, y, x, S: real;
w: dvm t;
T: txt;
POV: St50;
Procedure MOM(d, g: dvm r; n, m: integer; var l: dvm r);
Var
I, q, k: integer;
Begin
for i:=1 to n do
for k:=1 to m do
begin
S:=0
for j:=1 to m do
S:=S+[i, j]*q [i, a];
L [i, k]:= S;
write(,'l[i, k]',);
end;
Begin
{знаходимо індекс y та x елементу};
Im := 1 ; Jm := 1;
For i:=1 to n do
For j:=1 to m do
if them;
Begin
Im := i ,Lm := j ;
end;writeln (' індекс та x елементу : ,Im ,Jm ,'max = ',L[Im ,Jm] ');
e:= L[Im, Jm]*Im *Jm;
x:= xp;
write do;
begin
if x 5 then a:= 3.5
else a:= sqrt ((x)*c)
write ('a= ', a);
end;
b:= KLI(x,6,x1,F);
y:= Arc Tan (Exp. (3 *ln(a))+Exp. (3xln(x)))/ Sqrt (Exp.(3 ln (p))+ +Exp.(3 ln(x))+1.31);
write ('x= ', x:6:2, 'y= ', y:6:2);
x: x+dx;
end;
Pov := 'Таблиця';
T [o] := 'x ';
T [1] := 'y ';
Tab BS (WKL 1,6,2 pov. T);
read key.
End.
4.2. Текст розробленої підпрограми.
Procedure Matr MN (Var, D, Q, L; drmv; M: integer);
Var i, j, n1: integer;
Begin
for i:= 1 to n do
for j:= 1 to m do
begin
S:= 0;
for k:= 1to n do
S:= S+Q[i ,k]*D[j ,k];
d [i ,j]:= S
end
End.
5. Опис програмних модулів.
5.1. Опис основної програми.
В основній програмі, я за допомогою write вводив матриці B, K. Потім звертався до підпрограми яка обчислює добуток матриць.
5.2. Опис розробленої підпрограми.
Підпрограмі я обчислив добуток двох матриць. Матрицю L я вивів за допомогою оператора write.
Список літератури
Руденко В. Д.; Макарчук О. М.
“Практичний курс інформатики”.
2. Гаменський Я. М. “Основи інформатики та обчислювальна техніка” (частина ІІІ Бейсік).
3. Власов В. К., Корольов Я. Н. “Елементи інформатики”.
4. Розрахунково-лаболаторний практикум з курсу “Математичні модулі, та методи в розрахунках на ЕОМ”.
5. Гринюк Ю. І. “Обчислювальна техніка алгоритмів і програмування мовою Pascal”.