- •1. Технология программирования. Понятие технологии программирования. Методология процедурно-ориентированного программирования. Абстракция и декомпозиция.
- •Абстракция и декомпозиция
- •Технология программирования. Методология объектно-ориентированного программирования. Основные принципы ооп: наследование, инкапсуляция, полиморфизм.
- •Технология программирования. Методология объектно-ориентированного анализа и проектирования.
- •2 Важные вещи:
- •Технология программирования. Методология системного анализа и системного моделирования.
- •2 Важные вещи:
- •6 Документирование по. Ескд, естд, еспд. Основные документы. Техническое задание.
- •7 Документирование по. Основные документы. Программа и методика испытаний. Руководство оператора. Руководство системного программиста. Руководство программиста.
- •Шаблоны (template).
- •Параметризованные функции.
- •Взаимозаменяемость параметризованных функций.
- •Параметризованные классы.
- •Реализация стека.
- •Особенности реализации класса.
- •24 Stl. Контейнеры. Вектор (vector), список (list), дек (deque). Множество (set), словарь (map), стек (stack).
- •Контейнеры.
- •Множество(set)
- •Map(словарь)
- •Стек (адаптивный контейнер).
- •25 Stl. Итераторы. Алгоритмы: поиск, сортировка, суммирование.
- •Алгоритмы
- •26 Stl. Аллокаторы. Функциональные объекты. Строки. Аллокаторы.
- •Функциональные объекты.
- •Строки.
- •27 Uml. Общие сведения. Принципы построения модели сложной системы. Общая структура языка.
- •Общие сведения.
- •Принципы построения сложной системы.
- •Общая структура языка uml.
- •28 Uml. Специфика описания метамодели языка uml. Виды диаграмм.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •Специфика описания метамодели языка uml. Виды диаграмм.
- •29 Uml. Базовые отношения: отношение зависимости, отношение ассоциации, отношение обобщения, отношение реализации.
- •30 Uml. Дополнительные отношения: отношение расширения, отношение включения, отношение агрегации, отношение композиции.
- •31 Uml. Диаграмма вариантов использования. Актер, вариант использования, интерфейс, примечание.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •32 Uml. Диаграмма классов. Класс, объект, шаблон.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •33 Uml. Диаграмма состояний. Автомат, состояние (начальное, конечное, составное, подсостояние: последовательное, параллельное), переход (простой, сложный), синхронизирующие состояния.
- •34 Uml. Диаграмма деятельности. Состояние действия, переходы, дорожки, объекты.
- •35 Uml. Диаграмма последовательности. Объекты, сообщения.
Множество(set)
- шаблонный класс, который реализует функционал динамического отсортированного массива уникальных ключей.
Класс поддерживает динамическое изменение размера массива, обеспечивает быстрый поиск любого элемента массива по ключу.
Класс не позволяет хранить одинаковые ключи.
Пример:
#include <set>;
using namespace std;
void main()
{
set <int> m;
m.insert(20);
m.insert(10);
m.insert(30);
m.insert(30); //error
}
Ключи=данные!!!!!!!!!!!!
Основные функции.
insert – вставка элемента с указанным ключом;
clear – очистка множества;
size – определение количества элементов;
find – поиск элемента по ключу (получаем указатель на элемент(итератор), либо итератор эквивалентен итератору, полученному в результате использования операции end() ).
Map(словарь)
- шаблонный класс, который реализует функционал динамического отсортированного массива уникальных ключей и связанных с каждым ключом значений .
Реализует принцип хеш-таблицы.
Поддерживает динамическое изменение размера массива, быстрый поиск любого элемента массива по ключу.
Класс не позволяет хранить одинаковые ключи, но позволяет хранить одинаковые значения для разных ключей.
Map – расширение set.
Ключ1 |
Ключ2 |
Ключ3 |
Ключ4 |
Ключ5 |
Значение1 |
Значение2 |
Значение1 |
Значение3 |
Значение4 |
Пример:
#include <map>
using namespace std;
void main()
{
map <int,double> m; //<тип ключа, тип значения>
m.insert(pair <int,double> (30,10.2));
m.insert(pair <int,double> (10,15.5));
m.insert(pair <int,double> (30,10.2));//error
}
Основные функции.
Функционал такой же как у set.
Также следует отметить, что в данном контейнере реализован operator [].
Также важно помнить, что operator [] при обращении к несуществующему элементу в map создаст его. Новый элемент при этом будет инициализирован нулём (либо конструктором по умолчанию, если это не тривиальный тип данных). Данная особенность map может быть удобной, потому как выполнять операции с элементами можно не задумываясь об их присутствии в map.
Стек (адаптивный контейнер).
Стек – шаблонный класс, который реализует функционал динамического стека.
Поддерживает динамическое изменение размера и обеспечивает быстрый доступ к вершине стека.
Класс позволяет указать исходные контейнеры, которые будут использоваться для хранения элементов стека.
Если ничего не указано, то по-умолчанию используется deque.
Пример:
#include <stack>
#include <list>
using namespace std;
void main()
{
stack<int, list<int>> m;
int v;
m.push(20);
m.push(10);
m.push(30);
v=m.top(); //получение значения с вершины стека(30)
m.pop(); //удаление верхнего элемента из стека
v=m.top();//10
}
Основные функции.
top - Узнать значение верхнего элемента в стеке;
push- Добавить элемент в конец стека;
pop - Удалить верхний элемент из стека;
size - Узнать количество элементов в стеке.