Loading...

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

mimiiovkova avatar mimiiovkova 2 Точки

ПИТАНЕ за съдействие - 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);
  

Тагове:
0
Programming Basics with C#
RadostinStoychev avatar RadostinStoychev 128 Точки

Пробвай с cast
 

int tables = (int)((h * 100) - 100) / 70;
int rows = (int)(w * 100) / 120;

int places = rows * tables - 3;

 

0
krum_43 avatar krum_43 750 Точки

11*12=132-3=129 => workPlace=129.

 

0
RadostinStoychev avatar RadostinStoychev 128 Точки

@mimiiovkova почети малко за "Casting" или "Type Conversion", "Implicit Conversion", "Explicit Conversion" в нета. По принцип cast-ването трябва да се избягва защото се губят данни, но за тази задача може да се използва. В случая кастваме double към int (12.37742 -> 12). Тоест изрично казваш на типа double да започне да се държи като int и съответно ще изяде числата след десетичната запетая, защото int-a e целочислен тип. Ето още един пример:
 

long a = long.MaxValue;
int b = (int)a;

// a --> 9223372036854775807
// b --> -1

Обърни внимание на типовете при кастване, но общо взето гледай да го избягваш. Даже мисля, че твоят вариант с 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 :)

1
09/05/2019 23:57:09
mimiiovkova avatar mimiiovkova 2 Точки

@RadostinStoychev 

Уау, страхотно! Много ти благодаря за насоките :) 

За скобите и аз си го мислих, ама нали съм нова тука - сега и ти като ми го казваш, яко скоби навсякъде значи, ахаха!

В момента приоритетно ми е до края на седмицата да взема целия материал на Basic да ти кажа, за да се запиша за следващото ниво, щото дотук бързичко ми се получават нещата и няма какво да чакам 5 месеца за нещо, което мога да разбера за 5 дни, а типовете данни ги прегледах преди да се запиша за курса и имам идея, но досега по задачите не са ми трябвали и гледам да се придържам към методиката, за да схвана темата последователно без да се разхвърлям прекалено, нали разбираш, че то няма да има край иначе.

1
09/05/2019 02:13:29
RadostinStoychev avatar RadostinStoychev 128 Точки

mimiiovkova Разбира се, всичко с времето си. Надявам се насоките, които дадох да са били полезни. И аз минах по същия път и си спомням как си бутах главата за същите неща :D. Наблегни повече на for и while циклите като стигнеш до тях. По-късно когато се сблъскаш и с масиви ще трябва да ползваш For цикли за да ги обхождаш :D. Успех

0
09/05/2019 23:34:48
mimiiovkova avatar mimiiovkova 2 Точки

Благодаря ти Крум! 

 

0
08/05/2019 20:29:01
mimiiovkova avatar mimiiovkova 2 Точки

Благодаря ти RadostinStoychev, в курса съм от 4 дни и това което предлагаш ми е малко непознатичко засега, като дръпна поне седмица вярвам, че ще го ползвам :)

0
mimiiovkova avatar mimiiovkova 2 Точки

  

0
08/05/2019 20:33:18
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.