|
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
|
||||||||||||||||
Полиморфизм07.05.2019, 16:47. Показов 1422. Ответов 10
Метки нет (Все метки)
задача -
Эта задача о построении функциональных цепочек. Функциональные цепочки - это функции, которые содержат упорядоченный набор математических функций, которые выполняются по порядку для вычисленных значений предшествующей функции, начиная с заданного значения. Функции, которые рассматриваются в этой задаче, - это любые функции, которые отображают двойное значение на другое двойное значение. Порядок выполнения функций должен быть произвольным. Функциональная цепочка должна быть в принципе иметь любую длину. Пример: даны функции f, g, h и p. Функциональная цепочка k1 состоит из трех функций в порядке f, g и h, т.е. k1 = f◦g◦h. Тогда: k1 (x) = f (g (h (x))). Функциональная цепочка k2 состоит из четырех функций в порядке g, f, g и p, т.е. k2 = g◦f ◦g◦p. Тогда: k2 (x) = g (f (g (p (x)))). В этой задаче вы должны подумать о том, как такие последовательности функций могут быть реализованы. В конце концов, должна быть возможность писать программы с классами, которые вы разрабатываете:
В этом примере цепочка функций устанавливается (при определении соответствующих классов Function, CosineFunction, SquareRootFuction и SineFunction) и активируется путем вызова chain.calculate. Значение cos (корень из (sin (x)) рассчитывается для введенного пользователем значения x. Другие возможные функции (для соответствующих классов):
Вот,что я накалякал
0
|
||||||||||||||||
| 07.05.2019, 16:47 | |
|
Ответы с готовыми решениями:
10
Полиморфизм
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 07.05.2019, 17:30 | |
|
0
|
|
|
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
|
|
| 07.05.2019, 17:35 [ТС] | |
|
iSmokeJC,
почему? такое задание,я ничего не выдумал))
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||
| 07.05.2019, 17:42 | ||
|
Djoni, дело не в задании.
А ты пытаешься создать объекты, передавая им в конструктор (которого кстати нету, точнее только дефолтный) другие объекты. Вобщем у тебя в корне неверный подход к задаче. Добавлено через 2 минуты Хотя, если тебе препод дал эти вот примеры как основу, тогда для каждого класса нужно создавать конструктор, принимающий на вход объект типа Function Добавлено через 31 секунду Извращение какое-то имхо...
0
|
||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 07.05.2019, 17:43 | |
|
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 07.05.2019, 17:44 | |
|
0
|
|
|
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
|
||||||
| 07.05.2019, 17:51 [ТС] | ||||||
|
Function chain = new SquareFunction(new SquareRootFunction(new SineFunction()));
Как я это понимаю - сhain имеет все свойства от Funktion(т е все методы),но ведет себя(т е выполняет) все как описанно в SquareFunction, т е я создаю метод calculate(double x) в Function,и переписываю его в SquareFunction Далее SquareFunction это общий класс, от него должны extense классы которые стоят в скобках??? и т д? и в этих подклассах я переписываю метод calculate(x) так,как он должен работать только в них? Добавлено через 4 минуты iSmokeJC, Хотя, если тебе препод дал эти вот примеры как основу, тогда для каждого класса нужно создавать конструктор, принимающий на вход объект типа Function т е так?
или нужно вызвать в контрукторе сеперкласс?
0
|
||||||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|||||||||||||||||||||
| 07.05.2019, 17:54 | |||||||||||||||||||||
Кликните здесь для просмотра всего текста
2
|
|||||||||||||||||||||
|
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
|
|
| 07.05.2019, 17:58 [ТС] | |
|
korvin_,
твой код крут,спасибо,но нужно,вызывать именно Function chain1 = new SquareRootFunction(new SquareRootFunction(new TangentFunction())); Function chain2 = new SineFunction(new SquareFunction(new IdentityFunction()));
0
|
|
|
Автоматизируй это!
|
||||||
| 07.05.2019, 18:41 | ||||||
Сообщение было отмечено Djoni как решение
Решение
Djoni, пример, далее по аналогии, все классы наследники функции, за точность расчетов не ручаюсь, писал на коленке, но для тестов менял все эти косинусы на +2, *2 и т.п. - работало верно и в ожидаемой последовательности. но мог что-то проглядеть
1
|
||||||
|
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
|
|
| 07.05.2019, 20:43 [ТС] | |
|
Welemir1, спасибо,сейчас потестю
0
|
|
| 07.05.2019, 20:43 | |
|
Помогаю со студенческими работами здесь
11
Полиморфизм Полиморфизм Полиморфизм в Java Наследование/Полиморфизм
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|