Задания для самостоятельного выполнения

 

В следующих заданиях выполнить соответствующий рисунок в окне апплета:

1. Создать классы Point и Line. Объявить массив из n объектов класса Point. Для объекта класса Line определить, какие из объектов Point лежат на одной стороне от прямой линии и какие − на другой. Реализовать ввод данных для объекта Line и случайное задание данных для объектов Point.

2. Создать классы Point и Line. Объявить массив из n объектов класса Point и определить в методе, какая из точек находится дальше всех от прямой линии, и пометить ее другим цветом.

3. Создать классы Point и Triangle. Объявить массив из n объектов класса Point. Написать функцию, какие из точек находятся внутри, а какие – снаружи треугольника (нарисовать их разными цветами).

4. Создать классы Point и Rectangle. Объявить массив из n объектов класса Point. Написать функцию, какие из точек находятся внутри, а какие – снаружи прямоугольника (нарисовать их разными цветами).

5. Определить класс Line для прямых линий, проходящих через точки A(x1,y1) и B(x2,y2). Создать массив объектов класса Line. Определить, используя функции, какие из прямых линий пересекаются, а какие − совпадают. Нарисовать все пересекающиеся прямые одним цветом, непересекающиеся − другим.

6. Создать класс Triangle. Определить, какие из m-введенных треугольников прямоугольные (нарисовать их другим цветом).

7. Создать класс Triangle. Определить, какие из m-введенных треугольников имеют площадь, больше заданной (прорисовать их другим цветом). Sтреуг=1/2((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))

8. Создать классы Point и Circle. Объявить массив из n объектов класса Point. Для объекта класса Circle определить, какие из объектов Point лежат внутри окружности, а какие − вне. Реализовать ввод данных для объекта Circle и случайное задание данных для объектов Point.

9. Создать свой собственный класс рисования трехмерных прямоугольников(выпуклых, вогнутых, с заливкой и без нее).

10. Привести графическое доказательство теоремы Пифагора.

11. Создать классы Rectangle и Circle. Объявить массивы из n объектов класса Circle. Для объекта класса Rectangle определить, какие из объектов Circle лежат внутри прямоугольника, а какие − вне. Реализовать ввод данных для объекта Rectangle и случайное задание данных для объектов Circle.

12. Создать классы Line и Circle. Объявить массивы из n объектов класса Line. Для объекта класса Circle определить, какие из объектов Line пересекают окружность в двух местах, какие – в одном, и какие вообще не пересекают. Реализовать ввод данных для объекта Circle и случайное задание данных для объектов Line.

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

14. Разработать апплет, выполняющий роль справочной таблицы по химическим элементам, в соответствии с периодической системой Д. И. Менделеева.

15. Визуализация решения квадратного уравнения (построить на экране график квадратичной функции с заданными коэффициентами, отметить точки пересечения с осью абсцисс, надписать на оси значения корней).

 



ЛАБОРАТОРНАЯ РАБОТА №2

 

РАЗРАБОТКА АППЛЕТОВ С ИСПОЛЬЗОВАНИЕМ ПОТОКОВ И ИХ СИНХРОНИЗАЦИИ

 

Цель: Научиться разрабатывать апплеты с использованием потоков.

 

Многопоточное программирование

В отличие от большинства других машинных языков Java обеспечивает встроенную поддержку для многопоточного программирования. Многопоточная программа содержит две и более части, которые могут выполняться одновременно, конкурируя друг с другом. Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).

Потоки существуют в нескольких состояниях. Поток может быть в состоянии выполнения. Может находиться в состоянии готовности к выполнению, как только он получит время CPU. Выполняющийся поток может быть приостановлен, что временно притормаживает его действие. Затем приостановленный поток может быть продолжен (возобновлен) с того места, где он был остановлен. Поток может быть блокирован в ожидании ресурса. В любой момент выполнение потока может быть завершено, что немедленно останавливает его выполнение. После завершения поток не может быть продолжен.

 

Приоритеты потоков

Java назначает каждому потоку приоритет, который определяет порядок обработки этого потока относительно других потоков. Приоритеты потоков — это целые числа, которые определяют относительный приоритет одного потока над другим. Приоритет потока используется для того чтобы решить, когда переключаться от одного выполняющегося потока к другому. Это называется переключением контекста.

Потоку можно назначить приоритет от 1(константа MIN_PRIORITY) до 10(MAX_PRIORITY) с помощью метода setPriority(), получить значение приоритета можно с помощью метода getPriority().

Правила переключения контекста следующее:

· поток может добровольно отказаться от управления;

· поток может быть приостановлен более приоритетным потоком.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: