Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приклад 15.2

Приклад 15.2.

Задано дві матриці розмірності (3х3). Визначити максимальні елементи в кожній з матриць та поміняти їх місцями. Для визначення максимальних елементів та їх перестановки використати процедури.

Вважати, що в кожній матриці тільки один максимальний елемент.

SWAP
T=AX,Y
AX,Y=Bm,n
Bm,n=T
RETURN
i=1,m
j=1,m
MAX=M11.1
MAX M
RETURN
MAX=M1i,j
C=i;d=j
Max<M1i,j
F
T

 

 

Кінець
Початок
INPUTMATR (Matr1)
INPUTMATR (Matr2)
MAXM(Matr1)
SWAP(Matr1,Matr2)
MAXM(Matr2)
OUTPUTMATR(Matr1)
OUTPUTMATR(Matr2)

 

 


Розділ об’яв програми

program perestanovka_max;

uses crt;

const n=3; m=3;

type MATR=array[1..n,1..m] of real;

var x,y,k,l,i,j:integer;

A,B:MATR; f,s:text; maxA,maxB:real;

 

procedure swap(x,y,m,n:integer;var A,B:MATR);

var T:real;

begin T:=A[x,y];

A[x,y]:=B[m,n];

B[m,n]:=T; end;

 

procedure maxm(M1:MATR;

var c,d:integer; var max:real);

var i,j:integer;

begin max:=M1[1,1];

for i:=1 to n do

for j:=1 to m do

if max <= M1[i,j] then begin max:=M1[i,j]; c:=i;d:=j; end; end;

Розділ інструкцій

begin assign(f,'matr10.pas');reset(f);

assign(s,'matr01.pas'); rewrite(s);

writeln(s,'Матрица А: ');

writeln(s); for i:=1 to n do begin

for j:=1 to m do begin

read(f,A[i,j]);write(s,A[i,j]:6:1);end;

writeln(s);end;

 

writeln(s,'Матрица В:'); writeln(s);

for i:=1 to n do begin

for j:=1 to m do begin

read(f,B[i,j]);write(s,B[i,j]:6:1);end;

writeln(s);end; writeln(s);

maxm(A,x,y,maxA); maxm(B,k,l,maxB);

swap(x,y,k,l,A,B);

 

writeln(s,'Матриця transform А: '); writeln(s);

for i:=1 to n do begin

for j:=1 to m do begin

write(s,A[i,j]:6:1);end; writeln(s);end;

writeln(s,'Матриця transform В:');

for i:=1 to n do begin

for j:=1 to m do begin

write(s,B[i,j]:6:1);end;

writeln(s);end; close(s); end.

Файл з даними матриці А

12 33 45

19 3 107

48 65 11

 

Файл з даними матриці А

124 56 78

45 5 99

76 65 88

 

Файл результатів

Матрица А:

12.0 33.0 45.0

19.0 3.0 107.0

48.0 65.0 11.0

 

Матрица А: transform А:

12.0 33.0 45.0

19.0 3.0 124.0

48.0 65.0 11.0

Матрица В:

124.0 56.0 78.0

45.0 5.0 99.0

76.0 65.0 88.0

1.0700000000E+02 2 3

1.2400000000E+02 1 1

Матрица В: transform В

107.0 56.0 78.0

45.0 5.0 99.0

76.0 65.0 88.0

Задано дві матриці розмірності (5х5). Обчислити суму елементів двох матриць та добуток матриці на число.

Початок
Inputmatrix (Matrix1)
InputMatrix (Matrix2)
SumMatrix(Matrix1,Matrix2,Result)
OutputMatrix(Result)
Введ. N
OutputMatrix (Result)
MultMatrix(Matrix1,N,Result)
Кінець
SumMatrix(M1,M2)
ResultI,J=M1I,J+M2I,J
I=1..Siz
J=1..Size
RETURN  
MultMatrix (M,N,Result)
ResultI,J=M1I,J *N
RETURN
I=1..Size  
J=1..Size

 

 

InputMatrix(M)
I=1..Size
J=1..Size
RETURN
Введ. MI,J
OutputMatrix(M)
I=1..Size
J=1..Size
RETURN
Вивед. MI,J

 


Розділ об’яв програми

Глобальні змінні і об’ява типу

program Matrixes;

const Size=5;

type

TMatrix=array[1..Size,1..Size] of integer;

Var Matrix1, Matrix2, Result: TMatrix;

 

Процедура введення елементів двовимірного масиву

procedure InputMatrix(var M:TMatrix);

var I, J: integer; N: integer;

begin for I:=1 to Size do

for J:=1 to Size do begin

Write('[',I,',',J,']=');

Readln(M [I,J]); end;

end;

 

Процедура виведення елементів двовимірного масиву

procedure OutputMatrix(M: TMatrix);

var I,J: integer;

begin for I:=1 to Size do begin

for J:=1 to Size do

Write(M[I,J]:5);

Writeln; end; end;

 

Процедура обчислення суми елементів двовимірного масиву

procedure SumMatrix(M1,M2: TMatrix; var Result: TMatrix);

var I,J: integer;

begin for I:=1 to Size do

for J:=1 to Size do

Result[I,J]:=M1[I,J]+M2[I,J];

end;

Процедура обчислення добутку елементів двовимірного масиву та змінної

procedure MultMatrix(M: TMatrix; N: integer; var Result: TMatrix);

var I,J: integer;

begin for I:=1 to Size do

for J:=1 to Size do

Result[I,J]:=M[I,J]*N;

end;

 

Розділ інструкцій програми

begin

Writeln('Введіть першу матрицю:'); InputMatrix(Matrix1);

Writeln('Введіть другу матрицю:'); InputMatrix(Matrix2);

SumMatrix(Matrix1, Matrix2, Result);

Writeln('Сума матриць дорівнює'); OutputMatrix(Result);

 

Write('Введіть число:'); Readln(N);

MultMatrix(Matrix1,N,Result);

Writeln(' Добуток першої матриці на число: ');

OutputMatrix(Result);

end.

<== предыдущая лекция | следующая лекция ==>
Процедура впорядкування | Перший байт рядка
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 252; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.