Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Помогите с матрицей 
V
    Опции темы
volnorez
  Дата 12.10.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 22.9.2007

Репутация: нет
Всего: нет



Помогите пожалуйста с такой задачей.  я уже просто не знаю что делать smile 
В двумерном массиве 4х4 найти сумму самых больших элементов в столбце.
кто знает как это сделать если можна с коментариями
PM MAIL   Вверх
kemiisto
  Дата 12.10.2008, 18:25 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 16
Всего: 160



Код

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 Но, уж ладно...

Это сообщение отредактировал(а) kemiisto - 12.10.2008, 18:49


--------------------
PM MAIL WWW GTalk Jabber   Вверх
volnorez
Дата 12.10.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 22.9.2007

Репутация: нет
Всего: нет



теперь понял Большое спасибо!!!!
PM MAIL   Вверх
Alexeis
Дата 12.10.2008, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



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

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.