Реферат: Математическая логика и теория алгоритмов

{инвариант: ОЛ}

while есть_сверху do begin

вверх_налево

end

{ОЛ, Робот в листе}

обработать;

{ОЛН}

end;

Основной алгоритм:

дано: Робот в корне, листья не обработаны

надо: Робот в корне, листья обработаны

{ОЛ}

вверх_до_упора_и_обработать

{инвариант: ОЛН}

while есть_снизу do begin

if есть_справа then begin {ОЛН, есть справа}

вправо;

{ОЛ}

вверх_до_упора_и_обработать;

end else begin

{ОЛН, не есть_справа, есть_снизу}

вниз;

end;

end;

{ОЛН, Робот в корне => все листья обработаны}

Осталось воспользоваться следующими свойствами команд Робота (сверху записаны условия, в которых выполняется команда, снизу - утверждения о результате ее выполнения):

(1) {ОЛ, не есть_сверху} обработать {ОЛН}

(2) {ОЛ} вверх_налево {ОЛ}

(3) {есть_справа, ОЛН} вправо {ОЛ}

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