Заказать дипломную работу в Минске. Дипломы на заказ На главную

Подробно о нас

Стоимость работ

Счет для оплаты

Реклама на сайте

Тяжкороб Д.В. помогает с дипломами в Минске
Артемков Д.В. помогает с дипломами в Минске



Задания к лабораторной работе № 7

Данная работа выполняется на основе предыдущих лабораторных работ №4-6.

Варианты заданий

Вариант №1
Имеется массив элементов типа Date в виде структуры

    struct Dates
    {
    int count = 0;//количество имеющихся элементов в массиве
    Date dates[100];
    } dts = {0};
Главный поток программы (функция main()) создает вторичный поток, передав в него указатель на структуру dts.
Вторичный поток запоминает значение из поля count, открывает файл и затем в цикле, если значение count изменилось, то записывает последний элемент массива dates в файл. Так продолжается до тех пор, пока count не достигнет некоторого максимального значения, после этого поток закрывает файл и завершается;
Далее главный поток организует цикл ввода дат следующим образом:
  • инициализируется временная переменная tmp типа Date (ввод с клавиатуры);
  • с помощью функции SuspendThread() приостанавливается поток;
  • значение временной переменной заносится в массив
    dts.dates[dts.count] = tmp;
    dts.count++;
  • с помощью функции ResumeTread() поток запускается на выполнение;
Так продолжается до тех пор, пока count не достигнет некоторого максимального значения.

Вариант №2
Главный поток программы создает вторичный поток, в который передает указатель на глобальную переменную типа Time.
Поток вычисляет количество секунд пошедших от начала суток до указанного времени и выводит на экран. Затем запоминает время и в последующем вычисляет разницу между новым и старым значениями. Так продолжается до тех пор, пока не будет передано время 00:00:00, после этого поток завершается.
Главный поток в цикле вводит с клавиатуры значение времени во временную переменную tmp, с помощью функции SuspendThread() приостанавливает поток, записывает введенное значение в глобальную переменную и затем с помощью функции ResumeTread() запускает поток на выполнение. Завершение цикла – ввод значения 00:00:00.

Вариант №3
Функция записи узла дерева в файл (WriteNode()) выполняется во вторичном потоке. При создании потоку передается указатель на переменную типа Node*.
Поток должен записать новый узел в файл если адрес узла изменился.
Главный поток в цикле добавляет узлы в дерево (новые узлы добавляются слева на право). Перед добавлением нового узла поток приостанавливается, а в конце добавления запускается. С помощью программы из 4-й работы проверить правильность записанного в файл дерева.

Вариант №4
Аналогично как в варианте 3, но для элементов списка.

Вариант №5
Аналогично как в варианте 4, но для элементов стека.

Вариант №6
Аналогично как в варианте 3, но вторичный поток проверяет сбалансировано дерево или нет. Необходимо добавить две функции: добавления узла (см. лаб. раб. №4 вариант 3) и поиска узла по его имени (рекурсивная функция аналогичная функции вывода дерева, см. там же).

Вариант №7
Аналогично как в варианте 5, но для элементов очереди.

Вариант №8
Аналогично как в варианте 1, но для комплексных чисел.

Вариант №9
Аналогично как в варианте 3, но для узлов TreeNode.

Вариант №10
Аналогично как в варианте 1, но для элементов типа Pair.





Минск 2012 - 2016
© ИП Тяжкороб Д.В. УНП 490520112



Репетитор история математика русский язык физика химия минск Минск английский язык немецкий язык репетитор белорусский язык вокал музыка рисунок обществоведенье Спрос на репетиторство растет. К нам обращаются много учащихся. Репетиторы (Минск)