Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
cvl
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 2
#1

Напишите два класса Handler и Handler Controller, которые будут реализовывать поведение, описанное ниже

12.02.2016, 16:46. Просмотров 525. Ответов 3
Метки нет (Все метки)

Приветствую всех! Нужна помощь в написании(решении) задачи, дело в том, что я начал изучать Java (есть определенные успехи) но в нашем городе нет курсов(и не планируются) по Java, а открылись бесплатные курсы по Ruby(с перспективой дальнейшего трудоустройства) - но для вступления надо решить два тестовых задания. Осталась неделя до подачи решенных задач. Первое я решил, а со вторым проблема))), если сможете помочь буду премного благодарен! Решение обязательно разберу и пойму как оно работает! Спасибо!


Задача №2 (ВОТ ТУТ ТО И ПРОБЛЕМА для меня)


Напишите два класса Handler и Handler Controller, которые будут реализовывать поведение, описанное ниже. Напишите ваши функции так, чтобы приведенный ниже код работал без каких-либо изменений. Информация, выводимая в консоль, должна полностью соответствовать той информации, которая приведена в коде после символа // =>
Внимательно ознакомьтесь с комментариями к коду и в точности соблюдайте условий и ограничений. Код в задании приведен с оспользованнием Ruby синтаксиса. Выполнять задачи на Java языке, сохраняя условия задачи. Важно не использовать массивы и листы. Другие структуры данных на Ваше усмотрение.


# Напишите классы наследники от приведённого ниже класса Handler которые реализуют описанное в коде поведение
class Handler
# Публичное строковое свойство доступное только для чтения
attr_reader :name
# Конструктор с инициализацией параметра name по умолчанию
def initialize(name='empty name')
**@name = name
end
# Публичный метод принимающий числовой массив в качестве аргумента и возвращающий строковое значение
def calculate(array)
**'Calculate method is empty'
end

end
# Создание объектов класса аналог записи
# Handler *empty_handler = new Handler();
# в других языках
empty_handler = Handler.new
min_handler = MinHandler.new
max_handler = MaxHandler.new

# Напишите класс HandlerController который реализует данное поведение

controller = HandlerController.new
# Объект класса HandlerController должен содержать только эти публичные члены:
# add_handler, calculate, print

# Не используйте для хранения Handler-объектов массив
controller.add_handler(min_handler)
controller.add_handler(max_handler)
controller.add_handler(empty_handler)

# При вызове метода calculate с одним аргументом производиться вычисления над переданным числовым массивом
# во всех добавленных в controller объектах handler
controller.calculate([1, 2, 3, 4])
controller.print
# //=>Handler 'min' return: 1
# //=>Handler 'max' return: 4
# //=>Handler 'empty name' return: Calculate method is empty

# При вызове метода calculate с двумя аргументами производиться вычисления над переданным числовым массивом
# *во всех объектах handler добавленных в controller чьё имя содержится
# *в строковом массиве имён, переданного в качестве второго аргумент

controller.calculate([1, 2, 3, 5, 6], ['min'])
controller.print
# //=>Handler 'min' return: 1

# Создайте наследников от Handler объекты которых реализуют следующую функциональность:
# нахождение предмаксимального элемента (функционал взять из первой задачи)

controller.add_handler(PremaxHandler.new)
# вычисления суммы элементов масива
controller.add_handler(SumHandler.new)
# вычисления среднего арефметического элементов масива
controller.add_handler(AverageHandler.new)

controller.calculate([1, 2, 3, 5, 6], ['min', 'premax', 'sum', 'average'])
controller.print
# //=>Handler 'min' return: 1
# //=>Handler 'premax' return: 5
# //=>Handler 'sum' return: 17
# //=>Handler 'average' return: 3.4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2016, 16:46
Ответы с готовыми решениями:

Private field 'handler' is never assigned. ActionListener
Не пойму в чем дело, не работает ActionListener. import javax.swing.*;...

Handler
Вот допустим обьект Handler был создан в активити(то есть в главном потоке). И...

Handler
import android.app.Activity; import android.os.Bundle; import...

Handler timer
Добрый вечер. С помощью какого метода в Handler...

Handler JAVA EE
Всем привет. Прошу о помощи, разъяснить как правильно написать и использовать...

3
reisal78
894 / 645 / 218
Регистрация: 28.04.2013
Сообщений: 1,841
12.02.2016, 17:51 #2
cvl, решение на java нужно?
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
12.02.2016, 17:59 #3
reisal78,
Цитата Сообщение от cvl Посмотреть сообщение
Код в задании приведен с использованием Ruby синтаксиса. Выполнять задачи на Java языке, сохраняя условия задачи.
0
cvl
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 2
12.02.2016, 18:04  [ТС] #4
Да решение надо на Java! Я изучаю Java и буду дальше учить, но Core.OOP только начал лекции слушать! Там было два задания первое я решил. На второе у меня времени (если сам буду решать на данном этапе не хватит)! А есть возможность запрыгнуть на курсы Ruby. Если есть возможность ПОМОГИТЕ с решением! Спасибо!

Добавлено через 3 минуты
Это условие и решение первой задачи!

Задача решается одним циклом. Напишите функцию, которая принимает массив числовых значений, вычисляет и возвращает наибольший элемент массива после максимального. К примеру, для массива [1, 2, 3, 4, 5, 5] это будет 4.
ограничения
Алгоритм не должен использовать другой массив (а также любые типы коллекций) и не должен никаким образом менять начальный массив.
Кейсы для проверки:
Для массива [5, 5, 5, 5, 5] или [5] на которое возвращается: null
Для массива [1, 2, 3, 4, 5, -5] на которое возвращается: -2
Для массива [1, 1, 1, 1, 5, 5] или [5, 5, 1, 1, 1, 1] на которое возвращается: 1
Для массива [1, 2, 3] или [3, 2, 1] на которое возвращается: 2
Для массива [1, 3] на которое возвращается: 1


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static Integer premax (int[] array){
 
    int max = Integer.MIN_VALUE, premax = Integer.MIN_VALUE;
 
     for (int i = 0; i < array.length; i++) {
         if (array[i] > max) {
             premax = max;
             max = array[i];
         }
         else if (max != array[i] && premax < array[i]){
             premax = array[i];}
     }
 
    return( premax == Integer.MIN_VALUE ) ?  null :  premax;
 
}
 public static void main(String[] args)
 {
     int[] a = {5, 5, 5, 5};
     System.out.println(premax(a));
 }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2016, 18:04

ImageButton и Handler
Хочу сделать кнопку с помощью ImageButton, но не знаю как создать на каждый...

Не работает Handler
Я нахожусь на 66 уроке startandroid, здесь упоминается Handler. Почему то...

Handler vs Service vs AsynkTask
Есть 2 Activity, пусть A1 и A2. В методе onCreate() Activity A1 запускается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru