Programming-Basics-Book-CSharp-BG

Пресмятане на теглото

Всяка дата се състои от точно 8 символа (цифри) - 2 за деня (d1, d2), 2 за месеца (d3, d4) и 4 за годината (d5 до d8). Това означава, че всеки път ще имаме едно и също пресмятане и може да се възползваме от това, за да дефинираме формулата статично (т.е. да не обикаляме с цикли, реферирайки различни цифри от датата, а да изпишем цялата формула). За да успеем да я изпишем, ще ни трябват всички цифри от датата в отделни променливи, за да направим всички нужни умножения. Използвайки операциите деление и взимане на остатък върху отделните компоненти на датата, чрез свойствата Day, Month и Year, можем да извлечем всяка цифра.

Нека обясним и един от по-интересните редове тук. Нека вземе за пример взимането на втората цифра от годината (d6). При нея делим годината на 100 и взимаме остатък от 10. Какво постигаме така? Първо с деленето на 100 отстраняваме последните 2 цифри от годината (пример: 2018 / 100 = 20). С остатъка от деление на 10 взимаме последната цифра на полученото число (20 % 10 = 0) и така получаваме 0, което е втората цифра на 2018.

Остава да направим изчислението, което ще ни даде магическото тегло на дадена дата. За да не изписваме всички умножения, както е показано в примера, ще приложим просто групиране. Това, което трябва да направим, е да умножим всяка цифра с тези, които са след нея. Вместо да изписваме d1 * d2 + d1 * d3 + … + d1 * d8, може да съкратим този израз до d1 * (d2 + d3 + … + d8), следвайки математическите правила за групиране, когато имаме умножение и събиране. Прилагайки същото опростяване за останалите умножения, получаваме следната формула: