Использование указателей bc++, страница 11

double tx,ty;

// нормализация х и у к начальному адресу:

tx=x-x_org;

ty=y-y_org;

//  вращение:

*xd=tx*cos(theta)-ty*sin(theta);

*yd=tx*sin(theta)-ty*cos(theta);

// возвращение значений координат:

*xd+=x_org;

*yd+=y_org;

}

void rotate_object(double theta, int x, int y, int sides)

{

int color;

color=getcolor();

for(int j=0; j<=sides; j++)

{

// стирание старых линий:

setcolor(0);

line((int) HouseD[j][0], (int) HouseD[j][1], (int) HouseD[j][2], (int) HouseD[j][3]);

//  получение новых координат:

rotate_point(theta, House[j][0], House[j][1], &HouseD[j][0], &HouseD[j][1], x, y);

rotate_point(theta, House[j][2], House[j][3], &HouseD[j][2], &HouseD[j][3], x, y);

setcolor(color);

// рисование новых линий:

line((int) HouseD[j][0], (int) HouseD[j][1], (int) HouseD[j][2], (int) HouseD[j][3]);

}

}

Вращение объекта вокруг точки осуществляется на угол 2,5p против часовой стрелки. Здесь приведены снимки основных положений объекта во вращении.

Исходное положение:

Промежуточное положение

Вопросы для подготовки к экзаменам по курсу

“Языки высокого уровня”

1.  Унарная операция определения адреса переменной и ее использование.

2.  Указатель на объект, его объявление.

3.  Модификаторы объявления указателей и их использование.

4.  Инициализация указателей, способы инициализации указателей. Примеры.

5.  Доступ к значению, находящемуся по указателю. Примеры.

6.  Переопределение типа указателя. Примеры. Указатель на тип void.

7.  Операции, выполняемые над указателями. Примеры.

8.  Объявление указателей на массивы. Доступ к элементам массивов (одномерных и многомерных) через указатели. Примеры.

9.  Различия между инициализацией символьного массива, хранящего строку и указателем на строку.

10.  Правила доступа к элементам структур с помощью указателей.

11.  Создание динамической памяти для хранения одномерных и многомерных массивов.

12.  Указатель на функцию. Объявление указателя на функцию. Примеры.

13.  Передача аргументов командной строки функции main(). Примеры.

14.  Модификация параметров операционной системы через указатели.

15.  Открытие файла для ввода/вывода с использованием указателей.

  1. Правила интерпретации составных описателей. Примеры.
  2. Понятие рекурсии. Описание рекурсии. Примеры

рекурсивных функций.

  1. Понятие списка. Несвязанные и связанные списки.
  2. Задание структуры связанного списка.
  3. Сравнительная характеристика массива и связанного списка.
  4. Понятие очереди. Примеры моделей очереди.
  5. Стек. Примеры модели стека.

23.  Регистры микропроцессора и их назначение. Вычисление полного адреса памяти.

24.  Модели памяти и их краткая характеристика. Структура моделей памяти ВС++.

Порядок выбора модели памяти при разработке программного обеспечения.

  1. Назначение директив препроцессора и их краткая характеристика.
  1. Краткая характеристика директивы #define. Примеры ее использования.

27.  Краткая характеристика директивы #include и примеры ее использования.

28.  Принцип информационной локализованности и его реализация в программах.

29.  Краткая характеристика директив условной компиляции. Примеры.

30.  Краткая характеристика оператора defined. Примеры его использования.

31.  Краткая характеристика директивы #line. Примеры ее использования.

32.  Краткая характеристика директивы #error. Примеры ее использования.

33.  Краткая характеристика директив #pragma. Примеры ее использования.

34.  Краткая характеристика предопределенных макросов и глобальных идентификаторов. Примеры их использования.

35.  Отличие ООП от модульного программирования.

36.  Компоненты ООП и их краткая характеристика.

37.  Отличия структуры С++ и класса С++.

38.  Свойства языка ООП.

39.  Понятие абстракции и примеры ее реализации в алгоритмических языках.

40.  Понятие инкапсуляции и ее реализация в ООП.

41.  Уровни  доступа класса.