Реферат: Механизм бектрекинга

else

begin

{освобождаем отдел}

s [level]: =0;

b [level]: =level;

level: =level-1;

end;

end;

write ('Наибольший вес - ',max);

end.

3. Бектрекинг

Реализовать механизм бектрекинга очень легко. Вспомним, что его суть в том, чтобы организовать отскок в переборе вариантов назад когда выяснится, что идти вперёд нельзя. Такой отскок у нас уже есть. Вот эта группа операторов:

{освобождаем отдел}

s [level]: =0;

b [level]: =level;

level: =level-1;


Заметьте, что этой группе операторов абсолютно без разницы причина по которой к неё обращаются. Поэтому добавим в программу ещё одну причину обращения к этой группе. А именно

Если сумма набранного товара больше имеющейся наличности

ТО освобождаем отдел.

Заметим, также, что группа операторов "Освобождаем отдел" повторяется дважды поэтому есть смысл организовать её в виде процедуры. А вот как выглядит теперь программа:

program example;

uses crt;

var

b,s: array [1. .100] of word;

a: array [1. .100] of record

cost,ves: word;

end;

sum_ves,sum_cost,max,money,level, i,n: integer;

procedure back;

begin

К-во Просмотров: 393
Бесплатно скачать Реферат: Механизм бектрекинга