СОВЕРШЕННОЕ ОРУЖИЕ КОДЕРА

Спецвыпуск Хакер, номер #004, стр. 004-106-4

Тэкс, что там дальше? А, вот, структура повторения. Так же как и структура следования, структура повторения имеет несколько реализаций. Мы рассмотрим одну - она универсальная.

ПОКА (условие)

действие.

Если условие верно - выполнить действие, а потом снова проверить, верно ли условие (если верно, еще раз выполнить действие). И так до тех пор, пока условие не станет неверным. Быстро смотрим два примера, и идем дальше. Задача один: пить пиво до тех пор, пока не будет достигнута необходимая кондиция, потом топать к толчку :).

ПОКА (чел не достиг кондиции)

пить пиво.

топать к толчку.

Чел проверяет: не дошел ли он до кондиции, если нет пьет пиво, потом опять проверят, если опять нет - опять пьет пиво. Когда он, наконец, достигает кондиции - пропускает действие "пить пиво", и выполняет следующее за структурой повторения действие - "топать к толчку". В этом алгоритме также задействована структура следования (действие "топать к толчку" следует за структурой повторения.

Задача два: напечатать все числа от 0 до 9.

установить счетчик в нуль.

ПОКА (счетчик меньше либо равно девяти)

вывести счетчик.

прибавить к счетчику единицу.

Ну тут все и так понятно. Идем дальше.

АГОРИТМ АЛГОРИТМОВ

Нда, нисходящая разработка алгоритмов с пошаговой детализацией. В общем-то, эта штука только звучит сложно. Если ты один раз поймешь, как с ней работать - считай, что ты ее навсегда освоил - остается только совершенствоваться в практике :). Ну как, готов? Тогда приступим-с. Как отмечалось выше, эта фень упрощает разработку больших и сложных алгоритмов. Смысл ее в том, что она систематизирует процесс. Короче говоря: технология нисходящей разработки алгоритмов с пошаговой детализацией - это алгоритм разработки алгоритмов. Вот сказал-то... :) А почему бы и нет? Почему у процесса катания на тачке может быть алгоритм, а у процесса разработки алгоритмов - нет? Тут, как говорится, сам Билл Гейтс велел. А теперь слушай внимательно. Вся эта технология осуществляется следующим образом: на основе условия задачи (которое нам дают работодатели, преподы, которое мы сами себе придумаем и пр.) составляется одно единственное действие, которое полностью характеризует назначение разрабатываемого алгоритма. Очень часто это действие совпадет с формулировкой задачи, и это действие называют вершиной алгоритма (скоро поймешь, почему). Например, если стоит задача: найти корни квадратного уравнения, то псевдокод вершины алгоритма решения этой задачи так и будет выглядеть:

найти корни квадратного уравнения.

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

ввести значения x,a,b,c.

найти дискриминант.

найти корни.

вывести корни.

Но и эти действия тоже не осуществимы на известных мне языках программирования - делаем еще один шаг детализации:

ввести x.

ввести a.

Назад на стр. 004-106-3  Содержание  Вперед на стр. 004-106-5

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001