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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2007, 12:07   #1
forumu
Пользователь
 
Регистрация: 19.11.2007
Сообщений: 36
По умолчанию Delphi Двумерный массив

Здравствуйте. Как решить такую задачу?

Дан двумерный массив размером n*m, заполненный случайным образом.

1. Заменить отрицательный элемент каждого столбца нулем

2. Вставить после каждого столбца, содержащего максимальный по модулю элемент, строку из нулей.

3. Удалить из него каждую строку, содержащую элемент, кратный трем

4. Поменять местами первый и последний столбцы.
forumu вне форума Ответить с цитированием
Старый 24.12.2007, 12:40   #2
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Вы уверены в правильности условий? Может я не понимаю, но как можно после столбца вставить строку?
Simply-Art вне форума Ответить с цитированием
Старый 24.12.2007, 12:43   #3
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию

А сами до чего додумались?
#define QUESTION bb || !bb
Vedrus вне форума Ответить с цитированием
Старый 24.12.2007, 13:58   #4
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

вот основной код:
Код:
program mn;

{$APPTYPE CONSOLE}
uses
  SysUtils;
var
  a:array[1..10,1..10] of integer;
  m,n:integer;

{Вставлять сюда}
 
procedure vvod;
var i,j:integer;
begin
  randomize;
  read(n,m);
  for i:=1 to n do
  for j:=1 to m do    a[i,j]:=random(71)-30;
  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;
{pr1}
{pr3}
{pr4}
vivod;
end.
1)
Код:
procedure pr1;
var i,j:integer;
begin
  for i:=1 to n do
  for j:=1 to m do if a[i,j]<0 then a[i,j]:=0;
  end;
3)
Код:
function poisk(nn:integer):boolean;
var d:longint;
begin
  poisk:=false;
  for d:=1 to m do if a[nn,d] mod 3=0 then begin
      poisk:=true;
      break;
      end;
  end;

procedure pr3;
var i,j1,j2:integer;
begin
  i:=1;
  while i <= n do begin
      if poisk(i)=true then begin

          for j1:=i to n do
          for j2:=1 to m do a[j1,j2]:=a[j1+1,j2];
          dec(n);
          end
      else inc(i);
  end;
end;
4)
Код:
procedure pr4;
var
i,j,x:integer;
begin
  for i:=1 to m do begin
      x:=a[1,i];
      a[1,i]:=a[n,i];
      a[n,i]:=x;
      end;
  end;
north вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Delphi Wise Помощь студентам 5 24.12.2007 23:10
Delphi Двумерный массив forumu Помощь студентам 1 23.12.2007 02:04