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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2008, 20:22   #1
Angst
Новичок
Джуниор
 
Регистрация: 25.12.2007
Сообщений: 1
Восклицание Работа с массивом: n на n !

Код нужен в консольном приложении под Дельфи 7, начало ниже. Если можно, то немного комментариев.

Дана целочисленная матрица {Aij}i=1...n;j=1..n , n<=100. Если в матрице есть два одинаковых столбца и есть хотя бы один элемент, абсолютная величина которого - простое число, упорядочить строки матрицы по неубыванию суммы модулей элементов. Использовать процедуры и функции!

program lab15;

{$APPTYPE CONSOLE}

uses
SysUtils;

{Для ввода матрицы через random}

Const Nmax=100;
type Tmass=array[1..Nmax]of integer;
Tmatr=array[1..Nmax]of Tmass;
var n,m,min,imin:integer;
a:Tmatr;
b:Tmass;
procedure Input;
var i,j:integer;
begin
write('n=');readln(n);
write('m=');readln(m);
writeln('Ishodnaja matrica');
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(100)-40;
write(a[i,j]:4);
end;
writeln;
end;
readln;
end;

{Ниже нужны функции и процедуры}

begin
{Основной код}
Input;
end.
Angst вне форума Ответить с цитированием
Старый 24.01.2008, 22:14   #2
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

Вот код(вроде работает правильно.):
program lab15;
Код:
{$APPTYPE CONSOLE}
{uses   SysUtils;  }
Const
  Nmax=5;
  b:array[1..25]of integer=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97);
Var
  a:array[1..nmax,1..nmax]of integer;
  c:array[1..nmax]of integer;
  n,m:integer;
  t1,t2:boolean;
procedure vvod;
var i,j:integer;
begin
  assign(input,'input.txt');
  reset(input);
  n:=5;
  m:=5;
  for i:=1 to n do begin
  for j:=1 to m do read(a[i,j]);
  readln
  end;
  close(input);
end;

function srav(m1,m2:integer):boolean;
var i:integer;
begin
srav:=true;
for i:=1 to n do if a[i,m1]<>a[i,m2] then
    begin
        srav:=false;
        break;
    end;
end;

function poisk(n1:integer):boolean;
var i:integer;
begin
poisk:=false;
  for i:=1 to 26 do  if abs(n1)=b[i] then{если абсолютная величина это не модуль числя, тогда 
abs(n1) нужно заменить}
  begin
      poisk:=true;
      break;
  end;
end;

procedure perem(n1,n2:integer);
var i,j,x:integer;
begin
  for i:=1 to m do
  begin
      x:=a[n1,i];
      a[n1,i]:=a[n2,i];
      a[n2,i]:=x;
  end;
end;
  
procedure psort;
var i,j,x:integer;
begin
  for i:=1 to m-1 do
  for j:=i+1 to m do if c[i]>c[j] then begin
  perem(i,j);
  x:=c[i];
  c[i]:=c[j];
  c[j]:=x;
  end;
end;

procedure sort;
var i,j,s:integer;
begin
  for i:=1 to n do
  begin
      s:=0;
      for j:=1 to m do s:=s+abs(a[i,j]);
      c[i]:=s;
  end;
  psort;

  end;

procedure resh;
var i,j:integer;
begin
  t1:=false;
  t2:=false;
  for i:=1 to m do
  for j:=1 to m do
  begin
      if srav(i,j)=true then t1:=true;
      if t1=true then break;
  end;
  for i:=1 to n do
  for j:=1 to m do
  begin
      if poisk(a[i,j])=true then t2:=true;
      if t2=true then break;
  end;
  if (t1=true)and(t2=true) then sort;
end;

procedure vivod;
var
  i,j:integer;
begin
  assign(output,'output.txt');
  rewrite(output);
  for i:=1 to n do
  begin
      for j:=1 to m do write(a[i,j],' ');
      writeln;
  end;
  close(output);
end;

begin
vvod;
resh;
vivod;
end.

Последний раз редактировалось north; 24.01.2008 в 22:44.
north вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с динамическим массивом sand Общие вопросы C/C++ 3 22.08.2008 12:48
работа с массивом begemotikdin Паскаль, Turbo Pascal, PascalABC.NET 2 21.06.2008 21:40
работа с одномерным массивом _Solomon_ Помощь студентам 1 07.06.2007 12:06
Delphi, работа с массивом Skay Помощь студентам 2 05.04.2007 16:50