Комп'ютерні науки > Побудова таблиці значень функції
ПОЯСНЕННЯ ДО СХЕМИ АЛГОРИТМУ ОСНОВНОЇ ПРОГРАМИ: - блок 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 | * |
Назва: Побудова таблиці значень функції Дата публікації: 2005-02-22 (1138 прочитано) |