Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Задачи на числа. Решение. Покритикуйте. (часть №1)


Автор: m1st 15.3.2012, 15:05
Цитата

Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести: 
1.    Четные и нечетные числа.
2.    Наибольшее и наименьшее число.
3.    Числа, которые делятся на 3 или на 9.
4.    Числа, которые делятся на 5 и на 7.
5.    Элементы, расположенные методом пузырька по убыванию модулей.
6.    Все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
7.    Наибольший общий делитель и наименьшее общее кратное этих чисел.
8.    Простые числа.
9.    Отсортированные числа в порядке возрастания и убывания.
10.    Числа в порядке  убывания частоты встречаемости чисел.
11.    “Счастливые” числа. 
12.    Числа Фибоначчи: f0 = f1 = 1, f (n) = f (n–1) + f (n–2).
13.    Числа-палиндромы, значения которых в прямом и обратном порядке совпадают.
14.    Элементы, которые равны полусумме соседних эле¬ментов.
15.    Период десятичной дроби p = m/n для первых двух целых положительных чисел n и m, расположенных подряд. 
16.    Построить треугольник Паскаля для первого положительного числа. 


Привет, решение данных заданий на Java - ниже. Покритикуйте.

Код наиболее последней версии тут: http://ideone.com/a72cO

Автор: Samotnik 15.3.2012, 21:32
m1st, что именно критиковать? ООП тут нет, паттернов тоже. 300 строк кода алгоритмов и условий врядли кто-то смотреть будет. Работает - и хорошо.  smile 
Если вызывает сомнение какой-то конкретный алгоритм то его и укажи. 

Праметризируй Map, Comparator.

Автор: m1st 16.3.2012, 08:38
Цитата(Samotnik @  15.3.2012,  21:32 Найти цитируемый пост)
m1st, что именно критиковать?
Все, к чему душа лежит.

Цитата(Samotnik @  15.3.2012,  21:32 Найти цитируемый пост)
ООП тут нет
Как нет? поясните...

Цитата(Samotnik @  15.3.2012,  21:32 Найти цитируемый пост)
300 строк кода алгоритмов и условий врядли кто-то смотреть будет. Работает - и хорошо.   Если вызывает сомнение какой-то конкретный алгоритм то его и укажи. 
Обьем да, но на мой взгляд - читается как стихи.
Не сомнение движет мною, а исключительно тяга к познанию. Желание написать код лучше. ж)

Автор: jk1 16.3.2012, 08:45
Цитата

Обьем да, но на мой взгляд - читается как стихи.


Нееет, от хорошо читаемого кода это далековато. Читаемый код надо хотя бы минимально документировать.
Вот эта конструкция например нечитабельна совершенно
Код

if (num.length() == 4
                    && num.charAt(0) + num.charAt(1) == num.charAt(2)
                            + num.charAt(3))

о её назначении можно догадаться только из-за элементарности задачи.

Автор: m1st 16.3.2012, 09:48
jk1, согласен, когда говорил о читаемости и имел ввиду "элементарность задачи".

Автор: m1st 20.3.2012, 14:04
Сделал рефактор почти всего кода. 

Автор: m1st 22.3.2012, 17:59
Добавил в первый пост свежую версию программы.

Автор: m1st 28.3.2012, 20:39
Исправленная и улучшенная версия добавлена в первое сообщение.

Автор: m1st 10.4.2012, 16:51
Исправленная и улучшенная версия добавлена в первое сообщение.

Автор: m1st 15.4.2012, 06:58
Код наиболее последней версии переехал сюда: http://ideone.com/a72cO

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)