
- •1.1. Внутренняя сортировка (сортировка массивов).
- •Число степеней свободы материальной системы. Обобщенные координаты.
- •1.4 Розробити консольну програму, яка відкриває файл порціями по 4Кб та відображае його зміст в вікні. Для роботи з файлами викорастати Win32 Api
- •Определить маску подсети, которая соответствует диапазону ip-адресов.
- •1 Способ
- •2 Способ
- •2.2 Проектирование концептуальной модели предметной области с использованием er – диаграммы
- •2.3 . Принцип возможных перемещений. Обобщенные силы.
- •2.4 Написать 2 варианта запуска Notepad.Exe для обработки файла
- •1 Способ
- •2 Способ
- •3.2 Структура данных и ограничения реляционной модели. Реляционная модель.
- •Внешние ключи.
- •Основные стратегии поддержки ссылочной целостности.
- •Языки манипулирования данными в реляционной модели.
- •3.3 Вариационный принцип Гамильтона
- •3.4 Написать 2 конс. Программы Master и Slave. Master запускает Slave и передает ей через ком. Строку дескриптор своего процесса. Slave ожидает окончания работы Master и выдает сообщение.
- •4.2 Нормализация отношений и теория нормальных форм
- •Теория нормальных форм.
- •4.3 Дифференциальные уравнения Лагранжа II рода
- •4.4 Написать 2 программы, демонстрир. Синхрониз. Процессов с пом. Событий.
- •5.2 Алгоритм приведения отношений к третьей нормальной форме.
- •5.3 Фазовая плоскость. Фазовые кривые. Особые точки на фазовой плоскости, их классификация.
- •Классификация особых точек
- •5.4 Программа, демонстрирующая синхронизацию доступа к глобальному массиву с пом. Мютексов
- •6.2 Использование операций реляционной алгебры для создания языка запросов Основные операции:
- •1. Унарные(с одним отношением). 2. Бинарные.
- •Производные операзии
- •6.3 Численное интегрирование уравнений Лагранжа
- •6.4 Программа, выводящая информ . О загрузке операт . Памяти компьютера
- •7.2 Назначение языка sql.
- •Типы данных
- •7.3 Дифференциальные уравнения Гамильтона
- •7.4 Параметризированный класс очередь
- •8.1 Понятие дерева. Классификация деревьев. Способы представления дерева.
- •8.2 Структура запросов sql. Запросы с условием.
- •Запросы с группировкой.
- •Сортировка (упорядочивание) выходных полей.
- •Объединение таблиц (команда union).
- •Использование кванторов в подзапросах.
- •8.3 Динамика популяции при отсутствии и наличии смертности
- •8.4 Составить программу на Asm для очистки экрана
- •9.1 Общие операции над деревьями. Процедуры добавления и удаления элемента. Количество листьев и узлов в дереве.
- •9.2 Язык манипулирования данными sql. Добавление строк.
- •Удаление строк.
- •Изменение данных.
- •9.3 Система «хищник-жертва»
- •9.4 Cоставить прграмму на Asm для преобразования строчных букв в прописные
- •10.1 Общие операции над деревьями. Процедуры добавления и удаления элемента. Количество листьев и узлов в дереве.
- •10.2 Язык определения данных sql. Создание бд.
- •Создание таблиц.
- •Модификация таблиц.
- •10.3 Автоколебания. Предельный цикл. Асимптотический метод исследования автоколебаний.
- •10.4 Сост . Прогр . На Asm для нахождения в заданном массиве номера первого числа, равного нулю
- •11.1 Формат команд процессора 80386. Способы адресации, которые применяются в командах процессора 80386.
- •11.2 Предоставления прав доступа sql.
- •11.3 Виды топологических структур и их характеристики.
- •Класс широковещательные сети
- •2. Древовидная топология.
- •3. Звездообразная топология.
- •Класс последовательные сети
- •1. Звездообразная топология с активным центром.
- •2. Кольцевая топология.
- •11.4 Написать на Asm программу для сохранения текстового экрана в буфере и последующей записи буфера в файл
- •12.1 Методы передачи данных в сетях эвм.
- •1 Коммутация каналов
- •Коммутация сообщений
- •Коммутация пакетов
- •12.2 Защищенный режим работы микропроцессора. Адресация в защищенном режиме. Дескрипторные таблицы. Формат дескриптора сегмента. Модель памяти flat.
- •Проектирование приложений в системе клиент - сервер.
- •Проектирование форм. Формы для просмотра.
- •Формы для ввода данных.
- •Проектирование отчетов.
- •Тестирование приложения.
- •Распределенные базы данных.
- •12.4 Дан файл символов построить частотный словарь, представив его виде бинарного дерева поиска и составить линейно скобочную запись.
- •13.1 Win32 api и поддерживающие его платформы. Объекты ядра. Защита. Совместное использование объектов ядра несколькими процессами. Процессы. Описатель экземпляра процесса.
- •13.2 Системы искусственного интеллекта на основе решателей задач
- •13.3 Архитектура сетей эвм. Иерархия протоколов.
- •13.4 Дан файл, компоненты которого являются действительными числами. Сформировать линейный список и
- •14.1 Потоки. Функция CreateThread. Завершение потока. Распределение процессорного времени между потоками. Изменение класса приоритета процесса. Установка относительного приоритета потока.
- •14.2 "" Процедура в игровых задачах
- •14.3 Методы повторной передачи arq.
- •1. Arq с остановкой и ожиданием Send and Wait
- •2. Arpanet arq (с временными подканалами)
- •3. Arq на n шагов назад (Go Back n)
- •4. Arq с выборочным повтором (с адресным переспросом)
- •14.4 // Дан файл символов. Сформировать линейный список. Просмотреть линейный список из головы и составить из символов строку.
- •Раздел varchar(50),
- •15.1 Архитектура памяти в Win32. Виртуальное адресное пространство. Регионы в адресном пространстве. Передача региону физической памяти.
- •15.2 Особенности поиска решений в игровых задачах
- •16.1 Работа с файлами в Win32.
- •4) GetVolumeInformation возвращает информацию о файловой системе и дисках (директориях ).
- •7) GetComputerName, GetUserNameA
- •8) GetSystemDirectory, GetTempPath, GetWindowsDirectory, GetCurrentDirectory
- •16.2 Представление задач в пространстве состояний
- •16.3 Лвс Ethernet. Общая шина: Метод доступа.
- •16.4 Представить многочлен в виде линейного списка. Написать прогу кот выполняет сложение многочленов
- •17.1 Файлы, проецируемые в память.
- •17.2 Алгоритмы перебора в ширину и глубину в пространстве состояний
- •Алгоритм равных цен
- •Изменения при переборе в произвольных графах.
- •17.3 Повторители Ethernet. Разрешение коллизий.
- •17.4 Написать процедуру, которая осуществляет сложение целых чисел произвольной длины(двухсвязный список)
- •17.5Выдает список работников работают над проектом
- •18.1 Многозадачность. Распределение времени с вытеснением. Очереди потока и обработка сообщений. Архитектура очередей сообщений в Win32.
- •18.2 Алгоритм упорядочения поиска в пространстве состояний.
- •18.3 Лвс Token Ring. Функциональные процессы.Процесс инициализации станции
- •18.5 Выдает список поставщиков
- •19.1 Многозадачность. Распределение времени с вытеснением. Очереди потока и обработка сообщений. Архитектура очередей сообщений в Win32.
- •19.2 Метод сведения задач к подзадачам
- •19.3 Принципы межсетевого взаимодействия. Протокол ip.
- •19.4 Параметризированный ограниченный массив
- •20.1 Конструктивная модель стоимости сосомо.
- •20.2 Основные методы поиска в "и–или" деревьях Перебор в ширину в деревьях и – или.
- •Построение потенциального дерева решений t0. Эвристический поиск в деревьях и-или Стоимость деревьев типа и-или.
- •20.3 Протокол dhcp.
- •20.4 Параметризованная функция бинарного поиска в массиве
- •21.1 Основы com. Объект com. Серверы com. Фабрика класса. Интерфейс iUnknown.
- •2 Вариант ответа
- •21.2 Алгоритм упорядочения перебора при сведении задач к подзадачам
- •21.3 Разрешение имен узлов при помощи dns.
- •21.4 В области памяти, адресуемой регистром si нах-ся цепочка семибитных кодов символов….
- •22.1 Архитектура unix. Ядро системы. Файловая система. Типы файлов.
- •22.2 Проектирование приложений в системе клиент - сервер.
- •22.3 Протокол arp
- •22.4 Дан файл целых чисел компоненты которого различны, сформировать циклический линейный список, задать число n и удалять n-ый элемент в списке пока не останется 1
- •1 Вариант
- •2 Вариант
- •23.1 Командный интерпретатор shell. Общий синтаксис скрипта. Переменные. Команды, функции и программы. Условные выражения. Интерпретатор shell
- •23.2 Способы доступа к бд из приложений. Формы для просмотра.
- •Формы для ввода данных.
- •Проектирование отчетов.
- •Тестирование приложения.
- •23.3 Лвс Token Ring. Функциональные станции.
- •23.4 Вычислить значение арифметического выражения, преобразовав его в постфиксную форму. Предусмотреть со скобками и без скобок.(со стеком)
- •24.1 Файловая система ntfs.
- •24.2 Полнота реляционной субд (12 правил Кодда)
- •24.3 Модель взаимного соединения открытых систем.
- •24.4 // Сформировать числовой файл и отсортировать его компоненты с помощью двух стеков.
- •25.1 Функции dos , используемые при создании пользовательского вектора прерывания (Проиллюстрировать программой)
- •25.2 Распределенные базы данных.
- •25.3 Коммутаторы Ethernet
- •25.4 Дан файл символов сформировать дерево поиска описав процедуру удаления элнмента из дерева и функцию подсчета листьев в дереве.
1.4 Розробити консольну програму, яка відкриває файл порціями по 4Кб та відображае його зміст в вікні. Для роботи з файлами викорастати Win32 Api
#include <windows.h>
#include <tchar.h>
#ifndef UNICODE
#include <stdio.h>
#endif
#define BUFFERSIZE 0x1000
int_tmain(int argc, TCHAR * argv[])
{
TCHAR szFile[_MAX_PATH];
HANDLE hReadFile;
_tprintf(_T(“Имя файла”));
_getts(szFile);
hReadFile = CreateFile(szFile, GENERIC_READ,0,(LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATRIBUTE_NORMAL, (HANDLE) NULL);
if(hReadFile==INVALID_HANDLE_VALUE)
{
_tprintf(_T(“Ошибка открытия файла”));
return;
}
else
{
//считать порциями по 4 Кб и отобразить на экран
BYTE buffer[BUFFERSIZE];
DWORD dwRead;
do
{
BOOL fRead = ReadFile(hReadFile, buffe, BUFFERSIZE, &dwRead, NULL);
If(fRead == FALSE)
{
_tprintf(_T(“Ошибка чтения”));
break;
}
else if(dwRead == 0)
{
_tprintf(_T(“\r EOF обнаружен\n”));
break;
}
else
{
//отобразить данные
DWORD ndx;
For(ndx=0; ndx<dwRead;ndx++)
{
_tprintf(_T(“%c [%#2.2hx]\t”),buffer[ndx], (USHORT) buffer[ndx]);
}
}
}
while(dwRead == BUFFERSIZE);
CloseHandle(hReadFile);
Return 1;
}
-
Определить маску подсети, которая соответствует диапазону ip-адресов.
- от 128.71.0.1 до 128.71.255.254
- от 172.88.32.1 до 172.88.63.254
- от 61.8.0.1 до 61.15.255.254
- от 7.0.0.1 до 7.255.255.254
-
от 128.71.0.1 до 128.71.255.254
Маска подсети 255.255.0.0
-
от 172.88.32.1 до 172.88.63.254
1 Способ
172.88.32.1
172.88.63.254
255.255.?.0.
переводим из 10ой системы в 2ую
3210=001000002
6310=001111112
111000002=22410
Маска подсети 255.255.224.0
2 Способ
определяем шаг подсети
следующая подсеть 64 значит 64-32=32 шаг подсети 32
Это вес младшей единицы в маске
111000002=22410
маска подсети 255.255.224.0
-
от 61.8.0.1 до 61.15.255.254
61.8.0.1
61.15.255.254
255.?.0.0.
определяем шаг подсети
следующая подсеть 16 значит 16-8=8 шаг подсети 8
Это вес младшей единицы в маске
111110002 = 24810
маска подсети 255.248.0.0
-
от 7.0.0.1 до 7.255.255.254
Маска подсети 255.0.0.0
2.1 Указатели в С++, их использование. Динамическое распределение памяти
Переменные, которые хранят адреса других переменных, называются указателями.
Указатель - это переменная целого типа, которая интерпретируется как адрес байта памяти, содержащий некоторый элемент данных.
Суть концепции указателей состоит в том, что вы работаете с адресом ячейки памяти, получая лишь косвенный доступ к ее содержимому, благодаря чему появляется возможность динамически создавать и уничтожать переменные. Хотя с помощью указателей можно создавать чрезвычайно эффективные алгоритмы, сложность программы, в которой используются указатели, значительно возрастает.
В языках C/C++ все переменные должны быть предварительно объявлены. Объявление указателя pimemorycell_address выглядит следующим образом:
int *pimemorycell_address;
Символ * говорит о том, что создается указатель. Этот указатель будет адресовать переменную типа int. Следует подчеркнуть, что в C/C++ указатели могут хранить адреса только переменных конкретного типа. Если делается попытка присвоить указателю одного типа адрес переменной другого типа, возникнет ошибка либо во время компиляции, либо во время выполнения программы.
Обращение к переменной, чей адрес хранится в другой переменной, осуществляется путем помещения перед указателем оператора *: *pimemorycell_address. Такая запись означает, что будет произведен косвенный доступ к ячейке памяти через имя указателя, содержащего адрес ячейки. Например, если выполнить две показанные ниже строки, то переменная imemorycell_contentsпримет значение 20:
pimemorycell_address = &imemorycell_contents;
*pimemorycell_address = 20;
Чтобы объявить в программе указатель, который будет хранить адрес другого указателя, нужно просто удвоить число звездочек в объявлении:
int **ppi;
Каждый символ * читается как указатель на. Таким образом, количество указателей в цепочке, задающее уровень косвенной адресации, соответствует числу звездочек перед именем идентификатора. Уровень косвенной адресации определяет, сколько раз следует выполнить операцию раскрытия указателя, чтобы получить значение конечной переменной.
Во время компиляции программ на языках C/C++ память компьютера разделяется на четыре области: программного кода, глобальных данных, стек и динамическую область ("куча"). Последняя отводится для хранения временных данных и управляется функциями распределения памяти, такими как malloc() и free(). Функция mallос () резервирует непрерывный блок ячеек для хранения указанного объекта и возвращает указатель на первую ячейку этого блока. Функция free() освобождает ранее зарезервированный блок и возвращает эти ячейки в динамическую область для последующего резервирования. В качестве аргумента в функцию malloc() передается целочисленное значение, указывающее количество байтов, которое необходимо зарезервировать. Если резервирование прошло успешно, функция malloc() возвращает переменную типа void*, которую можно привести к любому необходимому типу указателя. Концепция использования указателей типа void описана в стандарте ANSI С. Этот спецификатор предназначен для создания обобщенных указателей неопределенного типа, которые впоследствии можно преобразовывать к требуемому типу. Обобщенный указатель сам по себе не может быть использован для обращения к каким-нибудь данным, так как он не связан ни с одним из базовых типов данных. Но любой указатель может быть приведен к типу void и обратно без потери информации. В следующем фрагменте программы резервируется память для 300 чисел типа float:
float *pf;
int inura_floats = 300;
pf = (float *) malloc(inum_floats * sizeof(float));
В данном примере функция malloc() резервирует блок памяти, достаточный для хранения 300 значений типа float. Выделенный блок надежно отделен от других блоков и не перекрывается ими. Предугадать, где именно он будет размещен, невозможно. Все блоки особым образом помечаются, чтобы система могла легко их обнаруживать и определять их размер. Если блок ячеек больше не нужен, его можно освободить следующей строкой:
free ((void*) pf);