|
|
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Ввести с консоли 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 - ниже. Покритикуйте . Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 17:22:57 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Ну сам алгоритм я просмотрел через строку, но ничего криминального не заметил. Могу сказать, что в некоторых местах имя переменных и имена методов не совсем логичные или не отражают суть проблемы, например list1, list2, divider() и т.п. Так же разбил бы метод main на части соответствующие выполняемым функциям типа того - Код: java 1. 2. 3. 4. 5. 6. Ну это так, чтоб совсем по-пацански было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 17:45:37 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
А ну еще тут у тебя косячок - Код: java 1. 2. Почему не используются generics? У тебя же всегда там Integer будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 17:49:04 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
С точки зрения лабораторной, если работает, то зачет. С точки зрения комерческого программирования: 1. В if и for обязательно используйте {}, даже для одной строки. Скобки можно опустить только если тело блока находится в той же строке что и if/for 2. revSortByVal - используйте полноценные английские слова reverseSortingByValue - читается намного лучше. 3. revSortByVal - полный ахтунг в плане генериков. Integer превращается в Object и потом вообще generic типа почему-то пропадает. 4. bubbleRevSortByMod - почему ByMod когда ByAbs на самом деле? 5. gcd, lcm - зачем писать такие именна, чтобы потом объяснять в коментарии? greatestCommonDivisor() и всё. Либо getGCD, если GCD - общепринятое имя в проекте. 6. Русскоязычный текст может потерятся в процессе компиляции. 7. Переменным таким как list1, int2 нужно давать более осмысленые имена. Для long p, q, r, l, t, i;, возможно, тоже. 8. Всё написано в строго процедурном стиле, хотя свой объект на каждую задачу напрашивается. Отсюда и такой разброд в именах переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 17:50:20 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Ну и тут в принципе тоже, не то чтобы неправильно, но может привести к ошибке Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Лучше в каждом методе создавать свой List, а то рискуешь нарваться на неприятности, связанные с побочными эффектами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 17:51:49 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
авторВсё написано в строго процедурном стиле, хотя свой объект на каждую задачу напрашивается. Я не пурист абсолютного ООП, но мне кажется практичнее создать утилитный класс по подобию java.util.Math, вы не согласны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 18:00:32 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
забыл никЯ не пурист абсолютного ООП, но мне кажется практичнее создать утилитный класс по подобию java.util.Math, вы не согласны? Проще, но не практичнее. Здесь единый ввод, обработка данных списком задач и достаточно общий вывод. Можно было унифицировать. Ну и static поубирать везде, кроме утилитных методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 18:07:28 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Офигеть, сколько букв. Чета хочется убрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 18:11:28 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС точки зрения комерческого программирования: 1. В if и for обязательно используйте {}, даже для одной строки. Скобки можно опустить только если тело блока находится в той же строке что и if/for... Зачем??? Уже сколько сталкиваюсь с этой дилеммой, но ни одна из сторон внятного ответа не дала. На сайте Сана (или АйБиЭма - не помню) встречал рекомендацию не использовать фигурные скобки для одной строки. Так как и ранее не использовал, то это только придало уверенности, что я все-таки делаю правильно. А тут ты ... если бы твой авторитет не был столь высоким, то я бы просто прошел мимо, а так очень интересно услышать мнение - зачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 18:34:38 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Я бы и divider упростил. Он существует только для того чтоб вернуть список который сушествует только для того чтобы отработал toString. Так выведете сразу на консоль результат. Незачем мусорить в куче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 18:41:35 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
И зачем LinkedList? Там сгодился-бы обычный ArrayList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 19:04:16 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Blazkowiczесли тело блока находится в той же строке что и if/for тут трудность в том, что я включаю автоформат...он строки делает.... не особо церемонясь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 21:27:02 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Blazkowicz6. Русскоязычный текст может потерятся в процессе компиляции.?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 21:34:38 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
IDVsbruckЗачем??? Уже сколько сталкиваюсь с этой дилеммой, но ни одна из сторон внятного ответа не дала. На сайте Сана (или АйБиЭма - не помню) встречал рекомендацию не использовать фигурные скобки для одной строки. Так как и ранее не использовал, то это только придало уверенности, что я все-таки делаю правильно. А тут ты ... если бы твой авторитет не был столь высоким, то я бы просто прошел мимо, а так очень интересно услышать мнение - зачем. В связи с тем как в Java принято ставить скобки, то для глаза нет разницы между такими блоками. Код: java 1. 2. 3. Код: java 1. 2. 3. Один девелопер не пишет скобку. Второй дописывает строку в тело условия. А она оказывается вне. Такую багу уже раза 3 встречал за последний год в legacy проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:27:20 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Petro123тут трудность в том, что я включаю автоформат...он строки делает.... не особо церемонясь. Я всегда пишу скобки. Мне не трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:28:39 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Petro123Blazkowicz6. Русскоязычный текст может потерятся в процессе компиляции.?? IDE сохраняет в одной кодировке. Компилятор работает в другой. Зачастую они совпадают. Но могут и не совпасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:30:21 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
авторВ связи с тем как в Java принято ставить скобки, то для глаза нет разницы между такими блоками. А еще беда если проект на нескольких языках - в одних есть скобки, в других нет, и такая бага чаще вылавливается(точнее происходит а потом вылавливается) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:35:58 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
BlazkowiczIDE сохраняет в одной кодировке. Компилятор работает в другой я так понял, если компилить во внешнем компиляторе без ide. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:37:51 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
выходит, что скобки - "если кто-то невнимательный". OK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:39:53 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Petro123выходит, что скобки - "если кто-то невнимательный". OK Это как в HTML не закрывать теги ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:42:58 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
забыл ник, не совсем: - там можно не закрывать (парсер допускает ошибки) - тут чисто вопрос корпоративной политики. Как внутри решили - так и будет. Технических причин ставить скобки (begin ...end) я не увидел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:47:01 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Petro123Технических причин ставить скобки (begin ...end) я не увидел. А технические причины вообще разделять текст на строки, а не писать весь код в одну строку, видишь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:50:43 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Edd.DragonPetro123Технических причин ставить скобки (begin ...end) я не увидел. А технические причины вообще разделять текст на строки, а не писать весь код в одну строку, видишь? а у нас так и принято :) if aaaa else bbbbb в строго оговорённых случаях, без маразма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:53:56 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Petro123Edd.Dragonпропущено... А технические причины вообще разделять текст на строки, а не писать весь код в одну строку, видишь? а у нас так и принято :) if aaaa else bbbbb в строго оговорённых случаях, без маразма. Вот в том то и дело. Что компилятору ни твои лишние пробелы, ни переводы строки не нужны. Но код ты ж не только для компилятора пишешь, удовлетворяя техническим требованиям, но и для чтения, удовлетворяя человеческим требованиям. Никто не ищет причину, почему нельзя писать 10 if-ов в одну строку. И таки можно - на здоровье. Тут то же самое. Можно не обрамлять. Но сосбтвенно какая разница, одну строку ты опускаешь под if или 10? Глаз привык видеть либо if в одну строку, либо if со скобками. Мозг привык, при необходимости, добавлять новых строк под уже имеющиеся. Вот и чудесно. Повод поставить скобки есть хоть какой-то. А не ставить - по большому счету повода нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 23:04:55 |
|
||
|
Задачи на числа. Решение. Покритикуйте. (часть #1)
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon Глаз привык видеть либо if в одну строку, либо if со скобками. мммм. У кого привык? Я не спорю, я из Delphi и С++ пришёл. Там все большинство аккуратных пишут Код: java 1. 2. 3. 4. 5. 6. 7. Кроме того, я в нескольких фирмах видел свои правила скобок. В Java многое по другому. Это я в курсе. авторМозг привык, при необходимости, добавлять новых строк под уже имеющиеся Да, мностроковость кода - фирменная черта Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 23:14:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37707530&tid=2131987]: |
0ms |
get settings: |
21ms |
get forum list: |
26ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
62ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 384ms |
| total: | 624ms |

| 0 / 0 |
