- •Int data; // полезные данные
- •Создание форм в субд ms Access.
- •Создание запросов в субд ms Access. Виды запросов.
- •Типовые ошибки при создании презентаций. Общие принципы:
- •Структура html документа. Вывод и форматирование текста. Понятие гиперссылки. Структура документа в html:
- •Язык расширенной разметки xml. Корректные и валидные xml-документы.
- •Java Script и объектная модель документа. Ключевые объекты.
- •Принципы защиты серверов и клиентских компьютеров от вредоносного по.
- •Правила и принципы защиты от вредоносного по. Правила:
- •Именование в компьютерных сетях и основные технологии.
- •Программные и программно-аппаратные методы и средства защиты информации.
- •Внешний аудит автоматизированных информационных систем.
- •46. История, форматы, типы мультимедийных приложений.
- •47. Использование мультимедиа: преимущества и недостатки. Перспективы развития.
- •53. Сервисы Google: преимущества и примеры использования.
- •54.Шифрование: симметричные и ассиметричные криптосистемы.
- •56.Электронная цифровая подпись и алгоритм её использования.
1. Виды алгоритмов поиска. Линейный алгоритм. Данный алгоритм является простейшим алгоритмом поиска и в отличие, например, от двоичного поиска, не накладывает никаких ограничений на функцию и имеет простейшую реализацию. Поиск значения функции осуществляется простым сравнением очередного рассматриваемого значения (как правило, поиск происходит слева направо, т.е. от меньших значений аргумента к большим) и, если значения совпадают (с той или иной точностью), то поиск считается завершённым. Двоичный поиск (также известен, как метод деления пополам и метод половинного деления) — алгоритм нахождения заданного значения монотонной (невозрастающей или неубывающей) функции. Поиск основывается на теореме о промежуточных значениях. Используется в информатике, вычислительной математике и математическом программировании.
2. Сортировка методом вставки на первом шаге алгоритма выполняется сортировка первых двух элементов массива. Далее добавляется третий элемент, который занимает позицию среди элементов в соответствие со своим значением. Затем в этот список вставляется четвёртый элемент и т. Д. Процесс продолжается до тех пор, пока все элементы не будут отсортированы.
-
Сортировка методом выбора Идея метода состоит в том, чтобы создавать отсортированную последовательность путем присоединения к ней одного элемента за другим в правильном порядке.
-
Быстрая сортировка. Общая схема: из массива выбирается некоторый опорный элемент a[i], запускается процедура разделения массива, которая перемещает все ключи, меньшие, либо равные a[i], влево от него, а все ключи, большие, либо равные a[i] - вправо, теперь массив состоит из двух подмножеств, причем левое меньше, либо равно правого, для обоих под массивов: если в подмассиве более двух элементов, рекурсивно запускаем для него ту же процедуру. В конце получится полностью отсортированная последовательность.
-
Метод Шелла. Вначале сортируем простыми вставками каждые 8 групп из 2-х элементов (a[0], a[8[), (a[1], a[9]), ... , (a[7], a[15]).
2. Потом сортируем каждую из четырех групп по 4 элемента (a[0], a[4], a[8], a[12]), ..., (a[3], a[7], a[11], a[15]).
3. Далее сортируем 2 группы по 8 элементов, начиная с (a[0], a[2], a[4], a[6], a[8], a[10], a[12], a[14]). 4. В конце сортируем вставками все 16 элементов.
4. В конце сортируем вставками все 16 элементов.
№4Что такое список: пустая структура – это список; список – это начальный узел (голова) и связанный с ним список. struct Node {char word[40]; // слово int count; // счетчик повторений Node *next; // ссылка на следующий элемент };
Указатель на эту структуру:typedef Node *PNode;
Адрес начала списка: PNode Head = NULL;
№5Очередь – это линейная структура данных, в которой добавление элементов возможно только с одного конца (конца очереди), а удаление элементов – только с другого конца (начала очереди).
FIFO = First In – First Out
«Кто первым вошел, тот первым вышел».
Операции с очередью: 1).добавить элемент в конец очереди (PushTail = втолкнуть в конец); 2). удалить элемент с начала очереди (Pop).
№6. Дерево – это структура данных, состоящая из узлов и соединяющих их направленных ребер (дуг), причем в каждый узел (кроме корневого) ведет ровно одна дуга.
Корень – это начальный узел дерева.
Лист – это узел, из которого не выходит ни одной дуги.
С помощью деревьев изображаются отношения подчиненности (иерархия, «старший – младший», «родитель – ребенок»).
Предок узла x – это узел, из которого существует путь по стрелкам в узел x.
Потомок узла x – это узел, в который существует путь по стрелкам из узла x.
Родитель узла x – это узел, из которого существует дуга непосредственно в узел x.
Сын узла x – это узел, в который существует дуга непосредственно из узла x.
Брат узла x (sibling) – это узел, у которого тот же родитель, что и у узла x.
Высота дерева – это наибольшее расстояние от корня до листа (количество дуг).
Рекурсивное определение:
-
Пустая структура – это дерево.
-
Дерево – это корень и несколько связанных с ним деревьев.
Двоичное (бинарное) дерево – это дерево, в котором каждый узел имеет не более двух сыновей.
-
Пустая структура – это двоичное дерево.
-
Двоичное дерево – это корень и два связанных с ним двоичных дерева (левое и правое поддеревья).
Применение:
-
поиск данных в специально построенных деревьях (базы данных);
-
сортировка данных;
-
вычисление арифметических выражений;
-
кодирование (метод Хаффмана).
Структура узла:
struct Node {
Int data; // полезные данные
Node *left, *right; // ссылки на левого // и правого сыновей
};
typedef Node *PNode;
Ключ – это характеристика узла, по которой выполняется поиск (чаще всего – одно из полей структуры).
Слева от каждого узла находятся узлы с меньшими ключами, а справа – с бóльшими.
Как искать ключ, равный x:
-
если дерево пустое, ключ не найден;
-
если ключ узла равен x, то стоп.
-
если ключ узла меньше x, то искать x в левом поддереве;
-
если ключ узла больше x, то искать x в правом поддереве.
Обход дерева – это перечисление всех узлов в определенном порядке.
№7Граф – это набор вершин (узлов) и соединяющих их ребер (дуг).
Направленный граф (ориентированный, орграф) – это граф, в котором все дуги имеют направления.
Цепь – это последовательность ребер, соединяющих две вершины (в орграфе – путь).
Цикл – это цепь из какой-то вершины в нее саму.
Взвешенный граф (сеть) – это граф, в котором каждому ребру приписывается вес (длина).
Связный граф – это граф, в котором существует цепь между каждой парой вершин.
k-cвязный граф – это граф, который можно разбить на k связных частей.
Полный граф – это граф, в котором проведены все возможные ребра (n вершин → n(n-1)/2 ребер).
Матрица смежности – это матрица, элемент M[i][j] которой равен 1, если существует ребро из вершины i в вершину j, и равен 0, если такого ребра нет.
Весовая матрица – это матрица, элемент W[i][j] которой равен весу ребра из вершины i в вершину j (если оно есть), или равен ∞, если такого ребра нет.
Жадный алгоритм – это многошаговый алгоритм, в котором на каждом шаге принимается решение, лучшее в данный момент.
Шаг в задаче Прима-Краскала – это выбор еще невыбранного ребра и добавление его к решению.
В задаче Прима-Краскала жадный алгоритм дает оптимальное решение!
В целом может получиться не оптимальное решение (последовательность шагов)!
Алгоритм Дейкстры (E.W. Dijkstra, 1959)
-
присвоить всем вершинам метку ∞;
-
среди нерассмотренных вершин найти вершину j с наименьшей меткой;
-
для каждой необработанной вершины i: если путь к вершине i через вершину j меньше существующей метки, заменить метку на новое расстояние;
-
если остались необработанные вершины, перейти к шагу 2;
-
метка = минимальное расстояние.
№7Указатель – это переменная, в которую можно записывать адрес другой переменной (или блока памяти).
Объявление:
char *pC; // адрес символа
// (или элемента массива)
int *pI; // адрес целой переменной
float *pF; // адрес вещественной переменной
Как записать адрес:
int m = 5, *pI;
int A[2] = { 3, 4 };
pI = & m; // адрес переменной m
pI = & A[1]; // адрес элемента массива A[1]
pI = NULL; // нулевой адрес
-
при объявлении указателя надо указать тип переменных, на которых он будет указывать, а перед именем поставить знак *;
-
знак & перед именем переменной обозначает ее адрес;
-
знак * перед указателем в рабочей части программы (не в объявлении) обозначает значение ячейки, на которую указывает указатель;
-
для обозначения недействительного указателя используется константа NULL (нулевой указатель);
-
при изменении значения указателя на n он в самом деле сдвигается к n-ому следующему числу данного типа, то есть для указателей на целые числа на n*sizeof(integer) байт;
-
указатели печатаются по формату %p.
Нельзя использовать указатель, который указывает неизвестно куда (будет сбой или зависание)!
Динамические массивы
Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом.
Особенности:
-
все элементы имеют один тип
-
весь массив имеет одно имя
-
все элементы расположены в памяти рядом
Примеры:
-
список учеников в классе
-
квартиры в доме
-
школы в городе
-
данные о температуре воздуха за год
-
для выделения памяти в языке Си используются функции malloc и calloc;
-
в языке C++ удобнее использовать оператор new;
указатель = new тип [размер];
-
результат работы оператора new – адрес выделенного блока памяти, который нужно сохранить в указателе;
-
если оператор new вернул нулевой указатель (NULL), память выделить не удалось;
-
с динамическим массивом можно работать так же, как и с обычным (статическим);
-
для освобождения блока памяти нужно применить оператор delete:
delete указатель;
-
Проблемы и особенности использование текстовых процессоров для автоматизации процессов совместной работы над документами.
-
Методы, подходы и технологии повышения производительности в работе с текстовыми процессорами.
-
Общая характеристика и функциональные возможности табличных процессоров.
-
Особенности использования табличных процессоров для графического представления данных.
13.Системы управления базами данных. Характеристика и функциональные возможности СУБД MS Access. СУБД Access использует реляционную модель базы данных, в которой данные представлены в виде взаимосвязанных таблиц (отношений по англ. - relations).
Важнейшим этапом проектирования базы данных является разработка информационно-логической (инфологической) модели предметной области, не ориентированной на СУБД, но отражающей предметную область в виде совокупности информационных объектов и их информационных связей.
СУБД Access позволяет работать с объектами базы данных, к которым относятся таблицы, запросы, формы, отчеты, страницы доступа, макросы и модули.
14.Проектирование таблиц средствами СУБД MS Access. Понятие конструктора таблиц. Таблицы служат для хранения данных в определенной структуре. Таблицы непосредственно хранят информацию, относящуюся к конкретной предметной области.
Таблицы являются объектами базы данных, поэтому сначала необходимо создать собственно базу данных, в контексте которой таблицы и будут создаваться.
пять вариантов создания таблицы: режим таблицы; мастер таблиц; импорт таблиц; связь с таблицами; конструктор.
Режим конструктора характеризуется наибольшей трудоемкостью, но и большей гибкостью и возможностью точно настроить свойства полей таблицы.
Создание таблицы в режиме конструктора.
В режиме конструктора пользователь сам разрабатывает структуру создаваемой таблицы, а именно: задает имена полей и их типы, настраивает свойства каждого поля, а также формирует первичный ключ на основе одного или несколько полей.