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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2009, 18:20   #1
PSix1_73
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 30
По умолчанию Задача о назначениях на Pascal'е

Мастера Pascal'я помагите решить задачу. Есть квадратная матрица
1строка: 3 4 2 2 1,
2строка:4 5 3 1 3,
3строка:4 3 1 1 1,
4строка:3 1 2 2 2,
5строка:0 0 0 0 0.
Необходимо что-бы прога находила максимальное назночение т.е. должны быть выбраны числа так что бы в каждой строке и столбце было выбрано по одному числу и сумма этих чисел была максимально возможной. Ответ: 13. Как это сделать? Буду очень-очень благодарен!
PSix1_73 вне форума Ответить с цитированием
Старый 21.05.2009, 17:53   #2
PSix1_73
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 30
По умолчанию

Неужели ни кто не знает как это сделать! Я и алгоритм решения знаю, если это поможет напишите, я его выложу. Просто для меня паскаль это очень сложно!
PSix1_73 вне форума Ответить с цитированием
Старый 22.05.2009, 14:50   #3
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Выложи алгоритм. Посмотрим.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 22.05.2009, 14:56   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
PSix1_73
Ну если навскидку:
Код:
for i:=1 to 5 do begin
 for j:=1 to 5 do
  if массив[i,j]>max then max:=массив[i,j];
 Сумма:=Сумма+max;
end;   
Ну и сумму выводи
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2009, 23:08   #5
PSix1_73
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 30
По умолчанию

Stilet, как я понимаю в твоём коде берётся элемент, если он больше максимального тогда переменной max присваевается его значение и складывается в сумму, если я всё правильно понял это не совсем то. Алгорит примерно такой: берётся первая строка массива и суммируются её элементы, сумма заносится в переменную(допустим x), потом берётся первые четыре элемента первой строки и пятый элемент второй, так же суммируется и сравнивается с x, если сумма больше x то она записывается в x. Далее берётся четыре элемента первой строки и пятый третей (как я понимаю это должно делатся циклом) и т.д. я думаю алгоритм понятен.
PSix1_73 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача о назначениях -- Delphi7 NeAlSe Помощь студентам 2 04.06.2009 00:45
статические массивы в pascal'е ? golerka Помощь студентам 1 19.05.2009 21:16
Повернуть двумерный массив на 180 градусов - задача на Pascal'е Sanakan Помощь студентам 7 15.12.2008 00:16