Реферат: Структуровані типи даних Операції над двомірними масивами

Название: Структуровані типи даних Операції над двомірними масивами
Раздел: Рефераты по астрономии
Тип: реферат

КУРСОВА РОБОТА

НА ТЕМУ:

«Структуровані типи даних.Операції над двомірними масивами »

Анотація

В цій курсовій роботі розглянуті дії над

матрицями , такі як додавання , віднімання, мно-

ження та ділення двох матриць. А також знаход-

ження транспонованої та оберненої матриць.Про-

грами реалізовані на мові програмування Turbo

Pascal 7.0

ЗМІСТ

1.Вступ.

2.Теоретична частина.

2.1.Матриця і її властивості.

2.2. Дії над матрицями.

3.Постановка задачі.

4.Додатки.

4.1.Додатток 1(текст програм).

4.2.Додаток 2(блок-схеми до програм).

5.Висновки.

6.Використана література.

1.Вступ.

У всі часи людина прагнула розширити свої можливості, за допомогою різних знарядь праці, пізнання світу та засобів існування.

Так, наприклад нестачу зору компексує : мікроскоп, телескоп, радіолокатор. Обмежені можливості передачі інформації поширюються телефоном, радіо, телебаченням.

Обчислювані машини «доповнюють» можливості мозку людини, розширюють його можливості по обробці інформації, дозволяють прискорити прийняття рішення в процесі якої-небудь роботи.

В кінці 40-х років 20 ст. Праця в області ядерної фізики, баллистики керуючих знарядь, термодинаміки і т.д. вимагали такої обчислюваної роботи, яку вже було не можливо виконати за допомогою арифмометрів-головного обчислюваного інструмента того часу. Наука і техніка були поставлені перед делемою : або всім взятись за арифмометри або винайти новий ефективний інструмент обчислення. Аналогічні проблеми уже не раз виникали, і будуть неодноразово виникати перед вченими і інженерами: екстенсивний шлях розвитку дальше неможливий, потрібний новий, інтенсивний шлях. Проблема була вирішена створенням універсальної обчислюваної машини. Термін «універсальна»використовується не випадково. Спеціалізовані машини (наприклад, для обробки банківських рахунків і т. д.) існували і раніше, але не було машини, команди якої записані в память, можна б було швидко замінити новими.

Крім математичних обчислень ЕОМ може виконувати і логічні, тобто робити вибір між варіантами (вітками) продовження дій в залежності від виконання деяких умов. Таким чином ЕОМ-це дещо більше ніж «швидкий арифмометр».

Коротка характеристика різних поколінь ЕОМ

Перше покоління ЕОМ:

Технічна основа елементної бази машин 1-го покоління-електронні лампи. Максимальна швидкодія -10 у степені 2. Математичні операції в секунду(оп/с), обєм оперативної памяті -10 у 2 степені слів. Режим використання-монопольний, тобто в розпорядженні користувача були всі ресурси машини і її управління.

Друге покоління ЕОМ:

Технічна основа - транзистори. максимальна швидкодія-10 у 4 степені оп/с, обєм оперативної памяті-10 у 4 степені слів.Режим виконання-пакетна обробка.

Третє покоління ЕОМ:

Технічна основа-занадто великі інтегральні схеми, які на малих півпровідникових кристалах реалізують великі схеми машин 2-го покоління. Максимальна швидкодія-10 у 6 степені оп/с, оперативна память -10 у 6 степені слів, внутрішня память-10 у 9 степені слів. Метод виконання - режим розподілу часу разом з пакетною обробкою.

4-те покоління ЕОМ:

Технічна основа-занадто великі інтегральні схеми. Традиційна архітектура ЕОМ Фон Неймана домінувала на протязі трьох поколінь.

Максимальна швидкодія-10 у 9 степені оп/с, оперативна память-10 у 7 степені слів ,внутрішня память обмежена в основному економічними міркуваннями.

5-те покоління ЕОМ.

Проекти ЕОМ п’ятого покоління знаходяться в стадії реалізації. Максимальна швидкодія математичних обчислень доповнюється тут високими скоростями логічного виводу. Форма спілкування з ЕОМ

на звичайній мові і дисципліна програм, як наука для користувача перестають в майбутньому бути актуальними.

Історія і зміст предмета.

Обчислюваною математикою називають розділ математики, в якому вивчають різні проблеми одержання числових результатів обчислень математичних задач.

Якщо звернутися до історії математики то можна помітити, що обчислювана математика перетворилась на самостійну вітку порівняно недавно, десь в середині нашого століття. Цей факт в любому напрямку науки повязані з появленням власних і внутрішніх задач.

Обчислювальна математика, як частина математики має таку ж древню і багату історію, як і сама математика. Евклідова математика і механіка Ньютона, теорія електромагнітного поля і квантова теорія побудованіна математичній основі і дають потужні інструменти обчислень.

Зпоявленням ЕОМ розпочався золотий вік обчислювальної математики.вона швидко розвивається. Звернувшись до періоду розвитку обчислювальної математики після полявлення ЕОМ, можна побачити, що найбільш яскраві досягнення в розвязку задач були отримані саме тими вченими і інженерами, хто працював на ЕОМ, всі отрамані засоби математики:»чистої», прикладної, обчислювальної.

З точки зору техніки обчислювальної математика дає в її розпорядження методи , які умовно можна розбити на слідуючі 4 групи: якісні, аналітичні , численні.

2.1. Матриця і її властивості.

Прямокутна таблиця з m´n чисел ,що має m рядків і n стовпців

a11 a12 ... a1n

A= ... ... ... ...

am1 am2 ... amn

називається матрицею . Коротко матрицю позначають так:

А= ai j (і=1,2,...,m; j=1,2,...,n),

де ai j - елементи матриці.

Матрицю з єдиним стовпцем прийнято називати вектор-стовпцем , а матрицю з єдиним рядком ¾ вектор-рядком.

Рівні матриці повинні мати рівні кількості рядків і стовпців, а також рівні відповідні елементи.

Якщо в матриці число рядків рівне числу стовпців ,то матриця називається квадратною :

a11 a12 ... a1n

A= ... ... ... ...

an1 an2 ... ann

Матриця А* називається транспонованою до матриці А , якщо стовпці матриці А являються рядками матриці А*.

Наприклад: a11 a12

A= a21 a22

a31 a32

Транспонованою матрицею А* буде:

a11 a21 a31

A*=

a12 a22 a32

Приклад. Нехай А=(aij ), де і=1,..,m, о=1,..,n. Це значить, що А- матриця порядку m´n. Позначимо А* матрицю В = (bij ), для якої bij = aji , тоді А*матриця порядку n´m.

Квадратна матриця А називається симетричною відносно головної діагоналі ,якщо ai j =aj i .

Квадратна матриця, в якій всі елементи, що не лежать на головній діагоналі, дорівнюють нулю, називається діагональною. Якщо елементи діагональної матриці, що розміщені на головній діагоналі, дорівнюють одиниці, то матриця називається одиничною і позначають її буквою Е:

1 0 ... 0

Е= 0 1 ... 0

. . . . . . . . . . .

0 0 ... 1

2.2. Дії над матрицями:

Як виявляється, над матрицями можливі арифметичні дії, властивості яких близькі до властивостей арифметичних дій над числами.

Сумою двох матриць ai j і bi j з одинаковою кількістю рядків і стовпців називається матриця сi j ,у якої елементом сi j є сума aij +bij відповідних елементів матриць ai j bi j ,тобто

ai j + bi j = ci j ,

якщо ai j +bi j =ci j (i=1,2,..,m; j=1,2,..,n)

Приклад: a11 a12 b11 b12 a11 +b11 a12 +b12

a21 a22 b21 b22 a21 +b21 a22 +b22

Аналогічно знаходимо різницю двох матриць.

Матрицці різних порядків додавати(віднімати) не можна.

Множення матриці на число . Щоб помножити матрицю на число l або число на матрицю, потрібно кожний елемент матриці помножити на це число.

l * ai j = l ai j

a11 a12 l a11 l a12

l a21 a22 = l a21 l a22 .

Безпосередніми наслідками вказаних визначень є співвідношення:

1) 1 • А = А • 1 = А ;

2) 0 • А = А • 0 = 0 ;

3) a • О = О • a = О ;

4) a (b А) = (a b) А = (А a) b = А (a b);

5) А + (В +С) = (А+ В) + С;

6) А + В = В + А;

7) (a + b) А = a А + b А;

8) a (А + В) = a А + a В;

9) А + О = О + А = А;

10) А + (-1)А = О;

Тут А, В, С - матриці одного порядку, a, b - числа, О - нульова матриця (всі її елементи дорівнюють нулеві). Перевірка вказаних властивостей не викликає ускладнень.

Елемент ci j матриці С, яка є добутком матриці В на матрицю А, дорівнює сумі добутків елементів і-того рядка матриці В на відповідний елемент j-того стовпця матриці А, тобто

k

ci j =åbi l al j (i=1,2,..,m; j=1,2,..,n).

l =1

Властивості добутку матриць:

1) (А В) С = А (В С);

2) А (В + С) = А В + А С;

3) (А + В) С = А С + В С;

4) А Е = Е А = А;

5) (А В)*= В*А*;

Тут А, В, С - довільні матриці, для яких вказані рівності мають сенс.

Доведемо першу рівність - асоціативність множення матриць.

Позначимо в = A B, F = B C, G = в C, H = A F. Потрібно довести, що G =H. Оскільки множення вказаних вище матриць можливе, то А буде порядку m´n, В - порядку n´k, С - порядку k´l. З означення множення дістанемо, що в - порядку m´k, F - порядку n´l, G i H - матриці одного порядку m´l.

Зафіксуємо довільні i, j і доведемо, що gij = hij .Маємо

k k k

gij = å di a ca j = å å ai b bb a ca j ;

a =1 a =1 b =1

n n k

hij = å ai b fb j =å ai b å bb a ca j .

b =1 b =1 a =1

Позначивши ta b = ai b bb a ca j , отримаємо

k n n k

gij = å å ta b , hij = å å ta b .

a =1 b =1 b =1 a =1

Кожна із вказаних сум дорівнює сумі всіх елементів деякої матриці (ta b ), обчисленій двома різними способами. Отже, hij = gij , що й потрібно довести.

Інші властивості добутку доводяться аналогіччно, тільки простіше.

Оберненою називається матриця А-1 , така що якщо її помножити на матрицю до якої вона обернена, то в результаті отримаємо одиничну матрицю. А*А-1

Знайти матрицю, обернену до квадратної матриці М= аi k ,можна за допомогою операцій над розширеною матрицею А:

m11 . . . . m1n 1 . . . . 0

A= . . . . . . . . . . . . . . . .

mn1 . . . . mnn 0 . . . . 1

Якщо ліву частину матриці А звести елементарними перетвореннями до одиничної, то в правій частині дістанемо матрицю, обернену до М.

До елементарних перетворень належать:

1)Переставлення двох рядків матриці А (або двох однойменних стовпців в лівій і правій частинах матриці А);

2)Множення рядка на відмінне від нуля число( або однойменних стовпців в лівій і правій частинах матриці А);

3)Заміна рядка сумою цього і будь-якого іншого рядка (або та ж сама сума однойменних стовпців в лівій і правій частинах матриці А);

Ділення двох матриць.

Дію ділення можна замінити дією множення на обернену матрицю

A B = A * В-1

PROGRAM povorot; {Поворот матриці }

USES CRT;

CONST

N=3;

TYPE

S=ARRAY[1..N,1..N]OF REAL;

SS=ARRAY[1..N,1..N]OF REAL;

VAR

S1:S;S2:SS;M,i,j:INTEGER;

BEGIN

FOR i:=1 TO N DO

BEGIN

FOR j:=1 TO N DO

BEGIN

READ(S1[i,j]); {Ввід матриці}

END;

END;

WRITE('Vvedit kut povorotu');

READ(M); {Ввід кута повороту}

CASE M OF

90:BEGIN {Поворот матриці на 90°}

FOR i:=1 TO N DO

FOR j:=1 TO N DO

S2[I,J]:=S1[N-J+1,I];

FOR i:=1 TO N DO

FOR j:=1 TO N DO

WRITELN(S2[i,j]);

END;

180: BEGIN {Поворот матриці на 180°}

FOR I:=1 TO N DO

FOR J:=1 TO N DO

S2[I,J]:=S1[N-I+1,N-J+1];

FOR I:=1 TO N DO

FOR J:=1 TO N DO

WRITELN(S2[I,J]);

END;

270: BEGIN {Поворот матриці на 270°}

FOR I:=1 TO N DO

FOR J:=1 TO N DO

S2[I,J]:=S1[J,N-I+1];

FOR I:=1 TO N DO

FOR J:=1 TO N DO

WRITELN(S2[I,J]); {Вивід результату}

END; END;

END.

Program Suma; {Сума двох матриць}

Const dim1=20;

dim2=40;{dim2=2*dim1}

Type ar1=array[1..dim1,1..dim2] of real;

ar2=array[1..dim1,1..dim2] of real;

ar3=array[1..dim1,1..dim2] of real;

Var i,j,n,m:integer;

A:ar1;

B:ar2;

C:ar3;

Begin

write('Введіть розмірність матриці М');

readln(n,m); {Ввід розмірності матриць }

write('Введіть матрицю М');

For i:=1 to n do

For j:=1 to m do

read(A[i,j]); {Ввід першої матриці}

write('Введіть матрицю М');

For i:=1 to n do

For j:=1 to m do

read(B[i,j]); {Ввід другої матриці}

For i:=1 to n do

For j:=1 to m do

C[i,j]:=A[i,j]+B[i,j]; {Обчислення суми матриць}

For i:=1 to n do

For j:=1 to m do

writeln(C[i,j]); {Вивід результату}

End.

Результати:

n=2,m=3

1 -4 5 6 -1 0 7 -5 5

0 3 8 6 0 -9 6 3 -1

Program Rizn; {Знаходження різниці двох матриць}

Const dim1=20;

dim2=40;

Type ar1=array[1..dim1,1..dim2] of real;

ar2=array[1..dim1,1..dim2] of real;

ar3=array[1..dim1,1..dim2] of real;

Var i,j,n,m:integer;

A:ar1;

B:ar2;

C:ar3;

Begin

write('Введіть розмірність матриці М');

readln(n,m); {Ввід розмірності матриць}

write('Введіть матрицю М');

For i:=1 to n do

For j:=1 to m do

read(A[i,j]); {Ввід першої матриці}

write('Введіть матрицю М');

For i:=1 to n do

For j:=1 to m do

read(B[i,j]); {Ввід другої матриці}

For i:=1 to n do

For j:=1 to m do

C[i,j]:=A[i,j]-B[i,j]; {Знаходження їх різниці}

For i:=1 to n do

For j:=1 to m do

writeln(C[i,j]); {Вивід результату}

End.

Результати:

n=2,m=3

1 -4 5 6 -1 0 -5 -3 5

0 3 8 6 0 -9 -6 3 17

if k<>i then

For j:=n1 downto 1 do

a[k,j]:=a[k,j]-a[i,j]*a[k,i];end;

For i:=1 to n do

For j:=1 to n do

m[i,j]:=a[i,j+n];

For i:=1 to n do

For j:=1 to n do

writeln(m[i,j]:6:2); {Вивід оберненої матриці}

End.

2 4 3 -0,2 0 0,2

М= 0 -1 -5 М-1 = 0,41 0,18 -0,112

7 4 3 -0,08 -0,24 0,02

Program Dobutok; {Множення числа на матрицю}

Const dim1=20;

dim2=40;{dim2=2*dim1}

Type ar1=array[1..dim1,1..dim2] of real;

ar2=array[1..dim1,1..dim2] of real;

Var i,j,n,m:integer;

A:ar1; C:ar2;

r:real;

Begin

write('Введіть число');

readln(r); {Ввід числа}

write('Введіть розмірність матриці М');

readln(n,m); {Ввід розмірності матриці}

write('Введіть матрицю М');

For i:=1 to n do

For j:=1 to m do

read(A[i,j]); {Ввід матриці}

For i:=1 to n do

For j:=1 to m do

C[i,j]:=A[i,j]*r; {Множення матриці на число}

For i:=1 to n do

For j:=1 to m do

writeln(C[i,j]); {Вивід результату}

End.

Резуьтати:

r=5 n=3,m=2

-1 2 -5 10

M= 3 5 C= 15 25

4 -2.5 20 -12.5

Program obernena; {Знаходження оберненої матриці}

Const dim1=20;

dim2=40;{dim2=2*dim1}

Type ar=array[1..dim1,1..dim1] of real;

ar1=array[1..dim1,1..dim2] of real;

Var i,j,k,n1:integer; n:integer;Var m:ar;e:real;

t,s:real;

a:ar1;

Begin

readln(e); {Ввід точності обчислень}

write('Введіть розмірність матриці М');

readln(n); {Ввфд розмірності квадратної матриці}

write('Введіть матрицю М');

For i:=1 to n do

For j:=1 to n do

read(m[i,j]); {Ввід матриці}

n1:=2*n;

For i:=1 to n do

For j:=1 to n1 do

if j<=n then a[i,j]:=m[i,j]

else if j=n+i then a[i,j]:=1

else a[i,j]:=0;

For i:=1 to n do

begin k:=i;s:=a[i,i];

for j:=i+1 to n do

begin t:=a[j,i];

if abs(s)<abs(t) then begin s:=t;k:=j;end;end;

if abs(s)<e then begin {Знаходження визначника}

write('M-вироджена');Halt end;

For j:=i to n1 do

begin t:=a[k,j];a[k,j]:=a[i,j];a[i,j]:=t/s;end; {Знаходження елементів оберненої }

For k:=1 to n do {матриці}

рrgram dob_mas;

Const dim1=30;

dim2=40;

dim3=30;

Type ar1=array[1..dim2,1..dim1] of real;

ar2=array[1..dim3,1..dim2] of real;

ar3=array[1..dim1,1..dim3] of real;

Var i,j,k,l,n,m:integer;

A:ar1;

B:ar2;

C:ar3;

Begin

write('Введіть розмірність матриці М');

readln(n,m,l);

write('Введіть матрицю А');

For i:=1 to n do

For j:=1 to m do

read(A[i,j]);

write('Введіть матрицю В');

For i:=1 to l do

For j:=1 to n do

read(B[i,j]);

For i:=1 to m do

For j:=1 to l do

For k:=1 to n do

C[i,j]:=C[i,j]+A[k,i]*B[j,k];

For i:=1 to m do

For j:=1 to l do

writeln(C[i,j]);

End.

Результати:

n=2,m=2,l=2,

1 2 3 4

3 4 1 2

рrogram dilennya; {Ділення двох матриць}

Const dim1=20;

dim2=40;{dim2=2*dim1}

Type ar1=array[1..dim1,1..dim1] of real;

ar2=array[1..dim1,1..dim1] of real;

ar3=array[1..dim1,1..dim2] of real;

ar4=array[1..dim1,1..dim2] of real;

Var i,j,k,n1:integer; n:integer; M:ar3;e:real;

t,s:real;

A:ar1;B:ar2;c:ar4;

Begin

readln(e); {Знаходження оберненої матриці }

write('Введіть розмірність матриці М');

readln(n);

write('Введіть матрицю M');

For i:=1 to n do

For j:=1 to n do

read(M[i,j]);

write('Введіть матрицю B');

For i:=1 to n do

For j:=1 to n do

read(B[i,j]);

n1:=2*n;

For i:=1 to n do

For j:=1 to n1 do

if j<=n then a[i,j]:=m[i,j]

else if j=n+i then a[i,j]:=1

else a[i,j]:=0;

For i:=1 to n do

begin k:=i;s:=a[i,i];

for j:=i+1 to n do

begin t:=a[j,i];

if abs(s)<abs(t) then begin s:=t;k:=j;end;end;

if abs(s)<e then begin

write('M- вироджена');Halt end;

For j:=i to n1 do

begin t:=a[k,j];a[k,j]:=a[i,j];a[i,j]:=t/s;end;

For k:=1 to n do

if k<>i then

For j:=n1 downto 1 do

a[k,j]:=a[k,j]-a[i,j]*a[k,i];end;

For i:=1 to n do

For j:=1 to n do

m[i,j]:=a[i,j+n];

For i:=1 to n do

For j:=1 to n do

For k:=1 to n do

C[i,j]:=C[i,j]+B[k,i]*M[j,k]; {Множення матриці на обернену}

For i:=1 to n do

For j:=1 to n do

writeln(C[i,j]:6:2); {Вивід результату}

End.

Результати:

n=3


1 2 3 1 2 3

M= 4 5 6 B= 4 5 6

7 8 9 7 8 9


1 0 0

C= 0 1 0

0 0 1

Початок


Ввід n,m


i=1,n


j=1,m


Ввід А[i,j]


i=1,n


j=1,m


Ввід B[i,j]


i=1,n


j=1,m


C[i,j]=A[i,j]+B[i,j]


i=1,n


j=1,m


Вивід С[i,j]


Кінець


Початок


Ввід n,m


i=1,n


j=1,m


Ввід А[i,j]


i=1,n


j=1,m


Ввід B[i,j]


i=1,n


j=1,m


C[i,j]=A[i,j]-B[i,j]


i=1,n


j=1,m


Вивід С[i,j]


Кінець

Початок


Ввід n,m,l


i=1,n


j=1,m


Ввід А[i,j]


i=1,l


j=1,n


Ввід B[i,j]


i=1,m


j=1,l


k=1,n


C[i,j]=С[i,j]+А[k,i]*В[j,k]


i=1,m


j=1,l


Вивід С[i,j]


Початок


Ввід e,n


i=1,n


j=1,n


Ввід M[i,j]


n1=2*n


i=1,n


j=1,n


так j=n ні


a[i,j]=m[i,j] так j=n+1 ні


a[i,j]=1 a[i,j]=0


i=1,n


k=i s=a[i,i]

j=1,n


t=a[j,i]


s < t так


s=t k=j


s < e так М-вироджена


j=i,n1

t=a[k,j] a[k,j]=a[i,j] a[i,j]=t/s


k=1,n


k<>i


j=n1,1


a[k,j]=a[k,j]-a[i,j]*a[k,i]


i=1,n


j=1,n


M[i,j]=A[i,j=m]


i=1,n


j=1,n


Вивід M[i,j]


Кінець

Початок


Ввід e,n


i=1,n


j=1,n


Ввід M[i,j]


n1=2*n


i=1,n


j=1,n


так j=n ні


a[i,j]=m[i,j] так j=n+1 ні


a[i,j]=1 a[i,j]=0


i=1,n


k=i s=a[i,i]

j=1,n


t=a[j,i]


s < t так


s=t k=j


s < e так М-вироджена


j=i,n1

t=a[k,j] a[k,j]=a[i,j] a[i,j]=t/s


k=1,n


k<>i


j=n1,1


a[k,j]=a[k,j]-a[i,j]*a[k,i]


i=1,n


j=1,n


M[i,j]=A[i,j=m]


i=1,n


j=1,n


k=1,n


C[i,j]=С[i,j]+B[k,i]*M[j,k]


i=1,n


j=1,n


Вивід С[i,j]


Кінець

Початок


Ввід n


i=1,n


j=1,n


Ввід S1[i,j]


Ввід М


М=90 ° M=180 ° M=270 °


i=1,n i=1,n i=1,n


j=1,n j=1,n j=1,n


S2[i,j]=S1[n-j+1,i] S2[i,j]=S1[n-i+1,n-j+1] S2]i,j]=S1[j,n-i+1]


i=1,n


j=1,n


Вивід S2[i,j]


Кінець

Program kursov;

type E=ARRAY [1..3,1..3] of real;

var A,B,C,S:E;

f,a1,b1:real;

t:integer;

mass:char;

procedure INPUT (mass:char; var A:E);

var x,y,n:integer;

begin

writeln ('‚ўi¤ Ґ«Ґ¬Ґ­вiў ¬ бЁўг ',mass);

for y:=1 to 3 do

begin

for x:=1 to 3 do

read (A[x,y]);

end;

end;

procedure SUMM (A,B:E; var S:E);

var x,y:integer;

begin

for y:=1 to 3 do

for x:=1 to 3 do

S[x,y]:=A[x,y]+B[x,y];

end;

procedure SUB (A,B,S:E; var C:E;b2:real);

var x,y,i:integer;

begin

SUMM (A,B,S);

write ('Њ бЁў C');

for y:=1 to 3 do

begin

writeln;

for x:=1 to 3 do

begin

C[x,y]:=0;

for i:=1 to 3 do

C[x,y]:=C[x,y]+(S[i,x]*B[i,y]);

write (C[x,y]:7:2);

if (x=1) AND (y=1) then b2:=C[x,y]

else

if C[x,y]<b2 then b2:=C[x,y];

end;

end;

writeln;

writeln ('Њi­i¬ «м­Ё© Ґ«Ґ¬Ґ­в ¬ ваЁжi ‘ у ',b2:7:2);

end;

begin

mass:='A';

INPUT (mass,A);

mass:='B';

INPUT (mass,B);

SUB (A,B,S,C,b1);

writeln (' ’ Ў«Ёжп §­ зҐ­м ¤«п § ¤ ­®х дг­Єжiх');

writeln (' t f');

for t:=1 to 50 do

begin

if t>40 then a1:=0.2

else

a1:=0.11;

f:=SIN(a1*t)-EXP(2*a1*t)+b1;

writeln(t:8,f:16:4);

end;

end.

Початок


Ввід n,m


i=1,n


j=1,m


Ввід А[i,j]


i=1,n


j=1,m


Ввід B[i,j]


i=1,n


j=1,m


S[i,j]=A[i,j]+B[i,j]


i=1,m


j=1,l


k=1,n


C[i,j]=С[i,j]+А[k,i]*В[j,k]


i=1,n


j=1,m


Вивід С[i,j]


так х=1,y=1 ні


b2=C[x,y]


так C[x,y]<b2 ні

b2=C[x,y]


Вивід b2


Кінець

Задача.

Надрукувати порядково матрицю С і її мінімальний елемент.

Для вирахування матриці С використати стандартну підпрограму додавання матриць і складену підпрограму множення матриць.

1,2 0,7 2,6 4,5 -6,8 -1,2

А= 3,3 0,4 2,0 В= 3,8 0,5 0,8

1,7 1,5 -0,2 1,2 0,6 0,25


-30,61 23,73 10,62

С= -36,09 -21,05 -6,26

-12,68 6,68 3,34