Основы программирования для автоматизированного проектирования и решения творческих задач. Романенко А.В - 38 стр.

UptoLike

Составители: 

верки условия возвращается величина 1L. В противном случаевозвращается 0L. Операцию запрещено применять в составе
директив #define и #undef.
15 ПОСТРОЕНИЕ МАКРОСОВ В ЯЗЫКЕ С
Макрос представляет собой замену одной последовательности символов другой. Для осуществления замены необходи-
мо предусмотреть соответствующее макроопределение. Простейший способ осуществления замен в тексте программ пре-
доставляет директива препроцессора #define. Однако рассмотренные выше возможности этой директивы ограничены из-за
фиксированной строки замещения. Большими возможностями обладает следующее построение строки замещения:
#define имя_макроса(список_параметров) строка_замещения
здесь список параметровсписок идентификаторов, разделенных запятыми.
При определении макроса недопустимы пробелы между именем макроса и списком параметров.
Классическим примером макроса может служить определение в виде макроса операции определения абсолютного зна-
чения числа. Если в начале программы определить макрос
#define ABS(a) (a > 0 ? a : -(a))
а в тексте программы написать
ABS(x)
то после обработки текста программы препроцессором, на этом месте в программе появится выражение
(x > 0 ? x : -(x))
В отличие от функций, определение которых существует в программе в одном экземпляре, макросы вставляются пре-
процессором в текст программы столько раз, сколько они используются. Функция определяется для аргументов указанных в
ее заголовке типов и возвращает результат строго определенного типа. Макрос может использоваться для данных любого
типа, допустимого в формируемом препроцессором выражении. Тип возвращаемого макросом результата определяется ти-
пом используемых в нем операндов. Фактически макрос способен заменить несколько простых функций.
Для устранения неоднозначного толкования формируемых макроподстановок может быть полезным параметры макроса
и строку замещения выделять в скобки.
Главным ограничением при записи директивы #define с определением макроса является то, что она должна состоять из
одной строки в тексте программы. Если выражение, записываемое в определении макроса является длинным, то его можно
разбить на несколько строк. Для этого применяется символ '\', который обозначает перенос текста на новую строку. Длину
формируемой строки может сократить применение препроцессорных операций # и ##.
16 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ПРОГРАММИРОВАНИЯ
Процесс разработки программ для решения различных задач является творческим, а следовательно, трудно формали-
зуемым процессом. Это означает, что отсутствует единая система правил, следуя которой можно быстро создать правильную
программу решения поставленной задачи; т.е. создавая программу, разработчик каждый раз начинает свой труд "с нуля".
Однако существуют рекомендации по организации труда программиста, которые позволяют максимально сократить время
разработки программы при получении наиболее высокого качества создаваемого программного продукта. Эти правила ре-
комендуют работу над программой разбивать на ряд стадий.
1 Постановка задачиопределяются цели и условия решения задачи, раскрывается ее содержание, выявляются фак-
торы, оказывающие влияние на ход вычислений или конечный результат.
2 Формализацияпо результатам анализа сущности задачи определяется объем и специфика исходных данных, вво-
дится система условных обозначений, устанавливается принадлежность данной задачи к одному из известных классов задач
и выбирается соответствующий математический аппарат описания.
3 Выбор и разработка метода решенияпостроение на предыдущем шаге математической модели приводит к необ-
ходимости поиска способов решения задачи, т.е. необходимо установить зависимость искомых результатов от исходных
данных и разработать такие способы получения результата, которые реализуемы на ЭВМ.
4 Составление алгоритма. Часто решение задачи не удается получить в виде явной формулы. В этом случае разработ-
ке программы предшествует разработка алгоритма. Главное назначение алгоритматочное и детальное описание процесса
обработки исходных данных для получения требуемого результата в соответствии с выбранным методом. На этом этапе по-
следовательность действий, составляющая процесс решения задачи преобразуется в последовательность действий ЭВМ.
5 Составление программысоставленный алгоритм записывается на выбранном языке программирования в соответ-
ствии с правилами записи программы на этом языке.
Далее разработанная программа с помощью устройств ввода/вы-вода вводится в память ЭВМ. Получается файл с тек-
стом программы. Дальнейшие преобразования текста программы показаны на рис. 13. Программу необходимо скомпилиро-
вать. После этого полученный объектный код программы обрабатывает компоновщик, налаживающий связи отдельных