Конструирование алгоритма методом последовательной детализации
05.06.2012 01:09

Конструирование алгоритма методом последовательной детализации

В процессе составления алгоритма нам может понадобиться некоторый вспомогательный алгоритм, решающий часть нашей задачи. Если такой алгоритм был составлен ранее или известно, откуда его можно скопировать, то мы просто включаем текст этого алгоритма в свою программу и в нужном месте вызываем этот вспомогательный алгоритм. Если же подходящего вспомогательного алгоритма нет, то можно включить в программу вызов вспомогательного алгоритма, а его составление на время отложить. Этот подход называется метод последовательной детализации: детали работы вспомогательных алгоритмов мы вначале не рассматриваем, откладываем на потом. Этот метод хорош тем, что позволяет сначала обдумать и записать общую схему алгоритма, откладывая обдумывание деталей.

Пример.
Слово «шалаш» слева направо и справа налево читается одинаково. Фраза «пил вино он и влип» читается одинаково, если игнорировать пробелы. Такая фраза называется «перевертышем». Требуется составить алгоритм, который получает фразу на русском языке и выясняет, является ли она «перевертышем».
Решим эту задачу «методом последовательной детализации». При составлении алгоритма «перевертыш» используем два вспомогательных алгоритма: первый «сжимает» фразу, удаляя из нее все про¬белы, а второй «переворачивает» фразу. С использованием этих двух еще не написанных вспомогательных алгоритмов задачу можно решить так:

алг  перевертыш

нач  лит  S,SI,S2

вывод  нс,    "Введите   строку";   ввод  S

сжать(S,S1)

перевернуть(SI,S2) ,

если S1=S2

то  вывод нс,    "Фраза",нс,S,нс,

"является  перевертышем"

иначе   вывод  нс,    "Фраза",нс,S,нс,

"не  является  перевертышем"

все

кон

 

FORM_HEADER


FORM_CAPTCHA
FORM_CAPTCHA_REFRESH

Вверх