Programming Basics Exam - 28 August 2016 - HOTEL ROOM
Половината тестове не минават. Има проблеми при If за June && September. Там някъде ми прави грешни сметки, но не разбирам защо.
Благодаря предварително.
Половината тестове не минават. Има проблеми при If за June && September. Там някъде ми прави грешни сметки, но не разбирам защо.
Благодаря предварително.
1. може month и days направо горе да се дефинират;
month = Console.ReadLine();
days = Convert.ToInt32(Console.ReadLine());
2. смени placeholder-a с {0:f2}, който закръгля до втория знак след десетичната запетая;
3. махни wholePa.ToString() и wholePs.ToString() и ги замени с "Apartment: {0:f2} lv." и "Studio: {0:f2} lv.";
4. дните през  Юни, Юли, Август и Септември трябва да са повече от (>14), а не да са 14 или повече(>=14!!!!);
5. махни последния "Console.ReadLine()", той не ти върши никаква работа;
6. не оставяй толкова място между редовете, че е по-трудно кода да се проследи;
7. използвай pastebin.
Успех в обучението! :)
Не виждам къде прилагаш отстъпката за брой нощувки.
Виш как съм го направил аз, примерно за май/октомври:
if (numberOfNights > 14)
{
priceApart = numberOfNights * 65.0 * 0.9;
priceStudio = numberOfNights * 50.0 * 0.7;
}
else if (numberOfNights > 7)
{
priceStudio = numberOfNights * 50.0 * 0.95;
priceApart = numberOfNights * 65.0;
}
else
{
priceApart = numberOfNights * 65.0;
priceStudio = numberOfNights * 50.0;
}
А цялото решение е тук : http://pastebin.com/4XZsBX76
priceA = priceA - (priceA * 10 / 100);
Просто правя формула, вместо да пресмятам на ум.
Прочети правилата на фирума и ползвай pastebin за код по-дълъг от 15 реда.
1. Премахни това "Console.ReadLine();" в края на програмата си и я стартирай със Ctrl+F5. Така няма да ти се затваря прозореца след изпълнение.
2. Поправи си диапазоните, така, че да станат :
if (days > 7 && days <= 14)
if (days > 14)
Другата грешка е, че при въвеждане на 0 дни, резултатът е:
Apartment: .00 lv.
Studio: .00 lv.
т.е. не се изпечатва нулата за левовете.
Благодаря! :)
Използвай условна конструкция switch-case:
using System;
namespace HotelRoom
{
    class Program
    {
        static void Main(string[] args)
        {
            string month = Console.ReadLine();
            var overnights = int.Parse(Console.ReadLine());
            double studio = 0, apartament = 0;
            switch (month)
            {
                case "May":
                case "October":
                    studio = 50 * overnights;
                    apartament = 65 * overnights;
                    if (overnights > 7 && overnights <= 14) studio -= studio * 0.05;
                    else if (overnights > 14) studio -= studio * 0.30;
                    break;
                case "June":
                case "September":
                    studio = 75.20 * overnights;
                    apartament = 68.70 * overnights;
                    if (overnights > 14) studio -= studio * 0.20;
                    break;
                case "July":
                case "August":
                    studio = 76 * overnights;
                    apartament = 77 * overnights;
                    break;
                default:
                    break;
            }
            if (overnights > 14) apartament -= apartament * 0.10;
            Console.WriteLine("Apartment: {0:F2} lv.", apartament);
            Console.WriteLine("Studio: {0:F2} lv.", studio);
        }
    }
}
А защо е необходимо да конвертира days при положение, че си е зададена като int и може да я парсне директно?
int days = int.Parse(Console.ReadLine());
Добър въпрос! И аз не мога да си обясня като е зададено по условие. Не знам кво ми е хрумнало тогава. :D
Във връзка със старите задачи от изпити и аз искам да добавя нещо важно.
Аз съм от група JAVA на Programming basics, септември'16
Реших някои от първите задачи от стари изпити, но при проверка в judge, ми дава множество грешки, дължащи се на проблем със закръглянето, и то на 0,0000000???-ниво. предполагам, защото са писани на C#.
Много моля, този проблем да се оправи! Защото на изпита ще пропищят много хора с верни задачи, а системата им е показала, че са грешни.
...Става въпрос за тази задача: http://pastebin.com/ei8Ti0KD
1
5
5
569.6687179487179 , а това е вярното: 569.668717948718