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

Ski Trip, Nested Conditional Statements

Kude mi e greshkata :)

13.*Ски почивка

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

  1. "room for one person" – 18.00 лв за нощувка
  2. "apartment" – 25.00 лв за нощувка
  3. "president apartment" – 35.00 лв за нощувка

Според броят на дните, в които ще остане в хотела (пример: 11 дни = 10 нощувки) и видът на помещението, което ще избере, той може да ползва различно намаление. Намаленията са както следва:

вид помещение

по-малко от 10 дни

между 10 и 15 дни

повече от 15 дни

room for one person

не ползва намаление

не ползва намаление

не ползва намаление

apartment

30% от крайната цена

35% от крайната цена

50% от крайната цена

president apartment

10% от крайната цена

15% от крайната цена

20% от крайната цена

След престоя, оценката на Атанас за услугите на хотела може да е позитивна (positive) или негативна (negative) . Ако оценката му е позитивна, към цената с вече приспаднатото намаление Атанас добавя 25% от нея. Ако оценката му е негативна приспада от цената 10%.

Вход

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

  1. Първи - дни за престой - цяло число в интервала [0...365]
  2. Втори - вид помещение - "room  for  one  person", "apartment" или "president  apartment"
  3. Трети - оценка - "positive" или "negative"

Изход

На конзолата трябва да се отпечата един ред:

  1. Цената за престоят му в хотела, форматирана до втория знак след десетичната запетая.

 

 

function(days,roomType,experience){
  days=Number(days);
  let nights=days-1;
  let price=0;
  
  if(roomType=="room for one person") {
    price=18*nights;
  }else if(roomType=="apartment"&& days<10){
    price=25*nights-0.3*price;
  }else if(roomType=="apartment"&& days>=10&&days<=15){
    price=25*nights-0.35*price;
  }else if(roomType=="apartment" && days>15) {
    price=25*nights-0.5*price;
  }else if(roomType=="president apartment"&& days<10){
    price=35*nights-0.1*price;
  }else if(roomType=="president apartment"&& days>=10 && days<=15){
    price=35*nights-0.15*price;
  }else if(roomType=="president apartment" && days>15) {
    price=35*nights-0.2*price;
  }
  
  if (experience=="positive") {
    price+=0.25*price;
  }else if(experience=="negative") {
    price-=0.1*price;
  }
  console.log(price.toFixed(2));
}

Тагове:
0
Programming Basics
MartinBG avatar MartinBG 3074 Точки

Има грешка в изчисляването на отстъпките към цените.

Например тук за 4 дни:

  let price=0;
  /....
  }else if(roomType=="apartment"&& days<10){
    price = 25 * nights - 0.3 * price;
  }
  /....

ще получим:

price = 25 * 4 - 0.3 * 0 // * 0, защото price = 0 към този момент

price = 100 - 0

price = 100 // вместо 70

 

Оправен код.

0