Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_методички на лабы.doc
Скачиваний:
14
Добавлен:
13.04.2015
Размер:
163.33 Кб
Скачать

Указания по изучению материала необходимого для выполнения лабораторных работ

Как упоминалось ранее, каждое индивидуальное задание по лабораторным работам включает в себя следующие темы:

  1. Разработка динамических библиотек

  2. Разработка глобальных ловушек

  3. Сохранение и чтение данных из реестра Windows

  4. Разработка потоков и синхронизация

  5. Передача данных по компьютерной сети по протоколу TCP/IP

  6. Рисование с использованием библиотеки GDI+

Студенты у преподавателя могут получить примеры, в которых полностью показаны подходы к решению этих задач. Эти примеры могут использоваться при выполнении индивидуальных заданий.

Вся информация необходимая для выполнения задач в рамках тем 1-5 может бать найдена в [1]. Информация по работе с функциями Windows API приведена в [2,3]. В [1,4, 5, 6,10] приведена информация об архитектуре различных версий ОС Windows, методы работы с потоками, процессами и т.д.

Для выполнения задач связанных с использованием GDI+ вся необходимая информация может быть найдена в [7,8,9].

Индивидуальные задания на лабораторные работы

Номер индивидуального задания выбирается в соответствии с номером в журнале академической группы или же среди оставшихся никем не выбранных заданий. В любом случае номер выбранного задания сообщается преподавателю и фиксируется в журнале академической группы.

Завдання 1.

У першому потоці треба виконувати обчислення інтегралу від деякої функції, а в іншому – іншого інтегралу від іншої функції. Функции вычисления интегралов должны бать реализованы в динамической библиотеке, подключаемой к основному приложению. Эти функции и будут вызываться в потоках. Также в потоке неоходимо реализовать и построение графиков обеих функцій, по которым вычислялись інтегралы. Результаты вычиления обеих интегралов необходимо передать по локальной сети по протоколу TCP/IP в отдельное приложение и в нем вывести на экран эти результат. Рисование графиков необходимо реализовать с использованием функций GDI+. Передачу данных можно организовать и на локальном компьютере через локальный IP адрес по любому порту с использованием сокетов. В программе необходимо предусмотреть возможность выбора цвета, толщины и текстуры линии, которой рисуется график. Эти параметры должны записываться в реестр Windows, а при запуске программы читаться и применяться при рисовании. При первом запуске программа должна проверить наличие записи в реестре, и если ее нет, то выдать сообщение и потом записать значения по умолчанию. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + S активировать главное приложение, а при нажатии Ctrl + B активировать второе приложение.

Завдання 2.

У першому потоці треба виконувати сортування масиву за зростанням чисел, а в іншому за зменшенням чисел. Результати сортування необхідно постійно виводити на екран під час роботи програми. Функции сортировки должны бать реализованы в динамической библиотеке. Также эти данные, до сортировки необходимо передавать в другое приложение по локальной сети по протоколу TCP/IP и в нем вывести на экран эти значения в виде графиков, которые рисуються с использованием функцій GDI+. По умолчанию размер массивов составляет 300 значений. Масиви для сортування необхідно заповнити випадковими числами в діапазоні від 0 до 255. Размер массива можно изменить и значение размера массива необходимо сохранить в реестре Windows. При первом запуске программа должна проверить наличие записи в реестре, и если ее нет, то выдать сообщение и потом записать значения по умолчанию. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + A активировать главное окно программы, а при нажатии на Ctrl + B активировать второе приложение.

Завдання 3.

Розробити програму, яка за допомогою функцій GDI+ дозволятиме користувачу рисувати на екрані прямокутник, коло, лінію за допомогою миші. В програмі має бути можливість задавати колір ліній та заливки фігур. При натисканні на кнопку зображення необхідно зберігати у файл JPEG, PNG, BMP (за вибором користувача). Після збереження файл повинен передаватися в інший додаток по локальной сети по протоколу TCP/IP в отдельном потоке. Все функции передачи данных и работы с сетью необходимо реализовать в динамической библиотеке. Второе приложение должно получать изображение по сети и выводить его на экран. При выходе из первого приложения все параметры рисования фігур должны сохраняться в реестр Windows, а при запуске приложения необходимо эти параметры читать и использовать. Если параметров нет, то программа выдает сообщение и записывает в реестр параметры по умолчанию. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + G активировать главное окно программы, а при нажатии на Ctrl + E активировать второе приложение.

Завдання 4.

В одном приложении пользователь указывает два текстовых файла, которые считываются и данные из файлов выводятся на экран в компонент ListView. После этого по нажатию на кнопку данные передаются по локальной сети по протоколу TCP/IP в отдельном потоке. Все функции передачи данных и работы с сетью необходимо реализовать в динамической библиотеке. Второе приложение должно получать данные и построить на экране два графика: круговую диаграмму и столбчатую. Одна диаграмма строится на основе одного файла, а другая на основе другого файла. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + F активировать первое приложение, а при нажатии на Ctrl + T активировать второе приложение.

Завдання 5.

Разработать программу, которая в одном потоке читает файл со словами на английском языке, а в другом на украинском. Затем подсчитвает частоту использования каждой буквы и передает в потоке по локальной сети по протоколу TCP/IP в другое приложение эту информацию. Второе приложение строит два графика – частота использования букв в словах на украинском и английском языках, причем графики должны строится в двух разных потоках на одном контексте устройства. Также во втором приложении необходимо реализовать функцию сохранения данных о 3х наиболее часто встречающихся буквах в реестр. Функции работы с файлами, передачи данных по сети и функции анализа слов должны быть реализованы в динамической библиотеке. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + S должно выводиться окно со статистикой по частоте использования букв. При необходимости должны обрабатываться все исключения и выводится соответствующие сообщения.

Завдання 6.

Необходимо разработать приложение, в котором в одном потоке будут генерироваться случайные параметры окружностей (радиус, цвет линии, координаты центра, цвет заливки), а в другом потоке будут генерироваться такие же параметры для прямоугольников. Эти данные будут передаваться по локальной сети по протоколу TCP/IP в другое приложение и там рисоваться на одном контексте устройства из двух разных потоков. Функции передачи данных и генерации параметров для окружностей и прямоугольников должны быть реализованы в динамической библиотеке. Во втором приложении должна быть реализована функция подсчета нарисованных окружностей и прямоугольников. При завершении работы программы она должна записать в реестр Windows количество нарисованных прямоугольников и окружностей. При последующих запусках первое приложение должно показывать, сколько прямоугольников и окружностей было нарисовано в предыдущий раз. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + F должно выводиться окно с количеством нарисованных прямоугольников и окружностей, а при нажатии Ctrl + D эти данные из реестра должны быть удалены.

Завдання 7.

У першому потоці необхідно здійснювати формування довільних наборів латинських літер, але не більше 8 символів та покладати в компонент List. Другий потік має постійно отримувати ці комбінації символів, розміщувати в інший компонент List та сортувати їх таким чином, щоб вони були відсортовані в алфавітному порядку. Таким чином повинно бути сформовано 100 послідовностей. При нажатии на кнопку отсортированные последовательности передаються по локальной сети по протоколу TCP/IP в другое приложение и там производится подсчет частоты повторяемости букв и строится график повторяемости букв. Все функции генерации и обработки последовательностей должны быть реализованы в динамической библиотеке. Информация о 5 ти наиболее часто используемых буквах должна записываться в реестр. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + H должно выводиться окно с информацией о наиболее часто использованных буквах, а при нажатии Ctrl + P эти данные из реестра должны быть удалены.

Завдання 8.

Разработать программу, которая в одном потоке выполняет вычисление для построения графика функции y=cos(x), а в другом потоке выполняются вычисления для построения графика функции y=tg(x). Данные, вычисленные в потоках, должны передаваться по локальной сети по протоколу TCP/IP в другое приложение и там осуществляется построение графиков с использованием GDI+. В этом приложении пользователь может задать цвет фона, цвет линии, которыми рисуются графики, а также их текстуру. Все эти параметры сохраняются в реестр, а при запуске приложения читаются из реестра и используются при рисовании графиков. При отсутствии данных в реестре используются параметры по умолчанию. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + G должно выводиться окно с информацией о параметрах применяемых при рисовании графиков.

Завдання 9.

У першому потоці необхідно організувати обчислення функції y=x2 та вивести результат в об’єкт List, а в іншому потоці організувати обчислення функції y=x3 та вивести результат в другой об’єкт List. Результаты вичислений записать в файлы и затем передать файлы по локальной сети по протоколу TCP/IP в другое приложение и там выполнить построение графиков с использованием GDI+. В реестр записать имена файлов, а также количество значений в каждом файле. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + O должно выводиться окно с информацией об именах файлов и путях, где они находятся, а также количество значений вычисленных для каждого графика.

Завдання 10.

Розробити програму, яка в первом потоке будет считывать файл формата JPEG, а в другом в формате PNG и затем передавать эти файлы по локальной сети по протоколу TCP/IP в другое приложение. В этом приложении файлы должны приниматься и выводится на экран средствами GDI+ причем пользователь должен иметь возможность задать параметры наложения изображений (OR, XOR, NOT) или просто вывести два файла рядом – в зависимости от параметров. В реестр записать имена файлов, линейные размеры и размер файлов в байтах. После первого запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + I должно выводиться окно с информацией об именах файлов и путях, где они находятся, а также линейные размеры и размер файлов в байтах.

Завдання 11.

Разработать программу, которая в двух потоках выполняет поиск строк в реестре. В одном потоке выполняется последовательно поиск и подсчет количества строк jpeg, png, Microsoft, а во втором - поиск строк htm, html, doc. Во время выполнения поиска на экране их потока постоянно должна выводится информация о количестве найденных строк. Полученные данные по нажатию на кнопку передаются в другое приложение по локальной сети по протоколу TCP/IP, а также сохраняются в отдельном ключе реестра. В этом приложении строится столбчатая диаграмма по количеству строк jpeg, png, Microsoft, htm, html, doc. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + R должно выводиться окно с информацией о количестве найденных строк, а если их нет, то сообщение о том, что информация о строках еще не сформирована.

Завдання 12.

У першому потоці здійснюватиметься розрахування параметрів рисування лінії, що обертається за годинниковою стрілкою, а в іншому потоці здійснюється розрахунок параметрів рисування лінії, що обертається проти годинникової стрілки. Эти расчтеные данные передаються по локальной сети по протоколу TCP/IP в другое приложение в котором эти линии выводятся на экран. Также в этом приложении можно задать цвет линии, текстуру, параметры градиентной заливки фона. Все данные по настройкам параметров рисования линии и фона сохраняются в реестр. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + L должно выводиться окно с информацией о о параметрах рисования линий, а при нажатии на комбинацию клавиш Alt+L эти данные должны удаляться из реестра.

Завдання 13.

Розробити програму, яка рисує таблицю в одному потоці з заданою користовачем кількістю рядків та стовпців. Перший рядок таблиці повинен мати колір, відмінний від інших рядків. У кожну клітину таблиці, починаючи з другого рядка мають виводитись випадкові числа, які повинні поступати по локальной сети по протоколу TCP/IP из другого приложения. Получение данных по сети реализуется в другом потоке. Якщо число менше нуля, то клітинка, в яку воно виводиться, повинна мати червоний колір. Все рисование таблицы должно выполняться средствами GDI+. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + T должно выводиться окно с информацией о параметрах таблицы – количество строк и столбцов, а также количество отрицательных чисел в таблице, а при нажатии на комбинацию клавиш Alt+R эти данные должны удаляться из реестра.

Завдання 14.

Разработать программу, которая позволяет прочитать 2 файла формата JPEG и выводит их на экран. Оба изображения должны иметь линейные размеры 320х240 пикселов. По нажатию кнопки запускается два потока. В одном потоке цвет каждой точки одного изображения умножается на 1.2, а во втором потоке к цвету каждой точки добавляется 10. Вычисленные значения передаются по локальной сети по протоколу TCP/IP в другое приложение и там принимаются в двух потоках и выводятся в две разные области на экран. Во время вывода изображений необходимо подсчитать количество белых точек выводимых в одном изображении и количество черных точек выводимых во втором изображении. Эти данные необходимо сохранить в реестре. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + Y должно выводиться окно с информацией о количестве точек белого и черного цвета, а при нажатии на комбинацию клавиш Alt+R эти данные должны удаляться из реестра.

Завдання 15.

Разработать приложение в котром подсчитывается кількість натиснутих клавіш за 2 хвилини. При натисканні на комбінацію клавіш Ctrl + Alt + K полученные данные должны передаваться по локальной сети по протоколу TCP/IP в другое приложение. На основе полученных данных в потоке строится графік активності користувача, который показывает на столбчатой диаграмме количество нажатий на ту или иную клавишу, а другом потоке строится таблица, которая показывает сколько раз какая клавиша была нажата. Эти данные необходимо сохранить в реестре. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + W должно выводиться окно с информацией о частоте нажатия клавиш, а при нажатии на комбинацию клавиш Alt+D эти данные должны удаляться из реестра.

Завдання 16.

Разработать программу, яка при натисканні на ліву кнопку миші буде по локальной сети по протоколу TCP/IP передавать информацию о координатах курсора мыши в момент нажатия на кнопку в другое приложение, другое приложение будет получать эту информацию и рисовать на экране круг диаметром 50 пикселов. При нажатии на правую кнопку мыши должно происходить рисование квадрата размером 50х50 пикселов. Рисование объектов должно выполняться в отдельных потоках и средствами GDI+. Данные о количестве нажатий левой и правой кнопки мыши необходимо сохранить в реестре. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + J должно выводиться окно с информацией о частоте нажатия правой и левой клавиш мыши, а при нажатии на комбинацию клавиш Alt+E эти данные должны удаляться из реестра.

Завдання 17.

Необходимо разработать приложение клиент, которое будет позволять отправлять команды на сервер по локальной сети по протоколу TCP/IP. В сервере для обработки каждой команды создается собственный поток. Клиентская программа должна позволять отправить команду рисования окружности, прямоугольника, текстового сообщения. Каждый объект в клиентском приложении задается набором параметров, в том числе цвет и градиентная заливка. Отправка команды выполняется по нажатии на определенную клавишу. Рисование объектов в серверном приложении выполняется на определенной рабочей области размером 640х480 пикселов. Должны происходить проверки корректности заданных параметров в командах, чтобы можно было обеспечить вывод объектов. Рисование объектов должно выполняться при помощи GDI+. Данные о количестве нарисованных объектов каждого типа необходимо сохранить в реестре. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + P должно выводиться окно с информацией о количестве нарисованных объектов каждого типа, а при нажатии на комбинацию клавиш Alt+T эти данные должны удаляться из реестра.

Завдання 18.

Необходимо разработать приложение клиент, которое будет позволять отправлять команду на сервер по локальной сети по протоколу TCP/IP. Команда представляет собой указание, какое количество окружностей с градиентной заливкой должно быть выведено на экране в потоках в серверном приложении. Минимальное количество окружностей – 2, максимальное 100, задаваемое число окружностей кратно 2. В каждом потоке на сервере должно рисоваться половина окружностей от заданного числа. Информация о размере, цвете, градиентной заливке окружностей должна задаваться в клиентском приложении, причем размер окружностей и цвет линии задаются пользователем, а параметры градиентной заливки и координаты центра – случайным образом. Отправка команды выполняется по нажатии на определенную клавишу. Рисование объектов в серверном приложении выполняется на определенной рабочей области размером 640х480 пикселов. Должны происходить проверки корректности заданных параметров в командах, чтобы можно было обеспечить вывод объектов. Рисование объектов должно выполняться при помощи GDI+. Параметры фактически нарисованных объектов, необходимо сохранить в реестре. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + L должно выводиться окно с нарисованными кругами на основе информации, сохраненной в реестре, а при нажатии на комбинацию клавиш Ctrl+G эти данные должны удаляться из реестра.

Завдання 19.

Разработать программу, которая позволяет прочитать 2 файла формата PNG и выводит их на экран. Оба изображения должны иметь линейные размеры 320х240 пикселов. Пользователь указывает, какой цвет на изображениях необходимо заменить на цвет, выбранный пользователем. Информация о количестве знаменных в изображениях точек записывается в реестр. По нажатию кнопки запускается два потока. В одном потоке заменяются точки одного изображения, а в другом другого изображения. Вычисленные значения передаются по локальной сети по протоколу TCP/IP в другое приложение и там принимаются в двух потоках и выводятся в две разные области на экран. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + Y должно выводиться окно с информацией о количестве замененных точек на обоих изображениях, а при нажатии на комбинацию клавиш Alt+R эти данные должны удаляться из реестра.

Завдання 20.

Разработать программу, которая позволяет прочитать с жесткого диска последовательность из 20 файлов формата JPEG размером 320х240 пикселов и отправляет их по локальной сети по протоколу TCP/IP в другое приложение. В этом приложении создано два потока, которые осуществляют прием изображений, преобразовывают их в изображения в градациях серого, добавляют порядковый номер на изображении и выводят на экран в виде маленьких изображений размером 40х30 пикселов. Следует отметить, что один поток должен принимать и обрабатывать изображения с четными номерами, а другой с нечетными. Также должно учитываться время обработки каждого изображения. Эти данные должны записываться в реестр. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + X должно выводиться окно с информацией о времени обработки каждого изображения, а при нажатии на комбинацию клавиш Alt+U эти данные должны удаляться из реестра.

Завдання 21.

Разработать программу, которая позволяет прочитать с жесткого диска два файла формата JPEG размером 320х240 пикселов и затем строит в двух потоках гистограммы этих изображений и затем передает по локальной сети по протоколу TCP/IP в другое приложение эти гистограммы. В другом приложении гистограммы получаются и при помощи GDI + рисуются на экране. При этом в реестр записываются 5 наиболее часто встречаемых цветов на каждом изображении. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + N должно выводиться окно с графиками, отражающими 5 наиболее часто используемых цветов на изображениях, а при нажатии на комбинацию клавиш Alt+M эти данные должны удаляться из реестра.

Завдання 22.

Разработать программу, которая одном потоке вычисляет значения для одного фрактала, а в другом потоке для другого. На каждом шаге вычисленные значения из каждого потока передаются по локальной сети по протоколу TCP/IP в другое приложение. Это приложение на контексте устройства рисует оба фрактала. Причем каждый фрактал рисуется в собственном потоке. Для вычисления фракталов могут быть использованы любые выражения, которые студент посчитает возможным реализовать. Остановка рисования фракталов должна выполняться путем нажатия кнопки в приложении, которое рисует фракталы. При остановке рисования в приложение, которое отправляло данные должен быть отправлен сигнал о прекращении вычислений. Количество итераций, которое выполнено для рисования фракталов, должно быть сохранено в реестре. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Alt+Ctrl + C должно выводиться окно с количеством итераций, за которое нарисованы фракталы, а при нажатии на комбинацию клавиш Alt+B эти данные должны удаляться из реестра.

Завдання 23.

Разработать программу, которая создает 3 потока и в каждом потоке генерирует случайные числа в интервале от 0 до 255 и передает значения по локальной сети по протоколу TCP/IP в другое приложение. В этом приложении значения, получаемые по сети комбинируются в цвет точки RGB и при помощи этого цвета рисуется полоса высотой 5 пикселов и длинной 100 пикселов. Общая высота рисунка 500 пикселов. Как только она достигается, то она стирается и начинается процесс рисования заново. При этом все поступающие значения выводятся в формате R=..., G=…, B=… в объект List, который также находится на форме. При завершении первого приложения и при прекращении поступления данных необходимо подсчитать среднеарифметическое значение всех данных поступивших для составляющих R, G и B и записать эти три значения в реестр. После первого запуска первая программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + H должно выводиться окно со средними значениями каждой составляющей, а при нажатии на комбинацию клавиш Alt+L эти данные должны удаляться из реестра.

Завдання 24.

После запуска программа должна помещать иконку в Windows Tray и при нажатии комбинации клавиш Ctrl + S должно создаваться два потока, которые генерируют случайные данные в диапазоне от 0 до 255 и передают эти данные по локальной сети по протоколу TCP/IP в другое приложение. В этом приложении данные принимаются и помещаются в два компонента List и запоминаются в массивах. По нажатии на кнопку приложение отправляет сигнал первому приложению о прекращении передачи данных и строит два графика с частотой появления значений в списках, а также записывает данные в реестр о 3х наиболее часто встречающихся числах в каждом наборе значений. При нажатии на комбинацию клавиш Alt+I эта информация выводится из реестра в отдельном окне.

Завдання 25.

Необходимо разработать приложение, которое будет использоваться двумя пользователями. Один пользователь будет нажимать на кнопку в приложении и на экране этого же приложения у другого пользователя будут рисоваться круги. В это же время нажатие на кнопку другим пользователем в другом экземпляре приложения будет приводить к рисованию прямоугольников на экране первого пользователя. Обмен информацией между приложениями будет выполняться по протоколу по локальной сети по протоколу TCP/IP. Весь обмен данными и вывод данных на экран должен выполняться в потоках. Также в каждом приложении должно быть по 3 комбинации клавиш, которые работают как глобальные ловушки и позволяют отправить 3 текстовых сообщения по сети другому пользователю. Например, пользователь нажал комбинацию Ctrl+P, а другой пользователь получил сообщение «Привет !». Все сообщения должны быть разными. В реестре должны сохраняться сообщения при отправке и в той последовательности как они отправлялись пользователями друг другу. При нажатии комбинации клавиш Alt+R должны быть выведены все сообщения, отправлявшиеся пользователю, а при нажатии Alt+D – данные из реестра должны быть удалены.

Завдання 26.

Разработать приложение, которое отправляет сообщения и изображения, загружаемые из файлов по локальной сети по протоколу TCP/IP нескольким пользователям, запустившим другое приложение для просмотра сообщений. При этом при получении текстового сообщения или графического файла они должны отображаться в приложении приема сообщений на экране в специально отведенных местах. При получении графического файла он должен масштабироваться средствами GDI+ до размера 320х240 пикселов, а вокруг изображения необходимо рисовать градиентную рамку шириной 10 пикселов. Изображение всегда должно выводиться в области размером 320х240 пикселов. При первом запуске приложения-отправителя сообщений должна помещаться иконка в Windows Tray и при нажатии комбинации клавиш Ctrl + H должен открываться диалог для выбора графического файла на отправку, даже если приложение свернуто в Windows Tray. При нажатии комбинации Ctrl + R необходимо получить в реестре список всех установленных приложений и разослать эту информацию в виде сообщения всем остальным приложениям- отображающим сообщения.

Завдання 27.

Разработать приложение, которое в течение минуты запоминает траекторию движения курсора мыши по экрану, а затем по нажатию на комбинацию клавиш Ctrl+M передает по локальной сети по протоколу TCP/IP эти данные в другое приложение, которое рисует в масштабе 1:2 данную траекторию линией в виде рисунка. Рисование этой траектории происходит в одном потоке, а в другом потоке рисуются различные полупрозрачные изображения, фигуры, которые заполняют фон под нарисованной траекторией. Пользователь может поменять или задать параметры рисования линии траектории (выбрать цвет, толщину, текстуру линии) и затем эти параметры автоматически сохраняться в реестре и при следующем запуске программы будут использованы. Пользователь всегда при помощи комбинации клавиш Ctrl+Alt+M может запустить заново процесс записи траектории мыши.

Завдання 28.

Необходимо разработать приложение, в котором при нажатии на комбинацию клавиш Ctrl+1 запускается первый поток, Ctrl+2 – второй поток. При этом в первом потоке начинают генерироваться случайным образом последовательности из 3х латинских букв, а во втором потоке – генерируется последовательность из 3х цифр. Генерируемые данные передаются по локальной сети по протоколу TCP/IP в другое приложение, которое принимает данные и отображает их в элементах List причем вывод в эти элементы происходит из двух потоков, в которых выполняется прием данных по сети. При нажатии комбинации клавиш Ctrl+E должна останавливаться передача данных в первых двух потоках и второе приложение должно подсчитать количество повторяющихся последовательностей в обоих списках и построить круговые диаграммы, в которые включать только те последовательности цифр и букв, которые встречаются чаще, чем в 10% случаев. Результаты этого анализа нужно сохранять в реестр и предоставлять возможность просмотра этих данных до тех пор пока не будут запущены снова два потока, которые сгенерируют новые последовательности данных.

Завдання 29.

Необходимо разработать приложение, в котором при нажатии на комбинацию клавиш Ctrl+A запускается первый поток, Ctrl+B – второй поток. При этом в первом потоке начинают вычисляться значения функции y=sin(x), а во втором потоке – значения функции y=cos(x). Генерируемые данные передаются по локальной сети по протоколу TCP/IP в другое приложение, которое принимает данные и отображает их на одном графике линиями разного цвета и текстуры. При нажатии комбинации клавиш Ctrl+N должна останавливаться передача данных в первых двух потоках и второе приложение должно вывести количество данных, поступившее для каждого графика. Эти данные должны быть сохранены в реестр и должна быть возможность просмотра этих данных до тех пор, пока не будут запущены снова два потока, которые сгенерируют новые последовательности данных.

Завдання 30.

Необходимо разработать приложение, в котором при нажатии на комбинацию клавиш Ctrl+A запускается первый поток, Ctrl+B – второй поток. При этом в первом потоке получаются данные из ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE, а во втором потоке - HKEY_CURRENT_USER\Software. Получаемые данные передаются по локальной сети по протоколу TCP/IP в другое приложение, которое принимает данные и отображает их в двух элементах List. При нажатии клавиши в этом приложении проводится сравнение двух списков и на графике в виде столбчатой диаграммы показывается частота повторения записей в этих ключах. При этом если запись встречается только один раз в каком то из списков она не отображается на графике.