Loading...
kolioi avatar kolioi 641 Точки

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# обаче, бих искал да помоля за коментар по кода ми и какво може да се подобри или да се направи правилно, ако не е. Благодаря.

 

Тагове:
0
Programming Basics
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 641 Точки

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

0
RoYaL avatar RoYaL Trainer 6849 Точки

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

0
kolioi avatar kolioi 641 Точки

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

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.