Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обозначения геометрических фигур




ОБОЗНАЧЕНИЯ И СИМВОЛИКА

Макроподстановки средствами препроцессора

 

Макрос, по определению, есть средство замены одной последовательности символов другой. Для выполнения замен должны быть заданы соответствующие макроопределения. Простейшее макроопределение можно записать так:

#define идентификатор строка_замещения

Такая директива удобна, однако она имеет существенный недостаток – строка замещения фиксирована. Большими возможностями обладает следующее макроопределение с параметрами:

#define имя(список параметров) строка_замещения

Здесь имя – имя макроса (идентификатор), список_параметров – список разделённых запятыми идентификаторов. Между именем макроса и списком параметров не должно быть пробелов.

Классический пример макроопределение:

#define max(a,b) (a < b? b: a)

позволяет формировать в программе выражение, определяющее максимальное из двух значений аргументов. При таком определении вхождение в программу

max(X, Y)

заменяется выражением

(X < Y? Y: X)

а использование max(Z, 4) приведёт к формированию (Z < 4? 4: Z)

Выводы:

При препроцессорной обработке исходного текста программы каждая строка обрабатывается отдельно. Напомню, что возможно “соединение” строк: если в конце строки стоит символ ‘\’, а за ним – символ перехода на новую строку ‘\n’, то эта пара символов исключается и следующая строка непосредственно присоединяется к текущей строке. Анализируя полученные строки, препроцессор распознаёт лексемы. Лексемами для препроцессора являются:

- лексемы языка С++;

- имена файлов;

- символы, не определённые иным способом.

Аргументы вызова макроса – лексемы, разделённые запятыми. В последовательности лексем, образующих строку замещения, предусматривается использование двух операций – ‘#’ и ‘##’, первая из которых помещается перед параметром, а вторая – между любыми двумя лексемами. Операция ‘#’ требует, чтобы текст, замещающий данный параметр в формируемой строке, заключался в двойные кавычки. Например, для определения:

#define sm(zip) cout << #zip

обращение (макровызов) sm(сумма); приведёт к формированию оператора cout << “сумма”;

Операция ‘##’, допускаемая только между лексемами строки замещения, позволяет выполнять конкатенацию лексем, включаемых в строку замещения. Определение:

#define abc(a, b, c, d) a##(##b##c##d)

позволит сформировать выражение sin(x+y), если использовать макровызов abc(sin,x,+,y).

 

 

 

1. Геометрическая фигура - Ф.

2. Точки - A, B, C, D,... или 1, 2, 3, 4,...

3. Линии - a, b, c,...

4. Отрезки прямых линий - AB, BC, CD,...

5. Плоскости и поверхности D, L, S, U,…

6. Плоскости проекций - П

7. Углы - a, b, g, d,…

8. Расстояния- IABI, IabI,...

9. Проекции геометрических фигур на плоскости проекций – A1, A2, A3,..., a1, b2, c3, …, A1B1, B2C2,...

10. Аксонометрические проекции геометрических фигур- A1, B1, C1 ,

a1, b1, d1,...

11. Оси проекции - Оx, Оy, Оz.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 404; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.