ЗАМЕНА ВЫРАЖЕНИЙ МАКРОКОМАНДАМИ


При самостоятельном желании понять тему " ЗАМЕНА ВЫРАЖЕНИЙ МАКРОКОМАНДАМИ " вам поможет наш ресурс. Для вас наши специалисты подготовили материал, изучив который вы будете разбираться в ней уровне профессионала. А если у вас останутся вопросы, то задать их вы сможете прямо на сайте написав в чат онлайн-консультанта.

оформить заявку

Слишком сложно? Тогда запросите консультацию специалиста!

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

ознакомиться с условиями

Если программы выполняют реальные вычисления, то в общем случае код будет содержать сложные выражения типа:

result = (х*у-3) * (х*у-3) * (х*у-3);

В данном случае программа вычисляет куб выражения (х*у-3). Чтобы улучшить читаемость программы и уменьшить вероятность внесения ошибок из-за опечаток, создайте макрокоманду с именем CUBE, которую программа может использовать следующим образом:

result = CUBE(x*y-3);

И опять общепринятым среди программистов считается использование больших букв для имен макрокоманд, чтобы отличить их от функций.

Для создания макрокоманды следует использовать директиву препроцессора #define. Например, следующий оператор создает макрокоманду CUBE:

#define CUBE(x) ((х)*(х)*(х))

Программа определяет макрокоманду CUBE для умножения параметра х на самого себя дважды. Следующая программа SHOWCUBE.CPP использует макрокоманду CUBE для вывода куба значений от 1 до 10:

#include <iostream.h>

#define CUBE(x) ((x)* (x)* (x))

void main (void)

{
for (int i = 1; i <= 10; i++) cout << "Для " << i << " куб равен " << CUBE(i) << endl;
}

При компиляции этой программы препроцессор C++ заменит каждый экземпляр макрокоманды CUBE соответствующим определением. Другими словами, замена макрокоманды препроцессором приведет к следующему коду:

#include <iostream.h>

#define CUBE(x) ((х)*(х)*(х))
void main(void)

{
for (int i = 1; i <= 10; i++) cout << "Для " << i << " куб равен " << ((i) * (i) * (i)) << endl;
}

Следует обратить внимание, что предыдущая макрокоманда поместила параметр х внутрь круглых скобок, использовав запись ((х)*(х)*(х)) вместо (х*х*х). При создании макрокоманд нужно помещать параметры в круглые скобки, как показано выше, чтобы быть уверенным, что C++ трактует выражения именно так, как требуется. C++ использует старшинство операций для определения порядка выполнения арифметических операций. Предположим, например, что программа использует макрокоманду CUBE с выражением 3+5-2, как показано ниже:

result = CUBE(3+5-2);

Если макрокоманда заключает свой параметр в круглые скобки, то препроцессор сгенерирует следующий оператор:

result = ((3+5-2) * (3+5-2) * (3+5-2));

Однако, если в определении макрокоманды опустить круглые скобки, препроцессор сгенерирует следующий оператор:

result = (3+5-2*3+5-2*3+5-2);

Если вычислить оба выражения, то можно обнаружить, что их результаты отличаются. Избавиться от подобных ошибок можно, заключая аргументы макрокоманды в круглые скобки.


Хм, так же просматривали

Заказ

ФОРМА ЗАКАЗА

Бесплатная консультация

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

Этапность

СОПРОВОЖДЕНИЕ КЛИЕНТА

Получить работу можно всего за 4 шага

01
Оставляете запрос

Оформляете заказ работы, заполняя форму на сайте.

02
Узнаете стоимость

Менеджер оценивает сложность. Узнаете точную цену.

03
Работа пишется

Оплачиваете и автор приступает к выполнению задания.

04
Забираете заказ

Получаете работу в электронном виде на вашу почту.

Услуги

НАШ СЕРВИС

Что мы еще делаем?

icon
Курсовые работы

от 1800 рублей

ПОДРОБНЕЕ
icon
РГР (расчетно-графические работы)

от 230 рублей

ПОДРОБНЕЕ
icon
Исследовательские работы

от 2800 рублей

ПОДРОБНЕЕ
icon
Отчеты по практике

от 780 рублей

ПОДРОБНЕЕ
icon
Решение задач

от 180 рублей

ПОДРОБНЕЕ
icon
Студенческие работы

от 80 рублей

ПОДРОБНЕЕ