Профил
Loading...
+ Нов въпрос
NachevB avatar NachevB 14 Точки

Здравей,
Може ли линк към условието или темата, от която е извадена задачата?
Благодаря.

0
26/03/2019 19:51:30
CvetelinP avatar CvetelinP -2 Точки

ето линк

https://softuni.bg/trainings/resources/officedocument/38994/exercise-problem-descriptions-programming-basics-with-csharp-march-2019/2298

0
NachevB avatar NachevB 14 Точки

Първо искам да се извиня, че решението, което ще ти дам е за Java, но не мисля, че ще ти е трудно да се ориентираш.
Ето решение минало 100/100: https://pastebin.com/NW6dk22C
Не смятам, че е най оптимизираният код, но работи.

0
CvetelinP avatar CvetelinP -2 Точки

Благодаря ти !

0
Iv_Konov avatar Iv_Konov 383 Точки

Здравей, CvetelinP,

 

Тръгнах да ти коригирам грешките, но се спрях... Предлагам ти да оптимизираш кода.

 

Не е удобно да смяташ с калкулатор (трудно се проверява).

Също така да повтаряш код е неудобно. Пример: при нужда от корекция на случайна грешка - печата на резултата го имаш няколко пъти - най-добре е да го оставиш за накрая.

Console.WriteLine($"Apartment: {priceApartment:f2} lv.");

Console.WriteLine($"Studio: {priceStudio:f2} lv.");

 

===========================================
            if (month == "May" || month == "October")
            {
                priceStudio = 50;
                priceApartment = 65;

                if (sleepNights > 14)
                {
                    priceStudio *= 1 - 0.3; // priceStudio = priceStudio * (1 - 0.3) - може и така, каквото решиш
                }
                else if (sleepNights > 7)
                {
                    priceStudio *= 1 - 0.05;
                }
            }
            else if (month == "June" || month == "September")
            {
                priceStudio = 75.20;
                priceApartment = 68.70;

                if (sleepNights > 14)
                {
                    xxxxxxxxxxxxxxxxxxxxxx; // допълни сам, съзнателно го изтрих!!!
                }
            }
            else if (month == "July" || month == "August")
            {
                priceStudio = 76;
                priceApartment = 77;
            }

            if (sleepNights > 14) // това е за всички месеци и няма смисъл да вмъкваш в няколко if else if конструкции
            {
                xxxxxxxxxxxxxxxxxxxx; // това го допълни сам, съзнателно го изтрих
            }

            priceStudio *= sleepNights; // броят на нощите също се повтарят, и съм ги изнесъл 
            priceApartment *= sleepNights;

            Console.WriteLine($"Apartment: {priceApartment:f2} lv.");
            Console.WriteLine($"Studio: {priceStudio:f2} lv.");

======================================

 

Поздрави,

Иван

0
26/03/2019 22:13:36
CvetelinP avatar CvetelinP -2 Точки

Много полезен сьвет .Благодаря ти, ще го запомня .

Поздрави!

0
Borislav_Vulkov avatar Borislav_Vulkov 54 Точки

Здравей, 
ето и моето решение на тази задача на C#, което дава 100/100 Judge. Мосля, че кода кода е оптимизирам достатъчно но ще ми е интересно и полсезно ако някой може да даде идеи за по-добра оптимизация. 


======================================

using System;

namespace Hotel_Room
{
    class Program
    {
        static void Main()
        {
            //Inputs
            string month = Console.ReadLine();                                             //Month of stay.
            byte nights = Convert.ToByte(Console.ReadLine());                    //Number of nights.

            decimal priceApartment =0m;
            decimal priceStudio = 0m;
            decimal discountApartment = 0m;
            decimal discountStudio = 0m;

            //Logic
            if (month == "May" || month == "October")                                    //Checks the month is it May or October.
            {
                priceApartment = nights * 65m;                                                 //Calculate the price for an apartment.
                priceStudio = nights * 50m;                                                       //Calculate the price for a studio.

                if (nights > 7)                                                                             //Check for discount for a studio.
                {
                    if (nights <= 14)
                    {
                        discountStudio = (priceStudio / 100) * 5;                          //Calculates the discount 5% for a stdio.
                    }
                    else
                    {
                        discountStudio = (priceStudio / 100) * 30;                        //Calculates the discount 30% for a stdio.
                    }
                }
            }

            if (month == "June" || month == "September")                              //Checks the month is it June or September.
            {
                priceApartment = nights * 68.7m;                                             //Calculate the price for an apartment.
                priceStudio = nights * 75.2m;                                                   //Calculate the price for a studio.

                if (nights > 14)                                                                          //Check for discount for a studio.
                {
                    discountStudio = (priceStudio / 100) * 20;                           //Calculates the discount 20% for a stdio.
                }
            }

            if (month == "July" || month == "August")                                    //Checks the month is it July or August.
            {
                priceApartment = nights * 77m;                                               //Calculate the price for an apartment.
                priceStudio = nights * 76m;                                                     //Calculate the price for a studio.
            }

            if (nights > 14)                                                                             //Check for discount for an apartment.
            {
                discountApartment = (priceApartment / 100) * 10;                  //Calculates the discount 10 % for an apartment.
            }

            priceApartment = priceApartment - discountApartment;             //Calculate the final price for an apartment.
            priceStudio = priceStudio - discountStudio;                                //Calculate the final price for a studio.

            //Outputs
            Console.WriteLine("Apartment: {0:F2} lv.", priceApartment);
            Console.WriteLine("Studio: {0:F2} lv.", priceStudio);
        }
    }
}

======================================

Поздрави,
Боби

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