void show(double х){

System. out. println("Apгумент полинома: "+x);

System. out. println("Значение полинома: "+value(x));

show();}

PolyDerive(PolyBase obj){

a=newdoublе[obj. а.length];

for(int i=0;i<a. length;i++)

a[i]=obj. a[i]; }

}

// Подкласс для разложения в ряд Тейлора произведения:

class Taylor extends PolyDerive{

void show(){

Sуstеm. оut. рrintln("Ряд Тейлора!");

super. show();

}

Taylor(PolyBase P. PolyBase Q){

super(Р);

PolyBase tmp=prod(Q);

for (int i =0; i <а. length; i ++)

a[i]=tmp. a[i];}

}

class PolyExtendsDemo{

public static void main(String[] args){

// Исходные полиномы:

PolyBase P=new PolyBase();

PolyBase Q=new PolyBase();

PolyBase R;

P. a=new dоublе[]{1,-2,4,1,-3};

Q. a=new dоublе[]{2,-1,3,0,4};

// Произведение полиномов:

R=new PolyDerive(P).prod(Q);

R. how();

new PolyDerive(P).show(-1);

// Ряд Тейлора:

new Taylor(P, Q).show();

} }

В суперклассе PolyBase, предназначенном для реализации полиномов, имеется поле а - переменная массива типа doublе. В этот массив будут заноситься коэффициенты полинома (напомним, что полиномом называется сумма степенных слагаемых вида ао+а1x+а2х2 + ... + аnхn). Кроме того, в классе описан метод value() для вычисления значения полинома в точке (аргумент метода). Метод power() предназначен для вычисления степени полинома. Вообще степень полинома определяется как наибольшая степень аргумента с ненулевым коэффициентом. Можно было бы считать, что степень полинома на единицу меньше размера массива коэффициентов, но в принципе старшие коэффициенты могут равняться нулю, поэтому формально степень полинома размером соответствующего массива не определяется. В методе power() коэффициенты полинома, начиная со старшего, проверяются на предмет отличия от нуля. В соответствии с этим определяется и степень полинома.

НЕ нашли? Не то? Что вы ищете?

Метод show() предназначен для отображения коэффициентов полинома, записанных в поле-массив а. Этим же методом выводится степень полинома.

Подкласс PolyDerive создается на основе суперкласса PolyBase. В этом классе описан метод prod(), предназначенный для вычисления произведения полиномов. Обращаем внимание читателя, что и аргументом, и результатом этого метода является объект суперкласса PolyBase. При вычислении произведения принимается во внимание то обстоятельство, что степени исходных полиномов могут иметь нулевые старшие коэффициенты. Также в подклассе перегружен унаследованный из суперкласса метод show() таким образом, что методу передается аргумент, для которого вычисляется значение полинома в точке, и это значение, равно как и коэффициенты полинома и его степень, выводятся на консоль.

В подклассе также описан конструктор создания объекта на основе объекта суперкласса. Конструктор суперкласса в этом случае явно не вызывается - в суперклассе конструктор не описан. По умолчанию если вызова конструктора суперкласса в конструкторе подкласса не происходит, автоматически вызывается конструктор суперкласса по умолчанию. Что касается создаваемого объекта, то его поле а является копией соответствующего поля объекта, указанного аргументом конструктора.

На основе класса PolyDerive создается класс Taylor, предназначенный для разложения в ряд Тейлора произведения двух известных разложений. Формально эта процедура состоит в произведении двух полиномов. Особенность же связана с тем, что если нужно найти ряд Тейлора до степени n, то умножаются два полинома степени n, а в полиноме-результате (в общем случае это полином степени 2n) необходимо оставить только слагаемые степени не выше n.

В классе Taylor переопределяется метод show() так, что при выводе информации о полиноме появляется дополнительное сообщение о том, что вычисляется ряд Тейлора. При переопределении метода show() вызывается версия этого метода из суперкласса, для чего используется инструкция super. show(). Это тот вариант метода show(), который унаследован классом PolyDerive из класса PolyBase.

Кроме этого метода в классе Taylor описан конструктор создания объекта класса на основе двух объектов класса PolyBase. Фактически речь идет о вычислении ряда Тейлора на основе двух полиномов. Другими словами, чтобы вычислить ряд Тейлора, достаточно создать объект класса Taylor, указав аргументами конструктора два исходных полинома.

В конструкторе вызывается конструктор суперкласса (для класса Taylor суперклассом является класс PolyDerive) с передачей в качестве аргумента первого полинома (объекта класса РоlyBase). Затем создается временный объект tmp - произведение двух полиномов. На основе полученного локального объекта tmp заполняются элементы массива а создаваемого объекта класса Taylor.

Отметим, что в данном случае неявно предполагается, что переданные конструктору класса Taylor полиномы имеют поля-массивы одинакового размера, а размер массива для объекта-результата определяется размером массива первого из двух передаваемых конструктору объектов.

В главном методе программы в классе PolyExtendsDemo проиллюстрирована функциональность рассмотренного кода. Результат выполнения программы имеет следующий вид:

Коэффициенты полинома:

2.0  -5.0  13.0  -8.0  9.0  -2.0  7.0  4.0  -12.0

Степень полинома: 8.

Аргумент полинома:  -1.0

Значение полинома:  3.0

Коэффициенты полинома:

1.0  -2.0  4.0  1.0  -3.0

Степень полинома: 4.

Ряд Тейлора!

Коэффициенты полинома:

2.0  -5.0  13.0  -8.0  9.0

Степень полинома: 4.

В частности, объявляются три объектные переменные (Р, Q и R) класса PolyBase. Для двух (Р и Q) полям а присваиваются в явном виде значения, а в третью (переменную R) записывается ссылка на результат произведения двух полиномов. При этом инструкцией new PolyDerive(P) на основе первого объекта Р класса PolyBase создается анонимный объект класса PolyDerive, из которого вызывается метод prod() для вычисления произведения полиномов. Аналогично проверяется функциональность перегруженного в подклассе PolyDerive метода show(). Для вычисления ряда Тейлора с одновременным выводом результата на консоль использована команда new Taylor(P, Q).show(). В данном случае также создается анонимный объект.

3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Для выполнения работы необходимо:

1. Повторить правила техники безопасности при работе с вычислительной техникой.

2. Изучить теоретическую часть настоящих методических указаний.

3. Получить у преподавателя вариант задания  (варианты заданий приведены в разделе 6 настоящих методических указаний).

4. Написать программу на Java (при необходимости используя предварительно разработанный алгоритм).

5. Ввести программу в компьютер, отладить и результаты выполнения показать преподавателю.

6. В соответствии с требованиями, приведенными в разделе 4, оформить отчет по лабораторной работе.

7. Защитить лабораторную работу, продемонстрировав препода­вателю:

отчет по лабораторной работе;

умение решать аналогичные задачи;

теоретические знания.

4. ТРЕБОВАНИЯ К ОТЧЕТУ

Отчет по выполненной лабораторной работе должен содержать:

титульный лист;

условие задания;

схемы алгоритмов решения задач

текст программы на языке Java.

5. ВАРИАНТЫ ЗАДАНИЙ

Вариант 1        

Написать программы для решения задач:

1. Создать объект класса Текст, используя класс Абзац. Методы: дополнить текст, вывести на консоль текст, заголовок текста.

2. Создать объект класса Наседка, используя классы Птица, Кукушка. Методы: летать петь, нести яйца, высиживать птенцов.

3. Построить модель программной системы. Система Факультатив. Преподаватель объявляет запись на Курс. Студент записывается на Курс,  обучается и по окончании Преподаватель выставляет оценку, которая сохраняется в Архиве. Студентов, Преподавателей и Курсов при обучении может быть несколько.

Вариант 2        

Написать программы для решения задач:

1. Создать объект класса Автомобиль, используя класс Колесо. Методы: ехать, заправляться, менять колесо, вывести на консоль марку автомобиля.

2. Создать объект класса Текстовый файл, используя класс Файл. Методы: создать, переименовать, вывести на консоль содержимое, дополнить, удалить.

3. Построить модель программной системы. Система Платежи. Клиент имеет Счет в банке и Кредитную Карту (КК). Клиент может оплатить Заказ, сделать платеж на другой Счет, заблокировать КК и аннулировать Счет. Администратор может заблокировать Счет за превышение кредита.

Вариант 3        

Написать программы для решения задач:

1. Создать объект класса Самолет, используя класс Крыло. Методы: летать, задавать маршрут, вывести на консоль маршрут.

2. Создать объект класса Одномерный массив, используя класс Массив. Методы: создать, вывести на консоль, выполнить операции (сложить, вычесть, перемножить).

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

Вариант 4        

Написать программы для решения задач:

1. Создать объект класса Россия, используя класс Область. Методы: вывести на консоль столицу, количество областей, площадь, областные центры.

2. Создать объект класса Простая дробь, используя класс Число. Методы: вывод на экран, сложение, вычитание, умножение, деление.

3. Построить модель программной системы. Система Вступительные экзамены. Абитуриент регистрируется на Факультет, сдает Экзамены. Преподаватель выставляет Оценку. Система подсчитывает средний балл и определяет Абитуриентов, зачисленных в учебное заведение.

Вариант 5        

Написать программы для решения задач:

1. Создать объект класса Планета, используя класс Материк. Методы: вывести на консоль название материка, планеты, количество материков.

2. Создать объект класса Дом, используя классы Окно, Дверь. Методы: закрыть на ключ, вывести на консоль количество окон, дверей.

3. Построить модель программной системы. Система Библиотека. Читатель оформляет Заказ на Книгу. Система осуществляет поиск в Каталоге. Библиотекарь выдает Читателю Книгу на абонемент или в читальный зал. При невозвращении Книги Читателем он может быть занесен Администратором в «черный список».

Вариант 6        

Написать программы для решения задач:

1. Создать объект класса Звездная система, используя классы Планета, Звезда, Луна. Методы: вывести на консоль количество планет в звездной системе, название звезды, добавление планеты в систему.

2. Создать объект класса Роза, используя классы Лепесток, Бутон. Методы: расцвести, увянуть, вывести на консоль цвет бутона.

3. Построить модель программной системы. Система Конструкторское бюро. Заказчик представляет Техническое Задание (ТЗ) на проектирование многоэтажного Дома. Конструктор регистрирует ТЗ, определяет стоимость проектирования и строительства, выставляет Заказчику Счет за проектирование и создает Бригаду Конструкторов для выполнения Проекта.

Вариант 7        

Написать программы для решения задач:

1. Создать объект класса Компьютер, используя классы Винчестер, Дисковод, ОЗУ. Методы: включить, выключить, проверить на вирусы, вывести на консоль размер винчестера.

2. Создать объект класса Дерево, используя классы Лист. Методы: зацвести, опасть листьям, покрыться инеем, пожелтеть листьям.

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

Вариант 8        

Написать программы для решения задач:

1. Создать объект класса Квадрат, используя классы Точка, Отрезок. Методы: задание размеров, растяжение, сжатие, поворот, изменение цвета.

2. Создать объект класса Пианино, используя класс Клавиша. Методы: настроить, играть на пианино, нажимать клавишу.

3. Построить модель программной системы. Система Автобаза. Диспетчер распределяет заявки на Рейсы между Водителями и назначает для этого Автомобиль. Водитель может сделать заявку на ремонт. Диспетчер может отстранить Водителя от работы. Водитель делает отметку о выполнении Рейса и состоянии Автомобиля.

Вариант 9        

Написать программы для решения задач:

1. Создать объект класса Круг, используя классы Точка, Окружность. Методы: задание размеров, изменение радиуса, определение принадлежности точки данному кругу.

2. Создать объект класса Фотоальбом, используя класс Фотография. Методы: задать название фотографии, дополнить фотоальбом фотографией, вывести на консоль количество фотографий.

3. Построить модель программной системы. Система Интернет-магазин. Администратор добавляет информацию о Товаре. Клиент делает и оплачивает Заказ на Товары. Администратор регистрирует Продажу и может занести неплательщиков в «черный список».

Вариант 10        

Написать программы для решения задач:

1. Создать объект класса Котёнок, используя классы Животное, Кошка. Методы: вывести на консоль имя, подать голос, рожать потомство (создавать себе подобных).

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

3. Построить модель программной системы. Система Железнодорожная касса. Пассажир делает Заявку на станцию назначения, время и дату поездки. Система регистрирует Заявку и осуществляет поиск подходящего Поезда. Пассажир делает выбор Поезда и получает Счет на оплату. Администратор вводит номера Поездов, промежуточные и конечные станции, цены.


Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6