[an error occurred while processing this directive]
|
Задолбалось писать алгоритмы. Ибо инструменты более чем незаточенные: плохо оптимящий С компилер для 56F8323, да ещё и язык программирования "С" к хорошим языкам не отнесёшь... Методика инициализации структур оставляет желать лучшего, особенно для больших... да и вообще написание программ с помощью метода блок схема-> язык программирования достаточно муторна. Есть ли шаблоны проектрования, позволяющие писать алгоритмы пусть хоть и не оптимальные сначала, но работающие, исходя из предложений.
Вот например. Зажечь светодиод спустя 3 сек после пропадания напряжения. Что нужно сделать? С чего начать?
Методика вроде бы проста: глаголы заменяем действиями над переменными , а существительные - переменными (состояние, ячейка памяти, триггер, защёлка...). Но как формализовать время?
Можно поступать тупо, пословно анализируя предложение:
Зажечь светодиод: действие: результат: да/нет (горит/не горит)
Условие: прошло 3 сек.
пишем кусочек проги для действия:
если время>3 сек то
зажечь
иначе
ничего не делать (имеено сдесь кроются ежи: в задаче сказано не потошить, а просто, зажечь)
Далее пишем кусочек кода для время:
время<=время+1
для любого x=x+1 надо ввести начальное условие (обязательно ли для проектрирования?):
таймер (функция callback)(
время=0 - статическая переменная (кто бы знал!)
если время++>3 то
зажечь
иначе
пропустить
)
следующий этап: добавка условия про напряжение:
таймер (функция callback)(
время=0 - статическая переменная
если напряжение = 0 то
если время++>3 то
зажечь
иначе
пропустить
иначе
пропустить
)
вроде бы и всё.
Вообщем как правильно писать предложения на русском чтобы по нему можно было сразу написать программу. Как правильно писать спецификации на алгоритмы, чтобы не париться. Можт вообще составить скрипт на Perl, который переводит спецификациию с русского на C :) (так, из области фантастики)
E-mail: info@telesys.ru