Софтуерно Инженерство
Loading...
+ Нов въпрос
kolioi avatar kolioi 611 Точки

11. Четворки нарастващи числа -- code review

Това е задача 11 от Sample Coding 101 Exam - Jan 2016 

Условието накратко:

По дадена двойка числа a и b да се генерират всички четворки n1, n2, n3, n4, за които an1 < n2 < n3 < n4b.

Вход

Входът съдържа две цели числа a и b в интервала [b…1000], по едно на ред.

Изход

Изходът съдържа всички търсени четворки числа, в нарастващ ред, по една на ред.

 

Упражнявах се малко с рекурсия и направих това решение http://pastebin.com/UVjSbdjG  Джаджа ми дава 100/100. Тъй като нямам много опит със C# обаче, бих искал да помоля за коментар по кода ми и какво може да се подобри или да се направи правилно, ако не е. Благодаря.

 

Тагове:
galin.krastev avatar galin.krastev 0 Точки

Здравей kolioi!

Ето едно code review от мен :).

  1. (ред 7) - Обикновенно в C# променливитe се именуват със малка буква отпред и всяка следваща значима буква е главна (pascalCase). Namespaces, Classes, Methods, Properties, Constructors... се именуват с голяма буква отпред и пак всяка следваща значима е главна (CamelCase).
  2. Няма модификатори за достъп(не мисля, че е от особено значение в текущият случей) пред нито един член на класът. 
  3. Нямаш фигурни скоби за code block в метод GenerateVariations na if-else statement-a. Добра практика е да ги има.
  4. В Main method-a имаш 2 променливи: a,b. Т.к. ги имаш  декларирани най отгоре в класът можеш директно да им присвойш стойностите прочетени от конзолата. С цел по-добра четимост, в случея можеш да си спестиш 2 променливи.

Поздрави!

Галин

0
kolioi avatar kolioi 611 Точки

Благодаря, ще ги имам предвид тези неща.

0
RoYaL avatar RoYaL SoftUni Team Trainer 6845 Точки

Алгоритмичните задачи като цяло не са особено мерило за Code Quality. Все пак, в смисъла на самообясняващия се код е добре функциите да не разчитат на глобални (статични) променливи. В този смисъл нека a и b бъдат аргументи на функцията, а не статични за класа.

0
kolioi avatar kolioi 611 Точки

Тук използвам рекурсия и затова искам да подавам по-малко параметри, това ми беше идеята.

0