Реализовать обмен данными между двумя процессами через текстовый файл. Первый процесс генерирует случайное вещественное число в диапазоне (0 - 2*pi) радиан

  • ID: 20440 
  • 12 страниц
300 рубСкачать

антиплагиат в подарок

Task16.exe

Отчет.docx

Проект

Содержание:


Постановка задачи

16. Реализовать обмен данными между двумя процессами через текстовый файл. Первый процесс генерирует случайное вещественное число в диапазоне (0 - 2*pi) радиан, второй процесс вычисляет синус этого аргумента, после чего первый процесс сохраняет оба параметра в другом текстовом файле в виде таблицы из двух колонок (аргумент - функция), добавляя каждый раз очередную строку.

Заполнить 10 строк таблицы.

Задача заключается в составлении таблицы из 10 строк вида:

Угол1 – синус1

Угол2 – синус2

УголN – синусN

Таблица должна выводиться в файл. По условию задачи, необходимо 10 строк.

Описание программы

Данная программа создана с помощью ИСР Borland C++ Builder 6.0

Визуальные компоненты из библиотеки VCL применяются для корректного запуска и окончания программы. В процессе работы программы свойства компонент могут меняться.

При запуске программы пользователь видит форму с кнопкой. Надпись на кнопке “Start!!!” приглашает пользователя нажать. При нажатии запускается процесс. Первый поток, который был создан в конструкторе формы и до этого находился в бесконечном цикле ожидания, получает сигнал на обновление генератора случайных чисел и входит в цикл от 0 до 9 (10 итераций). В теле цикла генерируется случайное число от 0 до 2PI. Это число затем записывается в файл temp.txt. Затем флаг second_go устанавливается в true и первый поток входит в цикл ожидания. Флаг запускает работу второго потока. Второй поток считывает из файла угол, вычисляет его синус с помощью библиотечной функции. Затем синус записывается в тот же файл. Флаг second_go устанавливается в false, что и является сигналом для первого потока продолжить. Первый поток считывает синус, и открывает файл result.txt. В конец этого файла записывается угол, который хранится в течении итерации и только что считанный синус.

Так происходит в течении десяти итераций. После десятой первый поток устанавливает особый флаг end_all в true и завершает работу. Это сигнал для второго потока, который не отслеживает количество итераций, к завершению работы. Перед тем как окончательно закончить, второй поток меняет свойство Caption у кнопки на форме. Новая надпись гласит “Done!!!”. При нажатии на кнопку программа завершает работу.