Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 23:07   #1
leraaa
 
Регистрация: 18.04.2010
Сообщений: 6
По умолчанию матрица, массив, нахождение нод

Помогите, пожалуйста, с задачей!

Описать тип-объект MATRIX (матрица произвольной размерности M*N) и его методы: ввод матрицы; вывод матрицы; определение минимального элемента среди отрицательных элементов матрицы. Описать тип и методы его потомка MATR (методы: определение наибольшего общего делителя элементов матрицы; определение максимального среди неповторяющихся элементов матрицы (замена метода)).

Вот код, что я написала, помогите с определением наибольшего общего делите (нод), пожалуйста, и с определением максимального среди неповторяющихся элементов матрицы (для этого код я написала, но он почему-то не работает)!

Код:
program main;
uses crt;
type tm=array[1..10,1..10] of integer;
um=^tm;
matrix=object
m,n:integer;
a:um;
constructor init;
procedure min; virtual;
destructor done; virtual;
end;
matr=object(matrix)
maxi:integer;
constructor init1;
procedure nod;
procedure max; virtual;
destructor done; virtual;
end;
constructor matrix.init;
var i,j:integer;
begin
readln(m,n);
getmem(a,2*m*n*2);
for i:=1 to m do
for j:=1 to n do
read (a^[i,j]);
end;
procedure matrix.min;
i,j,min:integer;
f:boolean;
begin
readln(m);
readln(n);
for i:=1 to m do
for j:=1 to n do
read(a^[i,j]);
begin
min:=a^[1,1];
for j:=1 to n do
for i:=1 to m do
begin

if (a^[i,j])<min then
min:=a^[i,j];
end;
begin
f:=true;
for j:=1 to n do
for i:=1 to m do
if min>0 then f:=false;
if f then
writeln(min) else
writeln('net');
end;
end;
destructor matrix.done;
begin
freemem (a,2*m*n*2)
end.
constructor matr.init1;
var i,j: integer;
begin
readln (m,n);
getmem (a,2*m*n*2);
for i:=1 to m do
for j:=1 to n do
read (a^[i,j])
end;
procedure matr.nod;

///код для нахождения НОД///

end.
procedure matr.max;
var i,j,k,l:integer;
b:array[1..100] of integer;
i,j,max,k,d,s,z:integer;
f:boolean;
begin
readln(m);
readln(n);
for i:=1 to m do
for j:=1 to n do
read(a^[i,j]);
s:=0;
for i:=1 to m do
for j:=1 to n do
begin
f:=true;
for i:=1 to m do
for j:=1 to n do
if a^[i,j]=a^[k,z] and (i<>k) or ((i=k) and (j<>z)) then
f:=false;
if not f then begin
s:=s+1;
(b[s]):=(a^[i,j]);
end;
max:=b[s];
for s:=1 to d do begin
f:=true;
if max>b[s+1] then f:=false;
if not f then writeln(max) else writeln('net');
end;
end;
readkey
end.
destructor matr.done;
begin
freemem(a,2*m*n*2)
end;
var r1:matrix; r2:matr;
begin
clrscr;
r1.init;
r1.min;
r2.init1;
r2.nod;
r2.max;
r2.done;
r1.done;
readkey
end.
leraaa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++, одномерный массив, нахождение равных значений CHIFIRp Помощь студентам 13 17.02.2010 12:36
Алгоритм Евклида.Нахождение НОД innaa639 Помощь студентам 11 24.11.2009 00:17
матрица. нахождение строки и столбца giggles Помощь студентам 1 23.11.2009 10:39
Массив и матрица pashun Помощь студентам 1 15.01.2009 16:56
Delphi, матрица, массив… Мага Помощь студентам 3 10.12.2008 23:35