- •Міністерство освіти і науки україни
- •1 Лабораторна робота №1 java-сокети
- •1.1 Теоретичні відомості
- •1.1.1 Загальні відомості про сокети
- •1.1.2 Програмні засоби Java для роботи з сокетами
- •1.2 Приклади розподілених java-додатків на основі сокетів
- •1.2.1 Приклад 1
- •1.2.2 Приклад 2
- •1.3 Завдання до лабораторної роботи
- •1.3.1 Завдання 1
- •1.3.2 Завдання 2
- •1.2.3 Приклад 3
- •1.3.3 Завдання 3
- •Завдання
- •1.4 Контрольні питання
- •1.5 Зміст письмового звіту
- •2 Лабораторна робота №2 java rmi
- •2.1 Теоретичні відомості про Java rmi
- •2.1.1 Загальні відомості
- •2.1.2 Рівень заглушок
- •2.1.3 Рівень віддаленого посилання
- •2.1.4 Транспортний рівень
- •2.1.5 Віддалені об'єкти
- •2.1.6 Архітектура Java rmi
- •2.1.7 Створення віддаленого інтерфейсу
- •2.2 Завдання до лабораторної роботи
- •2.2.1 Створення віддаленого інтерфейсу
- •2.2.2 Створення реалізації віддаленого інтерфейсу
- •2.2.3 Створення стаба й скелетона
- •2.2.4 Створення серверного додатка
- •2.2.5 Створення клієнтського додатка
- •2.2.6 Запуск розподіленого додатка
- •2.2.7 Завдання 1 – створення rmi-додатка
- •2.2.8 Завдання 2 – створення власного rmi-додатка
- •2.2.9 Завдання 3 – створення власного rmi-додатка
- •2.2.10 Завдання 4 – самостійна робота за індивідуальним варіантом
- •2.3 Контрольні питання
- •2.4 Зміст письмового звіту
- •Література для додаткового вивчення
- •Додаток а Java-методи для перетворення рядків (тип String) у числові типи даних
- •Додаток б
- •Приклад використання деяких математичних методів Java:
2.2.5 Створення клієнтського додатка
Код класу Client, що реалізує клієнтський додаток, має такий вигляд:
import java.rmi.*;
import java.net.*;
public class Client
{
public static void main(String[] args)
{
try {
MyRemote k = (MyRemote)Naming.lookup("rmi://"+args[0]+"/Service");
System.out.println(" Result = "+k.func(Long.parseLong(args[1])));
}
catch (Exception e)
{
System.out.println("Exception: " + e);
}
}
}
У клієнтському додатку використовуються необхідні пакети й викликається віддалений сервіс.
Для використання класу Client у розподіленому RMI-додатку створіть у робочій папці файл Client.java, помістіть в нього код класу Client і відкомпілюйте його:
> javac Client.java
2.2.6 Запуск розподіленого додатка
Для запуску RMI-додатка необхідно виконати наступні дії.
Увійти в робочу папку.
Запустити службу реєстру RMI. Для цього виконати команду
> rmiregistry.
Реєстр RMI буде запущений в окремому консольному вікні й протягом його роботи можна використовувати службу RMI.
Запустити серверний додаток, для чого виконати
> java Server.
У результаті серверний додаток буде запущено в окремому консольному вікні.
Запустити клієнтський додаток, для чого виконати
> java Client localhost 14.
У результаті клієнт передасть серверу число 14 і отримає результат 196.
2.2.7 Завдання 1 – створення rmi-додатка
Створіть і запустіть розподілений RMI-додаток на основі java-файлів, наведених у п.2.2.1-2.2.6.
2.2.8 Завдання 2 – створення власного rmi-додатка
Модифікуйте RMI-додаток (п.2.2.7) таким чином, щоб серверний процес отримував від клієнта число, повертав куб цього числа, помножений на номер вашого робочого місця. Клієнт повинен вивести результат на екран. Інтерфейс повинен мати назву у вигляді прізвища студента.
2.2.9 Завдання 3 – створення власного rmi-додатка
Створіть розподілений RMI-додаток, у якому клієнт передає серверу два числа типу float, які вводяться з командного рядка, сервер обчислює їх суму й повертає результат клієнту. Клієнт повинен вивести результат на екран. Інтерфейс повинен мати назву у вигляді прізвища студента.
Примітка: Для перетворення аргументів командного рядка типу String у числові типи даних, використовуйте методи, наведені в Додатку А.
2.2.10 Завдання 4 – самостійна робота за індивідуальним варіантом
Наведені нижче варіанти завдань призначені для самостійного програмування. Варіант визначається за номером у списку академічної групи.
Розробіть розподілений RMI-додаток з віддаленим методом, що вирішує математичне завдання за наведеним нижче варіантом.
При цьому, всі необхідні для розв'язання числа (наприклад, ( - точність обчислення) передаються клієнтом серверу, сервер вирішує завдання й повертає результат клієнтові. Клієнт повинен вивести результат на екран.
Примітка: при розв'язанні завдання використовуйте довідкові дані про вбудовані математичні методи Java, наведені у Додатку 2, до даної лабораторної роботи.
Варіант 1.
Знайти число членів нескінченного
ряду:
,
менших деякого числа
.
Варіант 2.
По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
менших заданого числа
.
Варіант 3.
Дано дійсні числа x,
(0<x
1,
>0).
Обчислити з точністю
:![]()
![]()
![]()
Уважати,
що необхідна точність досягнута, якщо
черговий доданок виявився по модулю
менше, ніж
,-
цей і всі наступні доданки можна вже не
враховувати.
Варіант
4. По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
більших заданого числа.
Варіант
5. Дано дійсні числа x,
(0<x
1,
>0). Обчислити з точністю
:
.
Уважати,
що необхідна точність досягнута, якщо
черговий доданок виявився по модулю
менше, ніж
,-
цей і всі наступні доданки можна вже не
враховувати.
Варіант
6. Дано дійсні числа x,
.
Обчислити з точністю
:![]()
Уважати, що необхідна точність досягнута, якщо черговий доданок, виявився, по модулю менше, ніж , - цей і всі наступні доданки можна не враховувати.
Варіант
7. Дано дійсні числа x,
(x
0,
0). Послідовність
утворена
за наступним законом:
.
Отримати
,
де k – найменше ціле число, що задовольняє
двом умовам: k
0 і
.
Уважати, що необхідна точність досягнута,
якщо черговий доданок виявився по модулю
менше, ніж
, - цей і всі наступні доданки можна вже
не враховувати.
Варіант
8. Дано дійсні числа x,
(0
x
1,
0). Обчислити з точністю
нескінченну суму й указати кількість
врахованих доданків:
.
Уважати, що необхідна точність досягнута,
якщо черговий доданок виявився по модулю
менше, ніж
, - цей і всі наступні доданки можна вже
не враховувати.
Варіант
9. Дано дійсне число
0.
Послідовність
утворена за наступним законом:
Знайти перший член
,
для якого виконана умова
.
Варіант
10. По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
більших заданого числа
.
Варіант 11. Обчислити наближене значення нескінченної суми (праворуч від суми дається її точне значення, c яким можна порівняти отриманий результат):
… ![]()
Потрібне
наближення вважається отриманим, якщо
обчислено суму декількох перших доданків
і черговий доданок виявився по модулю
менше даного позитивного числа
.
Варіант
12. Дано дійсні числа
(
). Послідовності
утворені за законом:
.
Знайти перше
,
таке, що
.
Варіант
13. Дано дійсні числа
![]()
.
Обчислити з точністю
:![]()
.
Уважати,
що необхідна точність досягнута, якщо
черговий доданок виявився по модулю
менше, ніж
,
- цей і всі наступні доданки можна вже
не враховувати.
Варіант
14. Дано дійсні числа x,
(x
0,
0). Обчислити з точністю
:![]()
Уважати, що необхідна точність досягнута, якщо черговий доданок виявився по модулю менше, ніж , - цей і всі наступні доданки можна вже не враховувати.
Варіант 15. Обчислити наближене значення нескінченної суми (праворуч від суми дається її точне значення, з яким можна порівняти отриману відповідь):
1
Потрібне наближення вважається отриманим, якщо обчислено суму декількох перших членів, і черговий доданок виявився по модулю менше даного позитивного числа .
Варіант
16. Дано дійсні числа
.
Обчислити з точністю
:![]()
Уважати,
що необхідна точність досягнута, якщо
черговий доданок виявився по модулю
менше, ніж
,
- цей і всі наступні доданки можна вже
не враховувати.
Варіант
17. Обчислити наближене значення
нескінченної суми (праворуч від суми
дається її точне значення, з яким можна
порівняти отриману відповідь):
![]()
Потрібне наближення вважається отриманим, якщо обчислено суму декількох перших членів, і черговий доданок виявився по модулю менше даного позитивного числа .
Варіант
18. По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
більших заданого числа.
Варіант
19. Обчислити наближене значення
нескінченної суми (праворуч від суми
дається її точне значення, з яким можна
зрівняти отриману відповідь):
![]()
Потрібне наближення вважається отриманим, якщо обчислено суму декількох перших членів, і черговий доданок виявився по модулю менше даного позитивного числа .
Варіант
20. Дано дійсні числа
.
Обчислити з точністю:
.
Уважати, що необхідна точність досягнута, якщо черговий доданок виявився по модулю менше, ніж , - цей і всі наступні доданки можна вже не враховувати.
Варіант
21. Дано дійсні числа
.
Обчислити з точністю:
![]()
Уважати, що необхідна точність досягнута, якщо черговий доданок виявився по модулю менше, ніж , - цей і всі наступні доданки можна вже не враховувати.
Варіант
22. Дано дійсне число
(>0).
Послідовність
утворена за наступним законом:
.
Знайти
перший член
,
для якого виконана умова
.
Варіант
23. По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
менших заданого числа.
Варіант
24. По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
менших заданого числа.
Варіант
25. По заданій формулі
члена
ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
більших заданого числа.
Варіант
26. Дано дійсне число
(>0).
Послідовність
утворена за наступним законом:
.
Знайти перший член
,
для якого виконана умова![]()
Варіант
27. По заданій формулі
члена ряду з номером k скласти програму
обчислення суми всіх членів ряду, не
менших заданого числа.
