Задача 9 Абстрактный тип данных «Моя дата»




Задание к лабораторной работе программирование на языке Java.

Часть 3.

Задача 6. Вычисление суммы ряда сходящейся последовательности

6.1 Разработать программу вычисления суммы ряда

S = Х2/4! - Х4/6! + Х6/8! - Х8/10! +...- + X2i/(2i+2)!+ …

с заданной точностью Е. Вычисление суммы заканчивается, если модуль очередного слагаемого оказывается меньше заданного значения точности Е, вводимого с клавиатуры.

6.2 Для оценки правильности результата предусмотреть вычисление по контрольной формуле:

S = (cos(X) - 1)/(Х2) + 0,5

Примечание. В программе НЕ использовать статический метод для вычисления факториала. Вычисление очередного члена ряда ai, где i = 2, 3, 4,... следует проводить по формуле ai = a(i-1) * d на основе значения предыдущего члена ряда a(i-1) умноженного на дополнение d. Дополнение d следует определить из отношения d = аii-1, где выражения для вычисления двух соседних членов ряда записываются в общем виде. Тогда для приведенного выше ряда дополнение получается в виде:

d = (- (X2i/(2i+2)!)) / (X2(i-1)/(2(i-l)+2)!) = - X2 / ((2i+l)(2i+2)),

и первый член ряда а1 = Х/4!

 

Задача 7. Вычисление числа сочетаний

7.1. Разработать программу вычисления числа сочетаний из N по М по формуле С = N! / ((N-М)! * М!), используя в качестве статического метода программу вычисления факториала, рассмотренную ранее (см. Задачу 2).

7.2. В программе предусмотреть ввод исходных данных с клавиатуры и контроль корректности задания данных:

N>0, М >0, N>M.

7.3. Предусмотреть расширение диапазона значений С до 10 миллиардов.

7.4. Обеспечить выполнение программы произвольное число раз с новыми значениями N и M.

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

N!, М!, (N-M)!.

 

Задача 8. Поиск отрезка максимальной длины на плоскости

8.1 Задается матрица А размерности 2xN произвольных чисел. Пара чисел A(l, i), A(2, i) определяет координаты точки i на плоскости, i = l.. N. Точки попарно соединены между собой отрезками. Разработать программу, которая находит отрезок максимальной длины. В программе предусмотреть ввод числа N с клавиатуры, а задание элементов матрицы — по желанию пользователя: либо с клавиатуры, либо с помощью генератора случайных чисел (random(…)). Длина отрезка Rij между точками i, j вычисляется по формуле

Rij = (А[1, i] - А[1, j])2 + (A[2, i] - А[2, j])2)1/2.

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

8.3 Значение найденных длин отрезков сохранять в массив.

 

Задача 9 Абстрактный тип данных «Моя дата»

9.1 Реализуйте абстрактный тип данных MyDate для работы с датами.

API интерфейс

public class MyDate {

MyDate(int day, int month, int year) создание даты

int day() день
int month() месяц
int year() год
String toString строковое представление

 

Реализация

 

9.2 Добавьте клиент тестирования.

 

9.3 Замените старую реализацию новой, улучшенной. Выполните клиент тестирования для новой реализации.

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

 



Поделиться:




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

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


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