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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 21:49   #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; 18.04.2010 в 21:51.
leraaa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с двумерным массивом SaimaN Помощь студентам 0 16.03.2010 15:23
Помогите с двумерным массивом в С++ Vultar Помощь студентам 11 12.11.2009 18:28
Задача с двумерным массивом. svobodys Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2008 18:09
Задача с двумерным массивом. svobodys Помощь студентам 3 13.12.2008 15:44
задача с двумерным массивом Ras Помощь студентам 1 22.12.2007 19:58