Професионална програма
Loading...
eternalincantation avatar eternalincantation 2 Точки

07. Hotel Room- Conditional Statements Advanced - Exercise-Javascript Basics

Здравейте,

дава ми 80% или 90% на тази задача и не мога да си намеря грешката... 

7.Хотелска стая

Хотел предлага 2 вида стаи: студио и апартамент. Напишете функция, която изчислява цената за целия престой за студио и апартамент. Цените зависят от месеца на престоя:

Май и октомври

Юни и септември

Юли и август

Студио – 50 лв./нощувка

Студио – 75.20 лв./нощувка

Студио – 76 лв./нощувка

Апартамент – 65 лв./нощувка

Апартамент – 68.70 лв./нощувка

Апартамент – 77 лв./нощувка

Предлагат се и следните отстъпки:

  1. За студио, при повече от 7 нощувки през май и октомври : 5% намаление.
  2. За студио, при повече от 14 нощувки през май и октомври : 30% намаление.
  3. За студио, при повече от 14 нощувки през юни и септември: 20% намаление.
  4. За апартамент, при повече от 14 нощувки, без значение от месеца : 10% намаление.

Вход

Получават се 2 аргумента:

  1.  месецът – May, June, July, August, September или October
  2. броят на нощувките – цяло число в интервала [0 … 200]

Изход

Да се отпечатат на конзолата 2 реда:

  1. На първия ред: “Apartment: {цена за целият престой} lv.
  2. На втория ред: “Studio: {цена за целият престой} lv.

Цената за целия престой форматирана с точност до два знака след десетичната запетая.

__________________________________________________________

function hotel(month,nrStay){
  nrStay=Number(nrStay);
  let studio=0;
  let apartment=0;
  
  switch(month) {
   case "May":
   case "October":
      if (nrStay > 14){
      studio = 50*0.70*nrStay;
      apartment = 65*0.90*nrStay;
      }else if(nrStay > 7 && nrStay <= 14) {
       studio = 50*0.95*nrStay;
       apartment=65*0.90*nrStay;
      }else if (nrStay<=7) {
       studio = 50*nrStay;
       apartment = 65*nrStay;
        }
      break;
   case"June":
   case"September":
      studio = 75.20*nrStay;
    apartment = 68.70*nrStay;
      if(nrStay > 14) {
       studio = 75.20*0.80*nrStay;
       apartment = 68.70*0.90*nrStay;
      }
       break;
   case"July":
   case"August":
    studio = 76*nrStay;
    apartment = 77*nrStay;
      if(nrStay > 14) {
       apartment = 77*0.90*nrStay;
      }
       break;
  }
  console.log(`Apartment: ${apartment.toFixed(2)} lv.`);
  console.log(`Studio: ${studio.toFixed(2)} lv.`);
}

Тагове:
MartinBG avatar MartinBG 2781 Точки

Грешката е даването на 10% отстъпка за апартамент при над 7 нощувки за May и October:

      }else if(nrStay > 7 && nrStay <= 14) {
       studio = 50*0.95*nrStay;
       apartment=65*0.90*nrStay; // грешка!
      }else if (nrStay<=7) {

 

0
18/05/2020 21:01:06
eternalincantation avatar eternalincantation 2 Точки

blagodarq, greshkata e na 

  }else if(nrStay > 7 && nrStay <= 14) {
       studio = 50*0.95*nrStay;
       apartment=65*0.90*nrStay; 

mislq 4e tuk si imal predvid prosto si paste-nal drugiq :) blagodarq ti mn!

 

1
18/05/2020 20:50:42
MartinBG avatar MartinBG 2781 Точки

@eternalincantation

Да, този код имах предвид

Поправих си отговора :)

0