
- •Отображение графической информации: основы теории цвета, цветовые системы rgb.
- •Cmyk, vhs, методы формирования цвета.
- •Аппаратные средства компьютерной графики: устройства графического ввода/вывода информации.
- •Алгоритмы растровой графики: понятие связности, основные растровые алгоритмы, отрисовка отрезка алгоритмом Брезенхема, отрисовка окружности.
- •Алгоритмы растровой графики: алгоритмы заливки замкнутых фигур с границей заданного цвета, заливка многоугольников.
- •Реляционный подход к организации баз данных: фундаментальные свойства отношений, реляционная модель данных.
- •Журнализация изменений бд: журнал, журнализация и буферизация.
- •Восстановление базы данных: индивидуальный откат транзакции, восстановление после мягкого сбоя, восстановление после жесткого сбоя.
- •1. Индивидуальный откат транзакции
- •2. Восстановление после мягкого сбоя
- •4. Восстановление после жесткого сбоя
- •Реляционный подход к организации баз данных: проектирование реляционных баз данных с использованием нормализации.
- •Семантическое моделирование. Er-диаграммы.
- •Язык sql: функции и основные возможности, типы данных, средства определения схемы.
- •Средства определения схемы
- •Язык sql: структура запросов набор операторов манипулирования данными.
- •Архитектура клиент-сервер, различные реализации архитектуры клиент-сервер, понятие 2-х , 3-х звенных моделей.
- •Виртуальная память: страничная, сегментная, сегментно-страничная организация памяти, коллективное использование и защита информации; файлы, отображаемые в память.
- •Файловая система ос: состав, управление, типы файловых систем; логическая и физическая организация файла, методы доступа, операции над файлами, отображаемые файлы.
- •Класс и атд
- •Классификация методов
- •Действия над объектами
- •Область видимости класса
- •Указатель this
- •Функции-члены типа static и const
- •26. Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.
- •Перегрузка операторов
- •Доступные и недоступные для перегрузки операторы:
- •Перегрузка обычными функция, как компонентными
- •Примеры перегрузки операторов:
- •26. Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.
- •35. Современные web-технологии.
- •36. Инструментальные средства веб-дизайна.
- •37. Жизненный цикл информационной системы . Модели жизненного цикла информационных систем.
- •Модели жизненного цикла информационных систем.
- •38. Проектирование информационных систем. Средства проектирования информационных систем (case-средства).
- •Средства проектирования информационных систем (case-средства).
- •41 .Особенности моделей, использующих имитационный подход. Моделирование марковских случайных процессов. Имитатор системы массового обслуживания.
- •Самоподобные множества с необычными свойствами в математике
- •Стохастические фракталы
- •43. Передача дискретных данных: линии связи, методы передачи дискретных данных на физическом уровне, методы передачи данных канального уровня, методы коммутации.
- •Средства анализа и управления сетями: функции и архитектура систем управления сетями, стандарты систем управления, мониторинг и анализ локальных сетей.
- •Понятие информации. Виды, свойства и способы измерения информации.
- •Кодирование информации. Способы представления информации в эвм
- •Графы, способы представления графов в памяти компьютера, обход графов в ширину и глубину.
- •Поиск пути минимальной длины в графе. Алгоритм Дейкстры.
- •Сортировка массивов. Методы прямого выбора, включения и обмена.
- •Сортировка массивов. Быстрая сортировка.
- •Задача поиска. Дерево поиска.
26. Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.
Полиморфизм — возможность объектов с одинаковой спецификацией иметь различную реализацию. Используя параметрический полиморфизм можно создавать универсальные базовые типы. В случае параметрического полиморфизма, функция реализуется для всех типов одинаково и таким образом функция реализована для произвольного типа. В параметрическом полиморфизме рассматриваются параметрические методы и типы.
Особенностью концепций шаблонов явл представление использующегося типа не в виде специфического (например, int), а с помощью названия, вместо которого м.б. подставлен любой тип. Объявление шаблона имеет вид:
template <шаблонные_аргументы> объявление,
где шаблонные аргументы – class идентификатор или объявление аргумента.
Шаблон функции позволяет определять семейство функций. Это семейство характеризуется общим алгоритмом, который может применяться к данным различных типов. При этом задание конкретного типа данных для очередного варианта функции обеспечивается специальной синтаксической конструкцией, называемой списком параметров шаблона функции. Объявление функции, которому предшествует список параметров шаблона, называется шаблоном функции.
Каждый параметр шаблона состоит из служебного слова class, за которым следует идентификатор. (В контексте объявления шаблона функции служебное слово class не несёт никакой особой смысловой нагрузки). В заголовке шаблона имена параметров шаблона должны быть уникальны.
Следом за заголовком шаблона располагается прототип или определение. Как известно, у прототипа и определения функции также имеется собственный заголовок. Этот заголовок состоит из спецификатора возвращаемого значения, имя функции и список параметров. Все до одного идентификаторы из заголовка шаблона обязаны входить в список параметров функции. В этом списке они играют роль спецификаторов типа.
Шаблонные классы
Шаблон класса дает обобщенное определение семейства классов, использующее произвольные типы или константы. Шаблон определяет элементы данных и элементы-функции класса. После определения шаблона класса вы можете предписать компилятору генерировать на его основе новый класс для конкретного типа или константы.
Определение: template <class T>
class ClassName;
Параметр-тип шаблона состоит из ключевого слова class или typename (в списке параметров они эквивалентны), за которым следует идентификатор. (Ключевое слово typename не поддерживается компиляторами, написанными до принятия стандарта C++) Оба ключевых слова обозначают, что последующее имя параметра относится к встроенному или определенному пользователем типу. Например, в приведенном выше определении шаблона ClassName имеется один параметр-тип T. Допустимым фактическим аргументом для T является любой встроенный или определенный пользователем тип, такой, как int, double, char*, complex или string.
У шаблона класса может быть несколько параметров-типов:
template <class T1, class T2, class T3>
class Container;
Однако ключевое слово class или typename должно предшествовать каждому. Следующее объявление ошибочно:
// ошибка: должно быть <typename T, class U> или
// <typename T, typename U>
template <typename T, U>
class collection;
25. Специальный полиморфизм: перегрузка функций, алгоритм выбора перегруженной функции, дружественные функции, перегрузка операторов - синтаксис, семантика, приоритет и порядок выполнения, доступные и недоступные для перегрузки операторы, перегружаемые как обычные функции, только как компонентные функции.
Перегрузка и выбор функций
Перегруженные функции – это функции, которые имеют одинаковое имя, но отличатся списком параметров (количество параметров, их тип, порядок следования). Конкретная функция выбирается в зависимости от соответствия списка аргументов при вызове функции списку параметров в объявлении функции. Когда вызывается перегруженная функция, компилятор должен иметь алгоритм для выбора надлежащей функции. Алгоритм, который выполняет этот выбор, зависит от того, преобразования какого типа присутствуют. Наилучшее соответствие должно быть уникальным.
Алгоритм выбора перегруженной функции
Использовать строгое соответствие (если возможно).
Попробовать.стандартное повышение типа (float в double).
Попробовать стандартное преобразование типа.
Попробовать определяемое пользователем преобразование.
Использовать, если возможно, соответствие эллипсису (подразумеваемому аргументу).
В C++ существуют четыре приведения типов:
static_cast<Ti*n> (выражение)
reinterpret_cast<THrr> (выражение)
const_cast<Tnn>{выражение)
dynamic__cast<THn> (выражение)
Дружественные функции
Ключевое слово friend (друг) дает функции-не-члену доступ к скрытым членам класса и предоставляет способ для обхода огр-ий сокрытия данных в C++.
Одна из причин использования дружественных функции состоит в том, что некоторые функции нуждаются в привилегированном доступе к более чем одному классу. Вторая причина в том, что дружественные функции передают все свои аргументы, список аргументов.
Дружественная функция должна быть объявлена внутри объявления класса, по отношению к которому она является дружественной (с которым она дружит), Функция предваряется ключевым словом friend и может встречаться в любой части класса; это не влияет на ее смысл.
Функция-член одного класса мб дружественной другому классу. В этом случае для указания ее имени в дружественном классе используется оператор разрешения области видимости. То, что все функции-члены одного класса являются дружественными функциями другого класса, может быть указано как friend class имя_класса.
class tweedledee {
//дружественная функция //функция-член
class tweedledum {
friend int tweedledee::Cheshire();
friend void alice( int Cheshire);
class tweedledumber {
friend class tweedledee; //все функции-члены из tweedledee получают доступ
Дружественные функции создают некую двойственность. Они имеют доступ к закрытым членам, не являясь при этом функциями-членами. Их можно использовать для быстрых исправлений в коде, которому необходим доступ к реализации деталей класса.