Реферат: Побудова таблиці значень функції
ПОЯСНЕННЯ ДО СХЕМИ АЛГОРИТМУ ОСНОВНОЇ ПРОГРАМИ:
- блок 1 - початок програми;
- блок 2.3 - опис функцій користувача;
- блок 3 - виведення повідомлення про атрибути курсової роботи;
- блоки з 4 по 23 - введення вхідних даних в діалоговому режимі та контролю за правильністю їх вводу;
- блок 24 - початок циклу перебору елементів І;
- блок 29 - сума матриць
- блок 30 - максимальний елемент матриці
- блоки з 31 по 35 - підготовка даних і звертання до підпрограми розрахунку визначника методом Гауса
- блоки з 36, 38, Є 48 ,49- запам'ятовування чергового рядка таблиці;
- блок 58 - введення повідомлення про друк результатів;
- блоки з 50 по 59 - підготовка вхідних даних та звернення підпрограми виводу таблиці;
- блоки 60 - організація запиту і при потребі настройка програми на друк результатів на папір з перетворенням на повторне виконання блоків , починаючи з 50 ;
- блок 61- закінчення програми.
ТЕКСТИ ПРОГРАМ
Текст тестової програми
Вивід таблиць. Призначення: Вивід на екран (папір) в табличному вигляді декількох (<=5) змінних, які задані двовимірним масивом. Звертання: GOSUB 3000.
Опис параметрів: Вхідні: N - кількість рядків та стовпців.
Таблиці виводиться 10 позицій. Вихідні: немає. Допоміжні: I%, J%, L%, K%. Використовувані підпрограми і функції: немає. Вимоги до викликаючої програми: у викликаючій програмі необхідно:
на початку основної програми перед звертання до підпрограми описати двовимірний масив А розміром не менше N х N і одновимірний масив X розміром І;
перед звертанням до підпрограми змінні N,X повинні бути визначені;
не використовувати I%, J%, L%, K% для позначення змінних в основній програмі, які не повинні бути зіпсуті в процесі роботи даної підпрограми.
Роздрук результатів розрахунку
Роздруки результатів тестування
Висновок: отже, в результаті проведеного тест програми для обчислення визначника методом Гауса встановлено, що отримані результати відповідають тестовому прикладові ручному з розрахунку.
{ ОСНОВНА ПРОГРАМА. }
{КУРСОВА РОБОТА СТУДЕНТА ГРУПИ ТБ-2
Program student (input,output);
uses
crt, student, printer ;
const
n-3; f-50;
type
mas=аггау[1..3,1..3] of real;
var
i,j,k:integer;
y,b1,al,cmax,t,xl:real;
a,b,c:dvmr;
x:array[l.,50] of real;
begin
writeln('введіть елементи матриці А');
for i:=l to n do
for j:=l to n do {ВВІД МАТРИЦІ А}
begin
writeln ('введіть a[',i,',j,']=');
readln (a[ij])
end;
writeln ('введіть елементи матриці b‘);
for i:=1 to n do
for j:=1 to n do {ВВІД МАТРИЦІ В}
begin
writeln ('введіть b[',і,',',j,']=');
readln (b[i,j])
end;
for i:=1 to n do
for j:=l to n do {СУМА МАТРИЦЬ А, Б }
c[i,j]:=a[i,j]+b[i,j];
cmax:=c[l,l];
for i:=l to n do
for j:=l to n do
if c[i,j]>=cmax then {ЗНАХОДЖЕННЯ МАКСИМАЛЬНОГО ЕЛЕМЕНТУ МАТРИЦІ С}
begin
cmax:=c[i,j];
k:=J
end;
for i:=l to n do
al:=al+c[i,k];
writeln (1st,'ЗНАХОДЖЕННЯ СУМИ ЕЛЕМЕНТІВ СТОВПЦЯ
МАТРИЦІ З М’}
writeln (lst’al=',al:8:4); bl:=det(b,n);
writeln (1st,'ЗНАХОДЖЕННЯ ВИЗНАЧНИКА МАТРИЦІ В');
writeln (lst,'bl=',bl:8:4);
for i:=l to f do begin
writeln ('введіть х[',і,']-');
readln( x[i]) {ВВІД ЕЛЕМЕНТІВ МАСИВУ X}
end;
writeln (1st,'--------------------------------------------------------------------------
writeln (1st,'*----------------x-------------------*---------------------------------у
writeln (1st,'-------------------------------------------------------------------------
for i:-l to f do
begin
if x[i]>10 then t:=0,44 else t:=0,25;
y:-(l+sqr(x[i])*sin(t*x[i]/4))/(l,5+al*bl);
writeln (1st,'* ', x[i];8:3 , ' * ',y:8:3,'
writeln (1st, '-----------------------------------------------------------------------
end
end.
Підпрограма: Знаходження визначника матриці методом Гауса
<<DET>>
Function Det (A: dvmr; N: integer): real;
Var i,j,k: integer;
d,y,w: real;
Begin
if (help_s=’h’) or (help_s=’H’) then begin ClrScr;
writeln (‘***********************************************’);
writeln (‘* Знаходження визначника матриці методом Гауса *’);
writeln (‘* <<Det>> *’);
writeln (‘* Вхідні дані: *’);
writeln (‘* N - кількість рядків матриці *’);
writeln (‘* A[i,j] - матриця коефіцієнтів. *);
writeln (‘***********************************************’);
readln; Exit;
end;
d:=1;
for i:=1 to N do begin
k:=1; y:=A[i,i];
for j:=i+1 to N begin
w:=A[j,i];
if Abs (w)>Abs(y) then begin
k:j; y:=w;
end;
end;
d:=d*y;
if d=0 then begin det:=0; Exit; end:
if I< >k then begin
d:=-d;
for j:=i to N do begin
w:=A[k,j];
A[k,j]:=A[i,j];
A[i;j]:=w;
End;
end;
for j:=i+1 to N do begin
w:=A[j,i]/y;
for k:=i+1 to N do A[j,k]:=A[j,k]-w*A[i,k];
end;
end;
Знаходження суми елементів стовпця матриці з максимальним елементом а1=20.6000
Знаходження визначника матриці В
b1=243.3330
* | Х | * | Y | * |
* | 0.500 | * | 0.000 | * |
* | 1.000 | * | 0.000 | * |
* | 1.500 | * | 0.000 | * |
* | 2.000 | * | 0.000 | * |
* | 2.500 | * | 0.000 | * |
* | 3.000 | * | 0.001 | * |
* | 3.500 | * | 0.001 | * |
* | 4.000 | * | 0.001 | * |
* | 4.500 | * | 0.001 | * |
* | 5.000 | * | 0.002 | * |
* | 5.500 | * | 0.002 | * |
* | 6.000 | * | 0.003 | * |
* | 6.500 | * | 0.004 | * |
* | 7.000 | * | 0.004 | * |
* | 7.500 | * | 0.005 | * |
* | 8.000 | * | 0.006 | * |
* | 8.500 | * | 0.007 | * |
* | 9.000 | * | 0.009 | * |
* | 9.500 | * | 0.010 | * |
* | 10.000 | * | 0.012 | * |
* | 10.500 | * | 0.020 | * |
* | 11.000 | * | 0.023 | * |
* | 11.500 | * | 0.025 | * |
* | 12.000 | * | 0.028 | * |
* | 12.500 | * | 0.031 | * |
* | 13.000 | * | 0.034 | * |
* | 13.500 | * | 0.036 | * |
* | 14.000 | * | 0.039 | * |
* | 14.500 | * | 0.042 | * |
* | 15.000 | * | 0.045 | * |
* | 15.500 | * | 0.048 | * |
* | 16.000 | * | 0.050 | * |
* | 16.500 | * | 0.053 | * |
* | 17.000 | * | 0.055 | * |
* | 17.500 | * | 0.057 | * |
* | 18.000 | * | 0.059 | * |
* | 18.500 | * | 0.061 | * |
* | 19.000 | * | 0.063 | * |
* | 19.500 | * | 0.064 | * |
* | 20.000 | * | 0.065 | * |
* | 20.500 | * | 0.065 | * |
* | 21.000 | * | 0.065 | * |
* | 21.500 | * | 0.065 | * |
* | 22.000 | * | 0.064 | * |
* | 22.500 | * | 0.063 | * |
* | 23.000 | * | 0.061 | * |
* | 23.500 | * | 0.058 | * |
* | 24.000 | * | 0.055 | |
* | 24.500 | * | 0.052 | * |
* | 25.000 | * | 0.048 | * |