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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2008, 18:17   #1
Almost456
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 17
По умолчанию Двумерный массив.Поиск столбца сумма,которого равна 0

Задание:
В матрице имеется столбец,сумма элементов которого равна нулю.Необходимо заменить его элементы на значение максимума,найденного в чётных строках.
В задании только подсчитал суммы столбцов, а вот найти столбец и заменить в чётных строках на значение максимума никак.
Короче вот прога:2MASS.TXT
Помогите доделать.
Almost456 вне форума Ответить с цитированием
Старый 30.11.2008, 18:29   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
var a:array[1..4,1..4]of integer;
    i,j,max,sum,k:integer;

begin
clrscr;
randomize;
for i:=1 to 4 do
 for j:=1 to 4 do
  read(a[i,j]);
for j:=1 to 4 do
 begin
  sum:=0;
  for i:=1 to 4 do
  sum:=sum+a[i,j];
  if sum=0 then k:=j;
 end;
 max:=a[2,1];
 for i:=2 to 4 do
  if i mod 2=0 then
    for j:=1 to 4 do
     if a[i,j]>max then max :=a[i,j];
for i:=1 to 4 do
 a[i,k]:=max;
for i:=1 to 4 do
begin
 for j:=1 to 4 do
  write(a[i,j]:3);
writeln;
end;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 30.11.2008, 18:56   #3
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Сообщение

мой вариант решения:
Код:
var a:array[1..4,1..4] of integer;
    i,j,n,m,sum,nomer,maks:integer;
begin
    readln(n,m);
    for i:=1 to n do
     for j:=1 to m do
       begin
        write('Vvedite a[',i,',',j,']= ');
        readln(a[i,j]);

       end;

   {Vvod zavershen}

   for i:=1 to n do
    begin
     for j:=1 to m do
      write(a[i,j],' ');
     writeln;
    end;
   readln;
   {Viveli massiv }
   {Teper' ishem nomer stolbca}
   for j:=1 to m do
    begin
    sum:=0;
     for i:=1 to m do
      sum:=sum+a[i,j];
     if sum=0
      then
       begin
        nomer:=j;
        break;
       end
    end;
   {Maks v chetnih}
   maks:=-32768;
   for i:=1 to n do
    if (i mod 2=0)
      then
       begin
        for j:=1 to m do
        if maks<a[i,j] then
         maks:=a[i,j];
       end;
    {zamena elementov na maks}
    for i:=1 to n do
     a[i,nomer]:=maks;
    {Vivod}
    for i:=1 to n do
    begin
     for j:=1 to m do
      write(a[i,j],' ');
     writeln;
    end;
    readln;
end.
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 30.11.2008, 19:03   #4
Almost456
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 17
По умолчанию

Странно.Заменяет только 4 строку,а на 2 не обращает внимания.
Almost456 вне форума Ответить с цитированием
Старый 30.11.2008, 20:18   #5
Almost456
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 17
По умолчанию

Нет.Поиск вообще неправильный.Как я понял ваши программы ищут не строки а столбцы и при чём во всех строках,а надо в чётных строках.
Almost456 вне форума Ответить с цитированием
Старый 30.11.2008, 23:43   #6
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

ты что?
for i:=1 to n do
if (i mod 2=0) {проверка на четность строки}
then
begin
for j:=1 to m do
if maks<a[i,j] then
maks:=a[i,j];
end;
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца ruslan09-93 Помощь студентам 2 15.11.2008 20:26
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34
одномерный массив, элементы которого собраны в возрастающем порядке из двух начальных массивов Scudetto Общие вопросы C/C++ 7 21.10.2007 20:46
сумма столбца zetrix БД в Delphi 1 01.11.2006 15:42