
- •Билет 1.
- •1. Инкапсуляция, наследование, полиморфизм. Классы, объекты и отношения между ними. Диаграммы логического уровня.
- •2. Симметричные блочные криптоалгоритмы. Сеть Фейстеля.
- •Билет 2
- •1. Объявление и реализация классов на языке Паскаль.
- •2. Интерфейс. Пользовательский интерфейс. Классификация пользовательских интерфейсов.
- •Билет 3.
- •1. Графы. Основные определения. Машинное представление графов в последовательной памяти и связанной памяти.
- •2. Общая схема симметричной криптосистемы. Алгоритм построения цепочек.
- •3. Написать процедуру, которая выполняет вставку компоненты по заданному ключу.
- •Билет 4.
- •1. Нормальный алгоритм Маркова.
- •2. Парадигмы интерфейсов.
- •Билет 5.
- •1. Понятие процесса. Состояние процессов. Алгоритмы планирования процессов.
- •2. Общие сведения об ассиметричных криптоалгоритмах. Понятие электронной цифровой подписи.
- •3. Вычислить факториал числа 8.
- •Билет 6.
- •1. Файловая системаFat.
- •2. Основные компоненты графических пользовательских интерфейсов.
- •3. Если элементы массивыD[1…5] равны соответственно 4, 1, 5, 3, 2, то значение выражениеD[d[3]]-d[d[5]] равно?
- •Билет 7
- •1. Структуры распределенных вычислительных систем(топология, физические и логические элементы сетей эвм)
- •2. Встроенные средства контроля доступа в современных ос.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 8
- •1.Трансляторы, компиляторы и интерпретаторы: определение, общая схема работы. Варианты взаимодействия блоков транслятора.
- •2. Эргономические требования, предъявляемые к дизайну пользовательских интерфейсов.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 9
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Нормализация таблиц при проектировании баз данных. Нормальные формы (1нф, 2нф, 3нф, нфбк).
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 10.
- •1. Понятие алгоритма. Интуитивное понятие алгоритма.
- •2. Функции субд.
- •Билет 11.
- •1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- •2. Принципы и виды отладки программного средства. Автономная отладка программного средства. Комплексная отладка программного средства.
- •3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов, не превышающих заданногоm, далее вывести на экран.
- •Билет 12.
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Модели объектов проектирования .
- •Билет 13.
- •1. Концепции информационного моделирования. Создание моделей на языкеUml.
- •2. Модели систем управления данными: сетевая, иерархическая, реляционная модель.
- •Билет 14.
- •1. Принципы создания компонент в визуальных средах разработки.
- •2. Жизненный цикл программного обеспечения. Модели жизненного цикла по: каскадная, спиральная. Стадии, фазы работы жизненного цикла.
- •Билет 15.
- •1. Деревья. Основные определения. Логическое представление и изображение деревьев. Бинарные деревья. Машинное представление деревьев в памяти эвм. Алгоритмы прохождения деревьев.
- •2. Реляционная модель данных. Базовые понятия. Отношения и свойства отношений. Составляющие реляционной модели данных.
- •Билет 16.
- •1. Предваренная, скулемовская и клазуальная формы. Логическое следование. Унификация. Алгоритм унификации. Исчисление метода резолюций.
- •2. Структура внешнего описания пс. Качество по. Критерии и примитивы качества.
- •Билет 17.
- •1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- •2. Стадии и этапы разработки базы данных.
- •3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов не прерывающих заданногоm, далее вывести на экран.
- •Билет 18.
- •1. Понятие о способах коммутации в распределенных вычислительных системах(коммутации каналов, коммутация пакетов).
- •2. Процессы управления разработкой пс. Структура управления разработки пс. Планирование составление расписания по разработке пс. Аттестация пс.
- •3. НаписатьHtmLкод для отображения в браузере таблицы:
- •Билет 19.
- •1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- •2. Трехуровневая архитектура схем баз данных в субд.
- •3. НаписатьHtmLкод для отображения в браузере таблицы:
- •Билет 20.
- •1. Формальные языки и грамматики. Классификация грамматик по Хомскому.
- •2. Методы разработки структуры пс. Восходящая разработка пс. Нисходящая разработка. Конструктивный подход. Архитектурный подход разработки пс.
- •Билет 21.
- •1. Конечные автоматы, автомат со стековой памятью (магазин).
- •2. Организация шин.
- •Билет 22.
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Организация памяти эвм.
- •Билет 23.
- •1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- •2. Инструментальные среды разработки и сопровождения программных средств и принципы их классификации. Основные классы инструментальных сред разработки и сопровождения программных средств.
- •Билет 24.
- •1. Динамическое поведение объектов. Состояния, события, сигналы и сообщения. Модели взаимодействия объектов.
- •2. Типы структур вычислительных машин и систем, перспективы и развития.
- •Билет 25
- •1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- •2. Основные понятия, определения и назначение сапр
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 26.
- •1. Сравнительный анализ алгоритмов поиска: линейный, двоичный.
- •2. Факторы, определяющие развитие архитектуры вычислительных систем.
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 27.
- •1. Рекурсивные функции. Лямбда- исчисление Черча.
- •2. Обеспечивающие системы сапр.
- •Билет 28.
- •1. Память. Типы адресов. Виды распределения памяти.
- •2. Архитектура системы команд.
- •3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- •Билет 29.
- •1. Аппаратура передачи данных (модемы).
- •2. Проектные процедуры в сапр.
- •Билет 30.
- •1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- •2. Стековая архитектура вычислительных машин.
- •Билет 31
- •1. Синтаксический разбор. Классификация методов синтаксического разбора.
- •2. Интеграция систем автоматизации проектирования и управления(cad–cam–capp– системы).
- •Билет 32
- •1. Понятие алгоритма. Интуитивное понятие алгоритма.
- •2. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств. Особенности объектного подхода к разработке внешнего описания программного средства.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 33.
- •1. Объявление и реализация классов на языке Паскаль.
- •2. Архитектура клиент-сервер. Распределенные базы данных.
- •Билет 34.
- •1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- •2. Вычислительные методы решения задач на эвм. Приближения функций. Интерполяция и Метод наименьших квадратов.
- •Билет 35.
- •1. Компоненты и интерфейсы. Диаграммы физического уровня.
- •2. Правовые вопросы организации Интернет-сайта.
- •Билет 36.
- •1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- •2. Моделирование как процесс познания. Математическая модель, понятие вычислительного эксперимента и его структура.
- •3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- •Билет 37
- •1. Улучшенные методы сортировки. Сортировка Шелла, Хоара, улучшенная сортировка выбором. Сортировка с помощью дерева.
- •2. Правовые вопросы, возникающие при использовании электронной почты.
- •3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- •Билет 38.
- •1. Классификация ос. Требования, предъявляемые к ос.
- •2. Понятие системы. Математическое определение системы. Классификация систем.
- •Билет 39.
- •1. Понятия файла. Структура файла. Реализация файлов
- •2. Виды объектов авторского права. Виды авторских прав. Программы для эвм и базы данных, как объектов авторского права.
- •3. Подсчитать сколько раз в массиве встречается заданный элементN. Вывести количество данных вхождений.
- •Билет 40.
- •1. Характеристики локальных вычислительных сетей типаEthernet.
- •2. Нормальный алгоритм Маркова.
- •3. Написать кодcssфайла в котором при помощи псевдоклассов описывается поведение ссылок отличное от стандартного.
- •Билет 41.
- •1. Взаимодействие узлов с использованием стека протоколовTcp/ip.
- •2. Объекты патентного права.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 42.
- •1. Машина Тьюринга.
- •2. Уровни моделирования. Общая характеристика и особенности. Моделирование на микроуровне. Обобщенная модель и моделирование тепловых систем (краевая задача для уравнения теплопроводности)
- •2) Уравнение теплопроводности
- •Билет 43.
- •1. Архитектура системы команд.
- •2. Уровни моделирования. Моделирование на макроуровне. Типичная общая модель и моделирование электрических систем.
- •Билет 44.
- •1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- •2. Принципы построения современных эвм.
- •3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- •Билет 45.
- •1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- •2. Численное решение задачи Коши для обыкновенных дифференциальных уравнений. Метод Эйлера. Одношаговые и многошаговые методы.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
3. Написать процедуру, которая выполняет вставку компоненты по заданному ключу.
include <stdio.h>
#include <stdlib.h>
#define MyType int
//Будем считать, что ключ в нашем случае - это эзначение типа int.
//Хранение значений -в виде двоичного однонаправленного дерева. Левое поддерево - данные, со значением ключа меньше, чем вершина, прваое - большим, чем вершина.
typedef struct element //элемент-вершина дерева.
{
int key;
struct element * left_el;
struct element * right_el;
MyType val;
} MyElement;
typedef struct
{
MyElement * tree_root; //корень;
int size;
} MyMap; //сама структура хранилища.
MyMap initNewMap()
{
MyMap mm;
mm.tree_root=NULL;
mm.size=0;
return mm;
}
int add_element(MyMap * mm, int k, MyType el) //добавить пару ключ-значение
{
MyElement * new_el = malloc(sizeof(MyElement));
if(new_el)
{
new_el->key=k;
new_el->val=el;
new_el->left_el=NULL;
new_el->right_el=NULL;
if(mm->tree_root==NULL)
{
mm->tree_root=new_el;
mm->size++;
return 0;
}
if(!paste_element(new_el, mm->tree_root))
{
mm->size++;
//printf("SIZE: %d \n", mm->size);
return 0;
}
else
{
printf("ERROR!\n");
}
}
else
{
return -1;
}
}
int paste_element(MyElement * me, MyElement * root) //рекурсивная функция вставки. 0 - в случае успеха, -1 - ошибка
{
if(root==NULL)
{
return -1;
}
if(me->key==root->key)
{
root->val=me->val;
return 0;
//printf("ALREADY EXIST!\n"); //Значиение с совпадающим ключем заменяет текущее
}
if(me->key<root->key)
{
if(root->left_el==NULL)
{
//printf("ADD LEFT!\n");
root->left_el=me;
return 0;
}
else
root=root->left_el;
}
if(me->key>root->key)
{
if(root->right_el==NULL)
{
//printf("ADD Right!\n");
root->right_el=me;
return 0;
}
else
root=root->right_el;
}
paste_element(me, root);
}
MyType get_value(MyMap *mm, int key)
{
return find_element(key, mm->tree_root);
}
MyType find_element(int key, MyElement * root)
{
if(root==NULL)
{
return -1;
}
if(key==root->key)
return root->val;
else
{
if(key<root->key)
{
if(root->left_el==NULL)
{
return -1;
}
else
root=root->left_el;
}
if(key>root->key)
{
if(root->right_el==NULL)
{
return -1;
}
else
root=root->right_el;
}
find_element(key, root);
}
}
int main(void)
{
MyMap m_map = initNewMap();
add_element(&m_map, 12, 13);
add_element(&m_map, 15, 14);
add_element(&m_map, 14, 16);
add_element(&m_map, 15, 12);
add_element(&m_map, 19, 123);
add_element(&m_map, 39, 121);
printf ("VALUE 15: %d\n",get_value(&m_map, 15));
printf ("VALUE 19: %d\n",get_value(&m_map, 19));
printf ("VALUE 12: %d\n",get_value(&m_map, 12));
printf ("VALUE 12: %d\n",get_value(&m_map, 552));
return 0;
}
Билет 4.
1. Нормальный алгоритм Маркова.
Норма́льный алгори́тм Ма́ркова (НАМ) — один из стандартных способов формального определения понятия алгоритма. Понятие нормального алгоритма введено А. А. Марковым в конце 1940-х годов. Традиционно, когда говорят об алгоритмах Маркова, используют слово «алгорифм».
Нормальный алгоритм описывает метод переписывания строк, похожий по способу задания на формальные грамматики. НАМ является Тьюринг-полным языком, что делает его по выразительной силе эквивалентным машине Тьюринга и следовательно современным языкам программирования. ( про машину Тьюринга лучше не упоминать, чтобы не было дополнительных вопросов, но в курсе дела надо быть).
На основе НАМ был создан функциональный язык программирования Рефал.
Нормальные
алгоритмы являются вербальными, то есть
предназначенными для применения к
словам в различных алфавитах. Определение
всякого нормального алгоритма состоит
из двух частей: определения алфавита
алгоритма (к словам из символов которого
алгоритм будет применяться) и определения
его схемы. Схемой нормального алгоритма
называется конечный упорядоченный
набор т. н. формул подстановки,
каждая из которых может быть простой
или заключительной. Простыми формулами
подстановки называются слова вида ,
гдеL и D —
два произвольных слова в алфавите
алгоритма (называемые, соответственно,
левой и правой частями формулы
подстановки). Аналогично, заключительными
формулами подстановки называются слова
вида
,
гдеL и D —
два произвольных слова в алфавите
алгоритма. При этом предполагается, что
вспомогательные буквы
и
не
принадлежат алфавиту алгоритма (в
противном случае на исполняемую ими
роль разделителя левой и правой частей
следует избрать другие две буквы).
Примером схемы нормального алгоритма в пятибуквенном алфавите | * abc может служить схема
Процесс
применения нормального алгоритма к
произвольному слову V в
алфавите этого алгорифма представляет
собой дискретную последовательность
элементарных шагов, состоящих в следующем.
Пусть V' —
слово, полученное на предыдущем шаге
работы алгорифма (или исходное слово V,
если текущий шаг является первым). Если
среди формул подстановки нет такой,
левая часть которой входила бы в V',
то работа алгоритма считается завершённой,
и результатом этой работы считается
слово V'.
Иначе среди формул подстановки, левая
часть которых входит в V',
выбирается самая верхняя. Если эта
формула подстановки имеет вид ,
то из всех возможных представлений
словаV' в
виде RLS выбирается
такое, при котором R —
самое короткое, после чего работа
алгоритма считается завершённой с
результатом RDS.
Если же эта формула подстановки имеет
вид
,
то из всех возможных представлений
словаV' в
виде RLS выбирается
такое, при котором R —
самое короткое, после чего слово RDSсчитается
результатом текущего шага, подлежащим
дальнейшей переработке на следующем
шаге.
Например, в ходе процесса применения алгорифма с указанной выше схемой к слову | * | | последовательно возникают слова | b * | , ba | * | , a | * | , a | b * , aba | * , baa | * , aa | * ,aa | c, aac, ac | и c | | , после чего алгорифм завершает работу с результатом | | . Другие примеры смотрите ниже.
Нормальные алгорифмы оказались удобным средством для построения многих разделов конструктивной математики. Кроме того, заложенные в определении нормального алгорифма идеи используются в ряде ориентированных на обработку символьной информации языков программирования — например, в языке Рефал.
Пример
Данный алгоритм преобразует двоичные числа в «единичные», то есть на выходе получается строка из N единичек, если на входе у нас было N в двоичной системе. Например, 101 преобразуется в 5 единиц:
Правила:
«|0» → "0||"
«1» → "0|"
«0» → "" (пустая строка)
Исходная строка:
«101»
Выполнение:
«0|01»
«00||1»
"00||0|"
"00|0|||"
"000|||||"
"00|||||"
"0|||||"
"|||||"