Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9 Материалы СРС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
424 Кб
Скачать
☆

5.7. Цель, требования и рекомендации к выполнению задания

Цель выполнения задания ознакомление с основными принципами многопоточности в языке Java, возможностью написания программ с использованием нитей.

Требования и рекомендации к выполнению задания:

  1. проанализировать полученное задание, выделить информационные объекты и действия;

  2. разработать программу с использованием нитей.

5.8. Задания

  1. Создать апплет, используя поток: строка движется горизонтально, отражаясь от границ апплета и меняя при этом случайным образом свой цвет.

  2. Создать апплет, используя поток: строка движется по диагонали. При достижении границ апплета все символы строки случайным образом меняют регистр.

  3. Организовать сортировку массива методами Шелла, Хоара, пузырька, на основе бинарного дерева в разных потоках.

  4. Реализовать сортировку графических объектов, используя алгоритмы из задания 3.4.

  5. Создать апплет с точкой, движущейся по окружности с постоянной угловой скоростью. Сворачивание браузера должно приводить к изменению угловой скорости движения точки для следующего запуска потока.

  6. Изобразить точку, пересекающую с постоянной скоростью окно слева направо (справа налево) параллельно горизонтальной оси. Как только точка доходит до границы окна, в этот момент от левого (правого) края с вертикальной координатной у, выбранной с помощью датчика случайных чисел, начинает свое движение другая точка и т.д. Цвет точки также можно выбирать с помощью датчика случайных чисел. Для каждой точки создается собственный поток.

  7. Изобразить в приложении правильные треугольники, вращающиеся в плоскости экрана вокруг своего центра. Каждому объекту соответствует поток с заданным приоритетом.

  8. Условия предыдущих задач изменяются таким образом, что центр вращения перемещается от одного края окна до другого с постоянной скоростью параллельно горизонтальной оси.

  9. Создать фрейм с тремя шариками, одновременно летающими в окне. С каждым шариком связан свой поток со своим приоритетом.

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

  11. Условие предыдущей задачи изменить на применение эффекта постепенного "проявления" двух изображений.

  12. Создать апплет «Бегущая строка»

  13. Реализовать приложение, в котором пользователь имеет возможность указывать маски файлов для поиска и набор путей, по которым эти файлы нужно искать (например, список логических дисков).

  14. Разработать аплет, реализующий игру, который должен содержать следующие элементы: - основа пользовательского интерфейса — графические объекты, созданные на основе пакетов java.awt, java.awt.geom и классов java.awt.Graphics и java.awt.Graphics2D. - не менее двух движущихся объектов, созданных на основе тех же пакетов и классов. Каждый объект должен управляется своим потоком, что должно быть визуально заметно (например, с помощью задания разных значений в соответствующих методах Thread.sleep()). Управление игрой должно осуществляться с клавиатуры и/или мышью. Если используется только мышь, то нельзя использовать курсор, заданный по умолчанию, (вместо него надо использовать любой другой, подходящий по смыслу, или создать свой). дополнительно– в игре может вестись подсчет очков. В качестве возможного варианта игры м.б., например, «тир» или «футбол».

  15. Написать секундомер - класс Stopwatch - для замера времени в отдельном потоке выполнения. В классе должны быть реализованы следующие методы

  • start – начинает отчет времени

  • stop – прерывает отчет времени

  • reset – сбрасывает текущее значение секундомера

  • getTime – возвращает отсчитанное время в миллисекундах

Для демонстрации работы секундомера написать консольное приложение. Пользователю должны быть доступными следующие команды:

  • start N – запустить секундомер и дать ему идентификатор N

  • stop N – остановить секундомер с идентификатором N

  • reset N – сбросить время у секундомера с идентификатором N

  • time N – показать время у секундомера с идентификатором N

  • help – список команд

  • exit – выход

16. Подсчет простых чисел. Написать Swing-приложение для подсчета простых чисел в параллельных потоках. Каждый поток подсчитывает простые числа из заданного диапазона. Всего должно быть запущено три потока подсчета. Полученные числа выдаются на экран. Можно запускать/останавливать подсчет несколько раз.

Пользователю доступны следующие элементы управления:

  • Кнопка запуска всех потоков

  • Кнопка остановки всех потоков

  • Поле (JTextArea) для вывода результата в виде:

<номер потока>: <число>

Например:

1: 11

2: 23

2: 31

1: 17

4 поля ввода диапазонов чисел для подсчета. Получается 3 диапазона (между 4-мя числами) для каждого потока.

Три строки с информацией о состоянии каждого потока