Loading...

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

PreslavaJeleva avatar PreslavaJeleva 8 Точки

Tourist Shop (Programming Basics with JavaScript)

Здравейте,

Опитах се да реша задача от минал изпит на JS.

Във visual code всички изходи ми излизат верни, но в judge ми излиза грешката "Time limit" и не съм сигурна къде бъркам.

Ето моето решение: https://pastebin.com/vf3ssJeD

Условието:

Задача 5. Туристически магазин

Линк към Judge: https://judge.softuni.bg/Contests/Practice/Index/1654#3

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

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

Вход

От конзолата се чете:

  • На първи ред – бюджетът - реално число в интервала [1.00… 100000.00]
  • След това поредица от два реда (до получаване на команда "Stop" или при заявка за купуване на продукт, чиято стойност е по-висока от наличния бюджет) :
    • Име на продукта – текст
    • Цена на продукта – реално число в интервала [1.00… 5000.00]

Изход

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

  • При получаване на командата "Stop", на един ред:
    • "You bought {брой на закупените продукти} products for {цена на покупките} leva."
  • При заявка за покупка на продукт, чиято цена е по-висока от останалите пари, на два реда:
    • "You don't have enough money!"
    • "You need {недостигащи пари} leva!"

Примерен вход и изход

Вход

Изход

Обяснения

153.20

Backpack

25.20

Shoes

54

Sunglasses

30

Stop

You bought 3 products for 94.20 leva.

Бюджетът е 153.20 лв.

Купуваме раница за 25.20 лева. Остават 128 лв.

Купуваме обувки за 54 лева. Остават 74 лв.

Купуваме слънчеви очила за 30 лева, но тъй като за всеки трети продукт има отстъпка и цената му е наполовина, така че цената на очилата става 30 / 2 = 15 лева. Остават 59 лв.

Получаваме командата "Stop", купили сме 3 продукта на обща стойност 25.20 + 54 + 15 = 94.20 лв.

Вход

Изход

Обяснения

54

Thermal underwear

24

Sunscreen

45

You don't have enough money!

You need 15.00 leva!

Бюджетът е 54 лв.

Купуваме термо бельо за 24 лева. Остават 30 лв.

Заявка за закупуване на компас на стойност 45 лева, но останалите пари са 30 лв. Не достигат 45 – 30 = 15 лева.

 

 

Ще съм благодарна, ако ми помогнете да си открия грешката.

Благодаря1 :)

Тагове:
icowwww avatar icowwww 2673 Точки
Best Answer

Здравей,

Имаш 3 грешки.

Изхода от програмата е в следните два случая

  • При получаване на командата "Stop", на един ред:
    • "You bought {брой на закупените продукти} products for {цена на покупките} leva."
  • При заявка за покупка на продукт, чиято цена е по-висока от останалите пари, на два реда:
    • "You don't have enough money!"
    • "You need {недостигащи пари} leva!"

Обаче при теб  не приключва във втория случай

Другото console.log(`You need ${Math.abs(budget)} leva!`) - не закръгляш до втори знак.

Друго- след като вадиш от budget-a сумата проверката трябва да е по скоро не:

if(budget < price){  , а :

if(budget < 0){

 

https://pastebin.com/L7FJ5JNw

0
PreslavaJeleva avatar PreslavaJeleva 8 Точки

Много благодаря!

Не се бях сетила да използвам return, защото в лекциите сме го ползвали само веднъж и бях забравила за функционалността му. 

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