Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Program Hanoi_Towers;

Запреты на перегрузку операций | Базовые и производные классы. | Struct card | Int data; | Динамическое распределение памяти | Free(newPtr); | Очереди | Алгоритм как абстрактная машина | Сопоставление алгоритмических моделей | Формы рекурсивных процедур. |


Читайте также:
  1. Anti Age Program Lux Актив-сыворотка для лица с аметистом7штХ1,5 мл. 350 руб.
  2. Anti Age Program Lux Актив-сыворотка для лица с аметистом7штХ1,5 мл. 550 руб.
  3. Anti Age Program Lux Актив-сыворотка для лица с аметистом7штХ1,5 мл. 550 руб.
  4. Anti Age Program Lux Актив-сыворотка для лица с аметистом7штХ1,5 мл. 550 руб. СП Стилмарк
  5. Anti Age Program Lux Актив-сыворотка для лица с аметистом7штХ1,5 мл.-350 руб.
  6. Anti Age Program Lux Актив-сыворотка для лица с бриллиантом7штХ1,5 мл. 350 руб.
  7. Anti Age Program Lux Актив-сыворотка для лица с бриллиантом7штХ1,5 мл. 550 руб.

Uses Crt;

Var n:Integer;

Procedure Move_Disks (n:Byte; Source, Dest, Tmp: Char);

{ n - число дисков на столбике Source}

{Source - исходный столбик}

{Dest - столбик, на который нужно переставить диски}

{Tmp - вспомогательный столбик}

Begin

if n=l then

writeln ('Переставить диск номер 1 со столбика', Source, 'на столбик ',

Dest)

Else begin

{переставляем n-1 верхних дисков с исходного столбика на} {вспомогательный, используя целевой диск как промежуточный}

Move_Disks (n-1, Source, Tmp, Dest);

Writeln ('переставить диск номер', п:1, 'со столбика', Source,

'на столбик', Dest);

{ переставляем все п-1 диск, расположенные на вспомогательном} {столбике, на целевой, используя исходный диск как промежуточный}

Move_Disks (n-1, Tmp, Dest, Source);

End End;

Begin

Write ('введите число дисков:');

Readln (n);

Writeln ('последовательность инструкций для решения задачи:');

Writeln;

Move_Disks (n, 'А', 'С, 'В');

End.

Результат работы программы для числа исходных дисков на столбике А, равного 4, будет таким:

Введите число дисков: 4

Последовательность инструкций для решения задачи:

Переставить диск номер 1 со столбика А на столбик В

Переставить диск номер 2 со столбика на А столбик С

Переставить диск номер 1 со столбика В на столбик С

Переставить диск номер 3 со столбика А на столбик В

Переставить диск номер 1 со столбика С на столбик А

Переставить диск номер 2 со столбика С на столбик В

Переставить диск номер 1 со столбика А на столбик В

Переставить диск номер 4 со столбика А на столбик С

Переставить диск номер 1 со столбика В на столбик С

Переставить диск номер 2 со столбика В на столбик А

Переставить диск номер 1 со столбика С на столбик А

Переставить диск номер 3 со столбика В на столбик С

Переставить диск номер 1 со столбика А на столбик В

Переставить диск номер 2 со столбика А на столбик С

Переставить диск номер 1 со столбика В на столбик С

Следует отметить аналогию между методом математической индукции и рекурсивным методом программирования.


Дата добавления: 2015-07-16; просмотров: 57 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Пример рекурс алгоритмаЗадача о Ханойских башнях.| Анализ сложных алгоритмов

mybiblioteka.su - 2015-2024 год. (0.006 сек.)