Воскресенье, 05.01.2025
Pascal 4 All
Меню сайта
Категории каталога
Одномерные массивы [4]
Задачи на работу с одномерными массивами
Матрицы [5]
Двумерные массивы
Сортировка [0]
Варианты сортировки
Динамическое программирование [1]
Программирование динамических структур. Использование HEAP
Наш опрос
А вы знали, что кликнув на обьявление в правом блоке раз в день Вы поможете сайту?
Всего ответов: 332

Главная » Статьи » Массивы » Матрицы

  


Сокровищница. По заданной карте нужно найти один из допустимых путей, обеспечивающих наибольшую возможную сумму сокровищ. Если есть нескольк

program prz_1;
uses crt;
const
m = 4; {strok}
n = 3; {stolbcov}

type
mas = array[1..m, 1..n] of integer;

var
a, path: mas; {path - puti ko vsem maximumam b[1..n]}
i, j, k,
t, max, s: integer;
b: array[1..n] of integer; {massiv summ maximumov po strokam}

begin
clrscr;
randomize;
{sozdadim massiv}
for i := 1 to m do
for j := 1 to n do
begin
a[i,j] := random(20);
GotoXY(j * 5, i);
write(a[i, j]);
end;
writeln;

{sostavim reshenie postavlenoi zadachi}
for i := 1 to n do {zapolnyaem pervuyu stroku puti prohozhdeniya komnaty}
path[1, i] := i;

for j := 1 to n do {idem ot kazhdogo elementa pervoi stroki}
begin
s := a[1, j];
t := j; {zapominaem predidushie koordinaty po osi X}

for i := 1 to m - 1 do
begin
max := 0;

for k := t - 1 to t + 1 do
begin
if (k = 0) or (k = n + 1) then continue; {propuskaem zapredely}
if a[i + 1, k] > max then {ishem maximum v stroke po dopustimim usloviyam dvizheniya: Z, ZW, ZE}
begin
max := a[i + 1, k];
t := k;
end;
end;
path[i + 1, j] := t;
s := s + max;
{writeln('j= ', j, '; ', i, '# max inline = ', max, '; s= ', s);
readkey;} {statistika, wacko }
end;
{writeln;}
b[j] := s; {zapominaem vse maximumy v resul'tate prohozhdeniya ot kazdogo nachala}
end;

(*for i := 1 to m do {vivodim matricu putei, gde put' idet naprotyazhenii vsego}
begin {stolbca, v koord X matrici komnaty}
writeln;
for j := 1 to n do
write(path[i, j]:5);
end;*) {mozhno i ne nado :-) }

max := 0;
for j := 1 to n do
if b[j] > max then
begin
max := b[j];
t := j;
end;

writeln(#10#13, 'Max = ', max);
write('Path = ');
for i := 1 to m do
write(' ', path[i, t]);

readkey;
end.

Источник:

Категория: Матрицы | Добавил: Pavel (04.04.2008) | Автор: Павел Алексеевич
Просмотров: 1431 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика
Copyright MyCorp © 2025
Используются технологии uCoz
style=