ПИТАНЕ за съдействие - 05. Training Lab // Simple Operations and Calculations - More Exercises
Здравейте, не мога да разбера къде е проблема, аритметиката не ми излиза вярно, въпреки че поотделно всичко излиза, че е вярно..
double w = double.Parse(Console.ReadLine());
double h = double.Parse(Console.ReadLine());
double rows = Math.Floor((h * 100) - 100) / 70; // тук това излиза че е 11 (вярно)
double places = Math.Floor(w * 100 / 120); // това излиза че е 12 (вярно) ; 11 * 12 = 132 (вярно)
double workPlaces = rows * places - 3; // е тука обаче като го сметне ми излиза че 11 * 12 = 135 - 3 = 132 НЯКОЙ ДА ИМА ИДЕЯ ЗАЩО?
Console.WriteLine("{0:F0}", workPlaces);
11*12=132-3=129 => workPlace=129.
@mimiiovkova почети малко за "Casting" или "Type Conversion", "Implicit Conversion", "Explicit Conversion" в нета. По принцип cast-ването трябва да се избягва защото се губят данни, но за тази задача може да се използва. В случая кастваме double към int (12.37742 -> 12). Тоест изрично казваш на типа double да започне да се държи като int и съответно ще изяде числата след десетичната запетая, защото int-a e целочислен тип. Ето още един пример:
Обърни внимание на типовете при кастване, но общо взето гледай да го избягваш. Даже мисля, че твоят вариант с Math.Floor e по-добър. Сложи повече скобки, когато не си сигурна. Не пречи, даже помага и за четимостта на кода. Операторите като ( ), *, -, + имат ранг или приоритет при изпълнение. Например скобите винаги се изпълняват първи.
2 + 2 * 5 = 12
(2 + 2) * 5 = 20
2 * 2 + 5 = 9
Може да почетеш повече и за това на този линк:
https://docs.microsoft.com/en-us/cpp/c-language/precedence-and-order-of-evaluation?view=vs-2019
Happy Coding :)
@RadostinStoychev
Уау, страхотно! Много ти благодаря за насоките :)
За скобите и аз си го мислих, ама нали съм нова тука - сега и ти като ми го казваш, яко скоби навсякъде значи, ахаха!
В момента приоритетно ми е до края на седмицата да взема целия материал на Basic да ти кажа, за да се запиша за следващото ниво, щото дотук бързичко ми се получават нещата и няма какво да чакам 5 месеца за нещо, което мога да разбера за 5 дни, а типовете данни ги прегледах преди да се запиша за курса и имам идея, но досега по задачите не са ми трябвали и гледам да се придържам към методиката, за да схвана темата последователно без да се разхвърлям прекалено, нали разбираш, че то няма да има край иначе.
mimiiovkova Разбира се, всичко с времето си. Надявам се насоките, които дадох да са били полезни. И аз минах по същия път и си спомням как си бутах главата за същите неща :D. Наблегни повече на for и while циклите като стигнеш до тях. По-късно когато се сблъскаш и с масиви ще трябва да ползваш For цикли за да ги обхождаш :D. Успех
Благодаря ти Крум!
Благодаря ти RadostinStoychev, в курса съм от 4 дни и това което предлагаш ми е малко непознатичко засега, като дръпна поне седмица вярвам, че ще го ползвам :)