TURBO PASCAL |
Новости
|
Программирование:три аккордапрограммировать - это просто,
делать программы эффективнее - чуточку посложнее,
но тоже вполне доступно Подзаголовок данного, и, возможно, многих
последующих уроков, навеян статьей,
опубликованной в свое время в Элементарные алгоритмы,или шаблоны рассужденийКак известно, многие, причем довольно сложные, алгоритмы можно реализовать, используя некоторое множество стандартных приемов (или их комбинаций). Автор упомянутой выше статьи приводит следующий, довольно полный список несложных и легко запоминаемых правил выбора этих приемов:
Сразу оговоримся, что под НИМИ подразумевается все, что угодно: элементы данных, выводы на экран букв и/или точек, этапы управления аппаратурой, etc. Структуры данных,или богатство возможностейОднако, использование стандартных алгоритмических приемов, будучи доступно абсолютно всем, не гарантирует эффективного решения ни одной задачи. Очень часто, повышение эффективности (а часто и простоты) программ может быть достигнута за счет использования довольньно простых структур данных и предварительного анализа задачи. Приведем простой пример. Допустим, что требуется вывести на экран некоторое обращение к пользователю на русском языке, причем из некоторых соображений необходимо обращаться к пользователю в определенном роде (и единственом числе). Текст примерно такой "Если бы ты ввел(а) все правильно, то через некоторое время обрадовался(лась) бы результатам работы.". Элементарная программа, выполняющая данные действия с помощью только алгоритмических приемов примерно такова:
Var
Write('... обрадовал'); If B Then Здесь GetSex - некоторая процедура
определения пола пользователя.
Const
Как видим, от алгоритма с двумя условными вершинами мы перешли к алгоритму без единой условной вершины, потратив при этом, кстати говоря, около двух лишних байт в сегменте данных (для первой программы константы 'а','ся' и 'ась' тоже присутствуют в сегменте данных). Фактически выигрыш в объеме кода достигается за счет упорядочивания данных в программе. Стоит отметить, что приведенный прием, вообще говоря, не является трюком - мы просто приспособили стандартные механизмы обработки данных (в данном случае - массивов) для решения нашей специфической задачи. В качестве вывода приведу рекомендации к написанию эффективных программ (для заранее поставленных задач):
Все просто: хорошо выучи правила и приемы
игры и применяй их целенаправленно в нужной
последовательности. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |