Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП. ЛЕКЦИИ! Готовимся к экзамену))).docx
Скачиваний:
12
Добавлен:
10.12.2018
Размер:
175.63 Кб
Скачать

1.3.11. Директива define

Директива препроцессора #define широко используется в C++. Работает, как обыкновенная команда текстового редактора найти и заменить.

Формат:

# define АРГУМЕНТ1 аргумент2

где АРГУМЕНТ 1 – одно слово, не содержащее пробелов; для работы в имени первого аргумента традиционно используются большие буквы; АРГУМЕНТ1 отделяет от аргумента2 по крайней мере один пробел.

аргумент2 может быть любым символом, словом или фразой, может содержать пробелы или любые символы, которые можно набрать на клавиатуре.

Замечание

В конце директивы не ставится точка с запятой, т.к. это не выполняемый оператор, а директива препроцессора.

Пример:

Программа рассчитывает выражение z=(log2x+logcy)/ logc+2(x+y)

Для расчета logab используется формула:

logab=lnb/lna

В программе logab записывается в форме lg(b,a)

#include <iostream.h>

#include <math.h>

#define LG(b,a) log(b)/log(a)

main()

{

float x,y,c;

float z;

cout <<"\n Введите значение x,y,c ";

cin >>x >>y >>c;

z=(LG(x,2)+LG(y,c))/LG(x+y,c+2);

cout <<"\n znachenie z="<< z;

return 0;

}

Проблемные ситуации

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

#define min(x,y) ( (x>y)? x : y )

1.3.12. Директива include

Директива препроцессора include используется для включения текстовых файлов в текст программы.

Формат:

# include <имя файла>

или

# include “имя файла”

Угловые кавычки означают, что файл находится в стандартной папке INCLUDE, двойные кавычки – что файл находится в текущей папке.

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

1.3.13. Примеры программ

Пример 1

Выведем значения переменной и ее адреса в памяти

#include <iostream.h>

main()

{

int *c; int d; // с - это указатель на число типа int

d=45; c=&d; // переменной с присваивается адрес переменной d

cout << "\n Адрес: " << с<< "\n 3начение по адресу с: " << *с <<"\n 3начение d: " << d;

return 0;

}

Пример 2:

Изменим значение переменной двумя способами:

1) с использованием имени переменной.

2) с использованием адреса переменной.

#include <iostream.h>

main()

{

int *c; int d;

c=&d; // переменной с присваивается адрес переменной d

d=105; // первый способ

*с=105; // второй способ

cout <<"\n прочитаем значение переменной через ее имя "<< d;

cout <<"\n прочитаем значение переменную через ее адрес "<<*с;

return 0;

}

1.3.14. Вопросы для самоконтроля

  1. Какие результаты появятся на экране?

  2. cout << 9/2 ;

cout << 9.0/2 ;

  1. Чему будет равен y?

float a=1, b=2, c=3, y=4;

a) y *=a;

б) y /= 2;

в) y- -;

г) - - y;

  1. Как определить, сколько байт в памяти занимает переменная типа long int?

  2. Запишите при помощи оператора ?: действия: "Если х больше нуля, y присвоить значение x, иначе значение -x".

  3. Что представляет собой z?

int * z;

  1. Как занести значение 8 по адресу z?

int *z;

  1. Как определить адрес переменной b в памяти?

int b;