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

[C# Basics Live Training] 05.04.2014, следобед: кодът на решените задачи

Здравейте!

Както обещах, публикувам кода от решените на живо задачи от подготовката за изпит, проведена днес, 05.04.2014 г. от 14 до 19 ч.

Линк към BGCoder за изпита, който решихме: http://bgcoder.com/Contests/105/Telerik-Academy-Exam-1-5-December-2013-Evening

Решения:

  1. Piece of Cake - http://pastebin.com/tZTSKE1K ;
  2. AngryGPS - http://pastebin.com/C0JiEZR5 ;
  3. Ones and Zeros - http://pastebin.com/RSwiiQKp ;
  4. Eggcelent - http://pastebin.com/Lyreaax6 ;
  5. Smetalnika - http://pastebin.com/Vh2Ds4XA .

1,3 и 4 задача - решени от Емил Славов, 2 и 5 задача - от Стефан Върбанов.

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

Благодаря за присъствието ви и успех!

easlavov avatar easlavov 72 Точки

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

При подадено положително число двата метода връщат еднакви резултати, защото закръглят в еднаква "посока". Разликата идва при отрицателните числа. Math.Floor() закръгля към минус безкрайност, а Math.Truncate() - към 0.

Примерен код:

decimal number = -15.3m;
Console.WriteLine(Math.Floor(number));
Console.WriteLine(Math.Truncate(number));

Резултатът ще е:

-16
-15

Надявам се вече всичко е ясно.

13
ScreeM avatar ScreeM 19 Точки

Благодаря за изяснението, ще ни бъде от полза за напред.

0
milen_vm avatar milen_vm 68 Точки

Аз доколкото разбрах условието дробната, част не трябва да се закръклява а направо да се отреже. Аз го експлицитнах от decimal към long и пак се отчита като вярно в bgcoder

1
ScreeM avatar ScreeM 19 Точки

Да, и това е вариант.

0
StanimirStankov avatar StanimirStankov 18 Точки

Разглеждам три метода на класа Math.

double x = Math.Floor(n)  - връща най-голямото цяло число (x < n)       или закръгля надолу към - {\displaystyle \infty }

                 Math.Floor(-15.3) // -16                           -16 < -15.3

                 Math.Floor(15.9) // 15                              15 < 15.9

double x = Math.Ceiling(n)  - връща най - малкото цяло число (x >n)     или закръгля нагоре към + {\displaystyle \infty }

                 Math.Ceiling(-15.3) // -15                           -15 > -15.3

                 Math.Ceiling(15.9) // 16                              16 > 15.9

double x = Math.Truncate(n) - връща цялото число като премахва дробната част

                 Math.Truncate(-15.3)   //-15

                 Math.Truncate(15.9)    //15

0
20/08/2016 16:24:51