Метод вычисления минимальных и максимальных значений




Содержание

 

Задание

1.1 Описание общего алгоритма

1.2 Интерфейса программы

2. Описание методов решения и алгоритмов задач, реализуемых каждым потоком

2.1 Метод заполнения массива случайными числами

2.2 Метод вычисления минимальных и максимальных значений

2.3 Метод вычисления отклонений каждого значения от среднего арифметического

3. Описание методов создания, уничтожения и синхронизации потоков, примененных в программе

3.1 Создание потоков

3.2 Синхронизация потоков

3.3 Завершение потоков

4 Листинг программы

Заключение

Список использованной литературы


Задание

 

Разработать программу, которая создает в отдельном потоке случайный массив А из N целых чисел в диапазоне от - 999 до 999 выводит на экран эти числа. Создание и вывод элементов массива производится через заданное время T, N и T вводятся пользователем до запуска процесса. Массив обрабатывается двумя другими потоками В и С, работающими параллельно с потоком, создающим массив. Все потоки выводят результаты своей работы в текстовые окна, каждый поток в свое окно.

 

Задание B Задание C
Вычисление минимального и максимального значений Вычисление отклонений каждого значения от среднего арифметического

 

Описание общего алгоритма и интерфейса программы

Описание общего алгоритма

 

Диаграмма 1 - выполнение потоков

 

При нажатии кнопки "START", считываются данные с полей "N" и "Time", создаются новые объекты потоков и отправляется сигнал на их запуск.

Перед тем как поток будет выполнять вычисления, он ожидает сигнал об активизации объекта событие. На время вычислений (блок-схемы 1, 2,3) событие переходит в состояние пассивное. По завершению обработки вычислений событие переходит в состояние активное. За счет этого достигается синхронизация между потоками.

При закрытии программы или нажатии кнопки "STOP" потоки уничтожаются.

Диаграмма 1, показывает состояние потоков в течение времени выполнения.

Интерфейса программы

 

На главной форме располагается группа компонентов для ввода и вывода значений:

- Три поля (Thread1, Thread2, Thread3) для вывода значений

- "N" - указывает размерность массива

- "Time" - количество времени, через которое будут выводиться результаты в текстовые поля (Thread1, Thread2, Thread3).

Кнопка "START" создает потоки, в которых происходит вычисления среднего арифметического каждой тройки чисел массива и произведений каждого числа на его номер (индекс). Результаты выводятся на главной форме в поля (Thread1, Thread2, Thread3).

Кнопка "STOP" останавливает запущенные потоки.

Кнопка "EXIT" закрывает программу, при запущенных потоках уничтожает их.

 

поток программа интерфейс алгоритм

Рисунок 1 - Главная форма


Описание методов решения и алгоритмов задач, реализуемых каждым потоком

Метод заполнения массива случайными числами

 

Блок-схема 1 - Заполнение массива случайными числами от - 999 до 999


Метод вычисления минимальных и максимальных значений

 

Блок схема 3 - Вычисление минимального и максимального значения

 

Пример 1. Дан массив A = {-359, 126, 803, 913, - 716};

Решение:

Начальные значения min = 0, max = - 359;

 

A [1] -359 126 803 913 -716 359 < min (0); min = - 359 359 > max (-359); max = - 359
A [2] -359 126 803 913 -716 126 < min (-359); min = - 359 126 > max (-359); max = 126
A [3] -359 126 803 913 -716 803 < min (-359); min = - 359 803 > max (126); max = 803
A [4] -359 126 803 913 -716 913 < min (-359); min = - 359 913 > max (803); max = 913
A [5] -359 126 803 913 -716 716 < min (-359); min = - 716 716 > max (803); max = 913

 

Ответ: min = - 716, max = 913.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-04-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: