
- •Понятие алгоритма и свойства алгоритмов.
- •Формализация понятия алгоритма: машина Тьюринга. Представление машин Тьюринга с помощью диаграмм. Табличное представление программ машины Тьюринга. Композиция машин Тьюринга. Примеры.
- •Двумерная таблица
- •С помощью диаграммы
- •Формализация понятия алгоритма: нормальные алгорифмы Маркова, определение и выполнение. Примеры.
- •Вычислимые функции. Базовый набор функций и операции над функциями: суперпозиция, примитивная рекурсия, минимизация. Классы вычислимых функций. Примеры.
- •Проблема алгоритмической разрешимости. Примеры неразрешимых алгоритмических проблем.
- •Методы разработки алгоритмов. Суперпозиция, итерация, рекурсия и др.
- •Технология разработки программ. Технология и методы тестирования программ.
- •Составление алгоритма.
- •Создание документации, помощи.
- •Рекурсивные алгоритмы: определение и виды рекурсии. Реализация рекурсии и использование стека. Рекурсия и итерация. Примеры, сравнение.
- •Задача анализа сложности алгоритмов. Временная и емкостная сложности. Оценки сложности. Использование управляющего графа для оценки сложности линейных и ветвящихся алгоритмов.
- •Оценка сложности циклических алгоритмов. Примеры.
- •Количество повторений вложенного цикла не зависит от параметра внешнего цикла
- •Количество повторений вложенного цикла зависит от параметра внешнего цикла
- •Оценка сложности рекурсивных алгоритмов: рекурсия с одним и многими рекурсивными вызовами, случай косвенной рекурсии.
- •If … then процедура_1
- •Оптимизация алгоритмов. Примеры.
- •Понятие сложности задачи и классы сложности задач. Понятие сводимости, полиномиальная сводимость.
- •Методы сортировок: сортировка массивов простыми включениями, сортировка массивов простым выбором, сортировка обменами. Анализ сложности алгоритмов сортировки.
- •Сортировка методом простого выбора
- •Сортировка методом простых вставок (метод прямого (простого) включения)
- •2 Пересылки записей
- •1 Пересылка записи
- •Методы сортировок: алгоритм быстрой сортировки. Анализ сложности алгоритма быстрой сортировки.
- •Обзор методов сортировок: сортировка Шелла, пирамидальная сортировка, сортировка слияниями, Шейкер-сортировка, сортировка подсчетом, цифровая сортировка и др.
- •Методы поиска: линейный поиск, метод бинарного поиска, поиск с помощью бинарного дерева, метод случайного поиска и др.
- •Алгоритмы внешней сортировки: метод естественного слияния, метод сбалансированного слияния. Двухпутевая и многопутевая реализации. Фибоначчиева сортировка.
- •Метод квадратичного рехеширования.
- •Рекурсивные типы данных: определение, примеры.
- •Id:integer; {номер вершины}
- •Операции над линейными списками: создание списков, включение элементов в списки (рассмотреть различные способы). Виды связных списков.
- •Операции над линейными списками: удаление элементов списков. Поиск элементов списков, сравнение списков.
- •Операции над бинарными деревьями: включение вершины в дерево. Обход деревьев, подсчет числа вершин в дереве. Подсчет числа вершин, удовлетворяющих заданному условию.
- •Операции над бинарными деревьями: удаление вершины дерева.
- •Понятие сбалансированности бинарного дерева. Приведение дерева к авл-сбалансированному виду: виды и формулы поворотов.
- •Анализ сложности алгоритмов работы с бинарными деревьями.
- •Деревья со многими потомками. Специальные виды деревьев: деревья формул, б-деревья, 2-3 деревья, красно-черные деревья.
- •Понятие графа. Способы представления графов. Операции над графами: добавление вершины, добавление дуги, создание графа.
- •Операции над графами: поиск вершины, удаление вершины, удаление дуги, текстовый вывод графа.
- •Алгоритмы поиска на графах: поиск в глубину и в ширину.
- •Примеры алгоритмов на графах (поиск кратчайшего пути, поиск циклов, алгоритм построения остовного дерева, выделения связных компонентов…).
- •Формальные языки и грамматики. Определение языка, описание языка. Понятие грамматики.
- •Классификация формальных языков. Понятие вывода.
- •Описание синтаксиса языка с помощью синтаксических диаграмм и бнф. Примеры.
- •Основы теории информации. Понятие энтропии. Измерение информации: вероятностный и алфавитный подходы.
- •Основы теории кодирования информации. Метод Шеннона-Фано. Код Хаффмана.
- •1. Принцип программного управления.
- •2. Принцип однородности памяти.
- •3. Принцип адресности.
- •Конвейеризация вычислений.
- •Иерархия запоминающих устройств эвм
- •Устройство процессора. Понятие архитектуры cisc, risc, vliw.
- •Работа процессора
- •Cisc-процессоры
- •Risc-процессоры
- •Misc-процессоры
- •Vliw-процессоры
- •Типы данных, поддерживаемые процессорами Intel, форматы данных.
- •Система команд Intel, классификация команд, форматы команд.
- •Объектно-ориентированное программирование (ооп): основные понятия.
Описание синтаксиса языка с помощью синтаксических диаграмм и бнф. Примеры.
Для описания синтаксиса языков программирования используются в основном два средства:
БНФ (Бэкуса-Науэра формы)
Синтаксические диаграммы
В БНФ все нетерминальные символы заключаются в <>
::= - это есть
| - или
[] - может быть или не быть
{} - может быть 0 и более раз
Пример: <условный оператор>::=if <условие> then <оператор> [else <оператор>]
<идентификатор>::=<буква>{<буква>|<цифра>}
<цифра>::=0|1|2|3|4|5|6|7|8|9
<буква>::=A|B|C|D|…|X|Y|Z
Комбинация знаков |,{},[] вместе с различными строками – металингвистические формулы.
Синтаксические диаграммы Вирта.
Каждому правилу, задающему конструкцию языка, ставится в соответствие одна диаграмма. Диаграмма является изображением ориентированного графа, вершины которого соответствуют символам правой части правила.
Вершины графа – кружочки (овалы) или прямоугольники. Прямоугольники – нетерминальные символы, кружок – терминальный.
Пример (про идентификатор или вот такой, например)
Пример из лабораторной:
<арифметическое выражение>::=<унарная операция><операнд>|<><бинарная операция>< операнд >|<операнд >
< унарная операция >::=+|-
< бинарная операция >::=+|-|*|/|div|mod
< операнд >::=<константа>|<переменная>|<вызов функции>|(<арифметическое выражение>)|<арифметическое выражение>
Основы теории информации. Понятие энтропии. Измерение информации: вероятностный и алфавитный подходы.
Субъективный подход.
Сообщение информативно для конкретного индивида, если выполняются два условия:
1. Оно новое.
2. Оно понятное
Объективный подход
Передается последовательность из N символов a1 , a2 … an . Каждый символ взят из алфавита Аm, содержащего m символов. k – количество различных последовательностей.
I – количество информации
Формула Хартли: I=log2k
k=mn => I=n log2m
log2m – информационный вес одного символа. В двоичном алфавите – 1 бит.
Информационная энтропия – мера неопределенности состояния некоторой случайной величины (физической системы) со счетным числом состояний.
Пусть х – случайная величина. х1 , х2 … хn – ее возможные различные состояния.
Если все значения равновероятны, то энтропия равна H(x)=log2N
1 бит информации – количество информации в сообщении, уменьшающем неопределенность знаний в два раза.
Если случайная величина может находиться только в одном состоянии, то ее энтропия равно 0. Неопределенность системы тем выше, чем больше число ее возможных равновероятных состояний.
Максимум энтропии достигается в том случае, когда все события системы равновероятны.
Формула Шеннона
Am – алфавит из m символов. pi – вероятность появления i-го символа. 1 символ несет количество информации, равное (-log2pi)
На месте каждого символа в сообщении может стоять любой символ из исходного алфавита. Тогда количество информации, приходящейся на 1 символ сообщения равно среднему количеству информации по всем символам алфавита.
-
формула Шеннона
Общее количество информации в сообщении
из n символов -
.
В случае равновероятных событий формула
преобразится в формулу Хартли.
Пусть х – случайная величина. х1 , х2 … хm – ее возможные различные состояния с вероятностями p1 , p2 … pm
Количество энтропии
Энтропия системы тем больше, чем менее отличаются вероятности ее состояний друг от друга.
Количество информации, приобретаемой при полном выяснении состояния системы, равно полной энтропии системы. Если после некоторого полученного сообщения неопределенность системы стала меньше, но не исчезла, то количество информации равно приращению энтропии.