Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Концепции ООП.docx
Скачиваний:
21
Добавлен:
29.03.2016
Размер:
158 Кб
Скачать
☆

17. Коллекции в c#, описать какие структуры данных реализуют.

Коллекция– структура данных, обеспечивающая множества … элементов и эффективный доступ к ним.

Способ добавления, хранения и последовательного доступа зависит от поставленной задачи.

Основные интерфейсы коллекций.

Перечисление:IEnumeratorиIEnumerable(перебор элементов последовательности)

Коллекция:ICollectionиICollection<T> (базовый для всех коллекций)

Список:IListиIList<T> (доступ по индексу)

Множество:ISet<T> - набор уникальных элементов

Словарь: IDictionary, IDictionary<TKey, TValue>

Какие структуры данных реализуют.

Массив

Плюсы:

Память

Произвольный доступ

Последовательный доступ

Минусы:

Упорядочивание

Добавление и удаление элементов

Динамический массив

Плюсы:

Произвольный доступ

Последовательный доступ

Добавление и удаление в конце

Минусы:

Упорядочивание

Добавление и удаление в начале

Добавление и удаление в произвольной позиции

Сортированный массив

Плюсы:

Произвольный доступ

Последовательный доступ

Поиск

Упорядочивание

Минусы:

Добавление и удаление элементов

Связный список

Плюсы:

Последовательный доступ Добавление и удаление элементов

Минусы:

Память

Произвольный доступ

Поиск

Хеш-таблицы

Плюсы:

Произвольный доступ

Добавление и удаление элементов

Минусы:

Память

Последовательный доступ

Поиск

18. Матрицы преобразований.

Область применения:

– DirectXиOpenGL

– почти любые 2Dи все 3Dигры

– CSS3 – Xaml (WPF)

Матрица переноса

Т=

Пример. Сместить точку (100,100) на 10 пикселей по оси OX:

(100,100) => [100 100 1]*=

(110,100)

Матрица поворота

T=

Пример. Повернуть точку (100,100) на 0,5 радиан (28,6о) относительно центра:

[100 100 1]*=

Матрица масштабирования.

T=

Пример. Увеличить масштаб фигуры, в которую входит (100,100) в 2 раза относительно центра.

[100 100 1]*=

Матрица отражения.

Tx=Ty=

Пример. Отразить (100,100) относительно OX.

[100 100 1]*=

3D пространство.

Ось OZнаправлена от наблюдателя.

Матрица переноса (translate)

T=

Матрица растяжения/сжатия (scale)

T=

Матрица поворота (robate)

Toz=Tox=Toy=

private void button2_Click(object sender, EventArgs e)

{

p=MatrixHelper.Translate(p, 10, 0);

Graph.DrawRectangle(prn, p.X, p.Y, 50, 50);

}

19. Основы теории графов, что это такое, применение.

Теория графов.

Эвристический алгоритм – не дает правильного решения для 100% случаев, но дает очень хорошее решение в большинстве случаев.

Волновой алгоритм - … для невзвешенных графов.

Алгоритм - эвристический тип(вид) для невзвешенных графов.

Граф – набор вершин, соединенные ребрами.

Ориентировочный граф – граф, для вершин которого задано направление движения.

Взвешенный граф – граф, для вершин которого задан вес

Область применения – графы применяются в географии(карты дорог, оптимизация маршрутов), в поиске гипертексте, микросхемах, соц. сетях, составлении расписаний.

Концевая вершина – вершина на которой заканчивается ребро.

Смежные ребра- ребра имеющие общую вершину.

Кратные ребра – это ребра, концевая вершина которых совпадает.