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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2013, 23:00   #1
vralayala
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 16
Восклицание Двумерный массив. Определить минимальную сумму элементов строки двумерного массива

Определить минимальную сумму элементов строки двумерного массива.
vralayala вне форума Ответить с цитированием
Старый 22.09.2013, 23:36   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Что вы уже сделали самостоятельно?
Вадим Мошев вне форума Ответить с цитированием
Старый 22.09.2013, 23:48   #3
vralayala
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 16
По умолчанию

Код:
program kony;
const k=10;
const l=10;
var a:array[1..k,1..l] of integer;
i,j,s:integer;
begin
s:=0;
for i:=1 to 10 do begin
for j:=1 to 10  do begin
a[i,j]:=0+random(9);
write(a[i,j],'  ');
end;
writeln;
end;

end.
дальше, к сожалению ,не могу придумать

Код:
program kony;
const k = 10;
const l = 10;
var a: array[1..k, 1..l] of integer;
  i, j, s, min: integer;
begin
  for i := 1 to 10 do begin
    for j := 1 to 10 do begin
      a[i, j] := 0 + random(9);
      write(a[i, j], ' ');
    end;
    writeln;
  end;
  for i := 1 to k do begin
    s := 0;
    for j := 1 to l do s := s + a[i, j];
    writeln('Сумма ', i, '-й строки', s);
    if s <
  end;
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Stilet; 23.09.2013 в 12:12.
vralayala вне форума Ответить с цитированием
Старый 23.09.2013, 08:45   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, в целом нормально.
дальше используем стандартную процедуру поиска минимального значения.
например, так:
Код:
begin
  for i := 1 to 10 do begin
    for j := 1 to 10 do begin
      a[i, j] := 0 + random(9);
      write(a[i, j], ' ');
    end;
    writeln;
  end;
  min := -1;  {присвоим число, которого заведомо не может являться суммой строки при данном заполнении. Как вариант, можно ещё использовать MaxInt}
  for i := 1 to k do begin
    s := 0;
    for j := 1 to l do s := s + a[i, j];
    writeln('Сумма ', i, '-й строки', s);
    if  min < 0 then min := s  {если ещё ни разу не запоминали минимум, сделаем это}
    else
      if s < min then min := s;
  end;
  WriteLn('Минимальная сумма равна ', min);
  Readln
end.
ещё вариант (c MaxInt)
Код:
begin
  for i := 1 to 10 do begin
    for j := 1 to 10 do begin
      a[i, j] := 0 + random(9);
      write(a[i, j], ' ');
    end;
    writeln;
  end;
  min := MaxInt;  {присвоим число, которого заведомо не может являться суммой строки при данном заполнении - максимально возможное целое значение MaxInt}
  for i := 1 to k do begin
    s := 0;
    for j := 1 to l do s := s + a[i, j];
    writeln('Сумма ', i, '-й строки', s);
    if s < min then min := s;
  end;
  WriteLn('Минимальная сумма равна ', min);
  Readln
end.

ещё вариант - с отдельным подсчётом суммы 1-й строки
Код:
begin
  for i := 1 to 10 do begin
    for j := 1 to 10 do begin
      a[i, j] := 0 + random(9);
      write(a[i, j], ' ');
    end;
    writeln;
  end;

  {найдём сумму элементов 1-й строки}
  s := 0;
  for j := 1 to l do s := s + a[1, j];
  min := s;  {изначально будем считать сумму элементов первой строки минимальным значением}
  for i := 2 to k do begin  {начиная со 2-й строки массива}
    s := 0;
    for j := 1 to l do s := s + a[i, j];
    writeln('Сумма ', i, '-й строки', s);
    if s < min then min := s;
  end;
  WriteLn('Минимальная сумма равна ', min);
  Readln
end.


ну и ещё один вариант (используем счётчик цикла i для определения необходимости иницилизировать минимальное значение:
Код:
begin
  for i := 1 to 10 do begin
    for j := 1 to 10 do begin
      a[i, j] := 0 + random(9);
      write(a[i, j], ' ');
    end;
    writeln;
  end;
  for i := 1 to k do begin  
    s := 0;
    for j := 1 to l do s := s + a[i, j];
    writeln('Сумма ', i, '-й строки', s);
    if i=1  then min := s
    else 
       if s < min then min := s;
  end;
  WriteLn('Минимальная сумма равна ', min);
  Readln
end.
изучайте, сравнивайте, выбирайте наиболее понятный/подходящий!


p.s. кстати, крайний вариант (использование переменной счётчика цикла в качестве признака) не рекомендую в качестве практического решения - могут быть неприятные сюрпризы при использовании некторых оптимизирующих компиляторов....


p.p.s.
у Вас в коде некрасиво заполняется массив! Заполнение массива тоже нужно сделать зависимым от констант!!!
вот так:
Код:
  for i := 1 to k do begin
    for j := 1 to l do begin
      a[i, j] := 0 + random(9);
      write(a[i, j], ' ');
    end;
    writeln;
  end;

Последний раз редактировалось Serge_Bliznykov; 23.09.2013 в 08:51.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив четырехбайтовых чисел, содержащий нулевые элементы. Определить минимальную длину последовательности ненулевых элементов smile741 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 03.04.2013 01:26
Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму programmerr Общие вопросы C/C++ 7 16.02.2013 16:40
Дан двумерный массив [4..7]. Hайти количество и сумму квадpатов положительных элементов массива, имеющих четные номера в строках Oraner Паскаль, Turbo Pascal, PascalABC.NET 3 04.11.2012 21:22
Паскаль. Найти сумму наибольших элементов в строках двумерного массива Женька Good Помощь студентам 4 17.12.2011 19:52
Вычислить сумму элементов заштриховонной области двумерного массива на заданной глубине Кирилл Руммо Помощь студентам 2 19.11.2009 05:15