Професионална програма
Loading...
+ Нов въпрос
RFilipov avatar RFilipov 136 Точки

Моят вариант:

https://github.com/ROSSFilipov/CSharp/tree/master/OOP/SoftUni-Homework/ExceptionHandling

Макар, че съм модифицирал всички задачи и данните се въвеждат една по една докато потребителя не въведе нещо коректно.

1
SimMtr avatar SimMtr 72 Точки

Добро решение. Препотъка - няма нужда от while цикъл в Main метода, както и да вкарваш като параметър int[] array в метода ReadNumber(), остави го само ReadNumber(int start, int end).

Може и да вкараш и 10 в константа: private const int Count = 10;

0
20/11/2015 16:06:01
mbeleva88 avatar mbeleva88 69 Точки

Ето моето решение на 2-рата задача:

Нарушена точка 12 от Правилата.

Мисля, че отговаря точно на условието.

0
20/11/2015 13:22:16
djc_bg2015 avatar djc_bg2015 923 Точки

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

0
mbeleva88 avatar mbeleva88 69 Точки

Мда, прав си. Не съм видяла тази подробност в условието ;) мерси за забележката.

0
bacuty avatar bacuty 55 Точки

Много се извинявам, но ако на някой му се занимава може ли да ми поясни втора задача ,нищо не разбрах от условието :)

0
Exten avatar Exten 4 Точки

На първа задача при отрицателно число мисля че ще принти NaN и след това грешката заради иф-а (djc_bg2015)

0
24/11/2015 14:19:43
djc_bg2015 avatar djc_bg2015 923 Точки

Здравей, ето аутпута при отрицателно число:
 

-55
Invalid number
Good bye
Press any key to continue . . .

 

0
Willbe.S avatar Willbe.S 5 Точки

Ето и моята задача 2

http://pastebin.com/LHSBTc9x

Искаше ми се да избегна това повторение на кода във всичките catch блокове, но не ми хрумва как, ще се радвам да чуя ако някой има идея :)

0
djc_bg2015 avatar djc_bg2015 923 Точки

А защо не го изнесеш в метод?

Например:
 

public void MethodName(Exception ex, int start, int end) {
            Console.WriteLine(ex.Message);
            Console.WriteLine("Try again: ");
            return EnterNumber(start, end);
}

 

1
Willbe.S avatar Willbe.S 5 Точки

Да, това ще свърши работа, мерси :)

0
radi81 avatar radi81 43 Точки

Ето и моето решение на зад. 2, не знам доколко съм спазила принципите на ООП:

https://gist.github.com/radi81/d74abe500682f5a98052

1
24/11/2015 21:03:35
Nadia.Hristova avatar Nadia.Hristova 41 Точки

Кода изглежда добре. Лично на мен ми хареса варианта с counter-a и while loop-a при въвеждането на данните към зад 2(сега ме е яд, че не се сетих да го направя така :D). Към задача 2 имам и 1-2 предложения  за подобрение/оптимизация: 

- дръпни List<int> enteredNumbers в proprty и/или field. Като идея метода да връща list от въведените стойности е добра, но в сегашния вид при всяко извикване на ReadNumber се създава нова инстанция на list-a и данните се губят.   

- в Main разположи counter-a точно под ReadingNumbers.ReadNumber(Console.ReadLine());. Така ако имаш грешен вход програмата ще гръмнe и директно ще скочи на catch блоковете, игнорирайки реда counter++;

- хвани ги и другите excepion-и, така програмката ще си върви дори някой някъде да сгреши.

Успех!

1
25/11/2015 00:01:17
Nadia.Hristova avatar Nadia.Hristova 41 Точки

Ето го и моето творение.

Не знам дали е много добра идеята да се се самоизвиква функцията в catch блока, но нали още се учим, видях възможността и реших да се възползвам. :)

0
24/11/2015 22:58:35
IDM1488 avatar IDM1488 1 Точки

Кодът е усложнен ненужно и принтира при някои ситуации повече от едно съобщения, а не се принтира най-важното - коренът на коректно въведено число :)

1
Nadia.Hristova avatar Nadia.Hristova 41 Точки

Да наистина има бъг. Сега май го оправих.

Мерси за помоща. :)

0