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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2014, 20:21   #1
sasha_14-88
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 48
Подмигивание двумерный массив, нужна помощь!

дана прямоугольная матрица. Определить номер строки с наименьшей суммой элементов.
sasha_14-88 вне форума Ответить с цитированием
Старый 19.05.2014, 20:34   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

И в чем заключается невозможность решения данной задачи?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 19.05.2014, 21:27   #3
sasha_14-88
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
И в чем заключается невозможность решения данной задачи?
небыло бы сложности, не попросил бы))
sasha_14-88 вне форума Ответить с цитированием
Старый 19.05.2014, 21:52   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Да это понятно. Но вы же не халявщик, верно?
Договор: вы напишете заполнение массива случайными числами, а я все остальное. По рукам?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 19.05.2014, 22:08   #5
sasha_14-88
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Да это понятно. Но вы же не халявщик, верно?
Договор: вы напишете заполнение массива случайными числами, а я все остальное. По рукам?
по рукам, дружище)
var
a:array[0..10,0..10] of integer;
i,j,n,m:integer;
s:string;
begin
For i := 0 to n-1 do
for j := 0 to m-1 do
begin
a[i, j] := random(10);
StringGrid1.Cells[j,i]:=IntToStr(a[i,j]);
end;

end;
sasha_14-88 вне форума Ответить с цитированием
Старый 19.05.2014, 22:45   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Ну, взялся за гуж
Пойду за компьютер
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 19.05.2014, 23:02   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
Код:
{дана прямоугольная матрица. Определить номер строки с наименьшей суммой элементов.}

const
  n=3;
  m=3;
var
  a : array[1..n,1..m] of integer;
  imin,sum,min,i,j : integer;
begin
  For i := 1 to n do
    begin
    for j := 1 to m do
      begin
        a[i, j] := random(10);
        write(a[i,j]:3);
      end;
      writeln;
    end;

  For i :=1 to n do
    begin
    sum:=0;
    min:=sum;
    for j := 1 to m do
        sum:=sum+a[i, j];
      if sum<min then
        begin
          min:=sum;
          imin:=i;
        end;
    end;
    writeln(sum,' ',imin); // исправил
end.

Последний раз редактировалось ZX Spectrum-128; 19.05.2014 в 23:25.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 20.05.2014, 11:30   #8
sasha_14-88
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Код:
Код:
{дана прямоугольная матрица. Определить номер строки с наименьшей суммой элементов.}

const
  n=3;
  m=3;
var
  a : array[1..n,1..m] of integer;
  imin,sum,min,i,j : integer;
begin
  For i := 1 to n do
    begin
    for j := 1 to m do
      begin
        a[i, j] := random(10);
        write(a[i,j]:3);
      end;
      writeln;
    end;

  For i :=1 to n do
    begin
    sum:=0;
    min:=sum;
    for j := 1 to m do
        sum:=sum+a[i, j];
      if sum<min then
        begin
          min:=sum;
          imin:=i;
        end;
    end;
    writeln(sum,' ',imin); // исправил
end.
что то не то выводит и понять не могу почему с присваеваем 0 и выводим имин и сум
sasha_14-88 вне форума Ответить с цитированием
Старый 20.05.2014, 11:58   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

думаю, что обнуление min в цикле - не есть правильно!!!

Цитата:
Код:
For i :=1 to n do
    begin
      sum:=0;
      min:=sum;
      for j := 1 to m do
          sum:=sum+a[i, j];
      if sum<min then  begin
          min:=sum;
          imin:=i;
      end;
    end;
    writeln(sum,' ',imin); // исправил
я бы так рекомендовал изменить и проверить (я не проверял):
Код:
{подсчитаем сумму элементов 1-й строки в переменную min}
min := 0;
for j := 1 to m do
        min:=min+a[1, j];
imin:=1; {пока считаем, что сумма в 1-й строке - минимальна!}

{теперь обработаем остальные строки матрицы}
For i :=2 to n do begin
    sum:=0;
    for j := 1 to m do
        sum:=sum+a[i, j];
     if sum<min then begin
          min:=sum;
          imin:=i;
     end;
  end;
  writeln('Minumm = ',min,' in row ',imin);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.05.2014, 15:42   #10
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Исправил согласно примечаниям Сергея.
Код:
{дана прямоугольная матрица. Определить номер строки с наименьшей суммой элементов.}

const
  n=5;
  m=7;
var
  a : array[1..n,1..m] of integer;
  imin,sum,min,i,j : integer;
begin
  randomize; 
  For i := 1 to n do
    begin
    for j := 1 to m do
      begin
        a[i, j] := random(10)-5;
        write(a[i,j]:3);
      end;
      writeln;
    end;

  {подсчитаем сумму элементов 1-й строки в переменную min}
  min := 0;
  for j := 1 to m do
    min:=min+a[1, j];
  imin:=1; {пока считаем, что сумма в 1-й строке - минимальна!}
  {теперь обработаем остальные строки матрицы}
  For i :=2 to n do
    begin
      sum:=0;
        for j := 1 to m do
          sum:=sum+a[i, j];
      if sum<min then
        begin
          min:=sum;
          imin:=i;
        end;
    end;
  writeln('Minumm = ',min,' in row ',imin);
  readln;
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. написать прогрмму на с++ нужна помощь Анна Джулай Помощь студентам 2 11.05.2015 17:06
Двумерный массив!Нужна подсказка! ТРОЯН=) Паскаль, Turbo Pascal, PascalABC.NET 1 08.12.2008 21:41
Задача Pascal на массив (нужна помощь) STIG_E70 Помощь студентам 4 18.06.2008 20:19
Двухмерный массив (нужна помощь) brit Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 07.05.2007 04:03