Софтуерно Инженерство
Loading...
MarioDandarov avatar MarioDandarov 27 Точки

Съвет към всички

Изобщо не искам да създавам впечатление, че съм много напред с материала. Аз съм един от начинаещите и често гледам на другите домашните, взимам когато каквото ми трябва, но съм забелязал две бих казал недоглеждания, дължащи се на малко тестове.

Първия проблем, който забелязвам е, че често се игронира CultureInfo-то. Добре е, ако имате програма, в която има числа след запетаята, да зададете Culture-а още в първия ред на програмата.

Тъй като съм свикнал да ползвам формата (0.00) използвам следното:

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

Другото, което искам да наблегна е да се четат внимателно условията, защото в много домашни пише real numbers, а виждам int-ове. На една задача имаше floating-point, пак видях само int-ове.

Според мен това се дължи на малко тестове. Аз винаги тествам програмките поне 15-20 пъти, а по-големките стигам до 100 теста.

Отново казвам, че това са съвети и просто исках да споделя с вас, тъй като гледам доста домашни.

Ще се радвам, ако и вие споделите често срещани грешки. :)

XmUrF avatar XmUrF 362 Точки

Добре, ама тоя CultureInfo не е ли малко излишен в крайна сметка? Вие като отворите кода на вашите си компютри, той ще си ви работи както си ви работи при вас системата. Тоест ако сте със запетайка, както бях аз, работеше със запетайка. Ако сте с точка, ще си работи с точка.

 

Поправете ме ако греша, но идеята на CultureInfo е да не гърми програмата ако на настройки за запетая въведете точка. Само че вие си знаете какви са ви настройките(предполага се го знаете поне) и си знаете дали конзолата ви иска запетая или не. Тоест който както си е свикнал и без тоя ред ще си въвежда това, което му е удобно и програмата ще си работи.

2
MarioDandarov avatar MarioDandarov 27 Точки

В условието за вход уточняваш какъв да е формата.

"Enter a number [0.00 format]: "
"Enter a number [0,00 format]: "

Ако имаш по-добро решение - сподели го, защото ми се налага почти във всяка програма да го пиша :)

Пък и целта е да работи на всякакви устройства, а не само на твоето.
0
XmUrF avatar XmUrF 362 Точки

Аха, сега те разбрах. Е аз не указвам какъв да е формата. В смисъл не казвам дали да е запетайка или точка. Указвам дали да е цяло число или не, това мисля, че е достатъчно. Вече кой както си е направил системата да си въвежда запетайка или точка, както му харесва.

 

Програмата ще работи на всяко устройство дори и без този ред и обикновено няма и да гърми, защото потребителят, който ще я пуска се предполага, че е свикнал с формата на собствения си компютър. Проблем би имало, ако ти седнеш на друг компютър с различни от твоите настроики, тогава ще гърми. Не че е лошо да го има този ред, ама за домашните според мен не е необходим.

0