Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Помогите с матрицей


Автор: volnorez 12.10.2008, 18:11
Помогите пожалуйста с такой задачей.  я уже просто не знаю что делать smile 
В двумерном массиве 4х4 найти сумму самых больших элементов в столбце.
кто знает как это сделать если можна с коментариями

Автор: kemiisto 12.10.2008, 18:25
Код

program Project1;

{$APPTYPE CONSOLE}

var
  A: array[1..4, 1..4] of Integer;
  i, j, S, max: Integer;

begin
  //Заполняем массив случайными числами
  Randomize;
  for i := 1 to 4 do
    for j := 1 to 4 do
      A[i, j] := Random(100);
  //Выводим массив на экран
  for i := 1 to 4 do
  begin
    Writeln;
    for j := 1 to 4 do
      Write(A[i, j]:3);
  end;
  Writeln;
  //Обнуляем сумму
  S := 0;
  //В цикле по j будем:
  //- выводить значение очередного максимума в столбце (для контроля)
  //- и прибавлять его к сумме
  for j := 1 to 4 do
  begin
    max := A[1, j];
    for i := 2 to 4 do
      if A[i, j] > max then
        max := A[i, j];
    Write(max, ' ');
    S := S + max;
  end;
  Writeln;
  //Выводим сумму
  Writeln(S);
  Readln;
end.


Ключевой момент:
Код

  for j := 1 to 4 do
  begin
    max := A[1, j];
    for i := 2 to 4 do
      if A[i, j] > max then
        max := A[i, j];
    Write(max, ' ');
    S := S + max;
  end;

Смысл таков: внешний цикл (индекс j) - пробежит по всем столбцам, найдёт максимальный элемент, выведет его для контроля и добавит к сумме. Внутренний цикл (индекс i) нужен для поиска максимального элементам в j-ом столбце. Сначала переменной max присваивается значение элемента A[1, j] (т.е. элемента, находящегося на пересечении 1 строки и j-ого столбца). Затем это значение сравнивается в цикле по i от 2 до 4 со значение A[i, j]  (т.е. со значениями элементов, находящихся на пересечении i-ой строки и j-ого столбца). Таким образом и находится максимум в каждом столбце.

P.S. Сижу в очередной раз пересматривую бессмертную трилогию Братьев Вачовски и тут тема с таким заголовком ("Помогите с матрицей") smile. Чуть не поперхнулся. Можно было бы написать в ответ: "Следуй за белым кроликом!". smile Но, уж ладно...

Автор: volnorez 12.10.2008, 20:15
теперь понял Большое спасибо!!!!

Автор: Alexeis 12.10.2008, 20:31
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)