Loading...
BozhidarKuzmanov avatar BozhidarKuzmanov 1 Точки

07.Toy Shop

Здравейте,

дали бихте могли да ми кажете къде е грешката ми в следния код:

prise_puzzle = 2.60
price_talking_doll = 3
price_teddy_bear = 4.10
price_minion = 8.20
price_truck = 2
total_price_trip = float(input())
num_puzzles = int(input())
num_talking_dolls = int(input())
num_teddy_bears = int(input())
num_minions = int(input())
num_truck = int(input())
total_checkout = prise_puzzle * num_puzzles + price_talking_doll * num_talking_dolls + price_teddy_bear \
                 * num_teddy_bears + price_minion * num_minions + price_truck * num_truck
total_number = num_truck + num_minions + num_teddy_bears + num_puzzles + num_talking_dolls
if total_number > 50:
    discount = 25 / 100 * total_checkout
    final_sum = total_checkout - discount
    rent = 0.1 * final_sum
    profit = final_sum - rent
    if profit > total_price_trip:
        money_left = profit - total_price_trip
        print(f"Yes! {money_left:.2f} lv left.")
elif total_number < 50:
    rent = 0.1 * total_checkout
    profit = total_checkout - rent
    if profit < total_price_trip:
        money_left = total_price_trip - profit
        print(f"Not enough money! {money_left:.2f} lv needed.")

 

със следното условие на задачата:

Петя има магазин за детски играчки. Тя получава голяма поръчка, която трябва да изпълни. С парите, които ще спечели, иска да отиде на екскурзия. Да се напише програма, която пресмята печалбата от поръчката.

Цени на играчките:

  • Пъзел - 2.60 лв.
  • Говореща кукла - 3 лв.
  • Плюшено мече - 4.10 лв.
  • Миньон - 8.20 лв.
  • Камионче - 2 лв.

Ако поръчаните играчки са 50 или повече магазинът, прави отстъпка 25% от общата цена. От спечелените пари Петя трябва да даде 10% за наема на магазина. Да се пресметне дали парите ще ѝ стигнат да отиде на екскурзия.

Вход

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

  1. Цена на екскурзията - реално число;
  2. Брой пъзели - цяло число;
  3. Брой говорещи кукли - цяло число;
  4. Брой плюшени мечета - цяло число;
  5. Брой миньони - цяло число;
  6. Брой камиончета - цяло число.

Изход

На конзолата се отпечатва:

  • Ако парите са достатъчни се отпечатва:
    • "Yes! {оставащите пари} lv left."
  • Ако парите НЕ са достатъчни се отпечатва:
    • "Not enough money! {недостигащите пари} lv needed."

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

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

Вход

Изход

Обяснения

 

 

 

40.8

20

25

30

50

10

Yes! 418.20 lv left.

Сума: 20 * 2.60 + 25 * 3 + 30 * 4.10 + 50 * 8.20 + 10 * 2 = 680 лв.

Брой на играчките: 20 + 25 + 30 + 50 + 10 = 135

135 > 50 => 25% отстъпка; 25% от 680 = 170 лв. отстъпка

Крайна цена: 680 – 170 = 510 лв.

Наем: 10% от 510 лв. = 51 лв.

Печалба: 510 – 51 = 459 лв.

459 > 40.8 => 459 – 40.8 = 418.20 лв. остават

Вход

Изход

Обяснения

320

8

2

5

5

1

Not enough money! 238.73 lv needed.

Сума: 90.3 лв.

Брой на играчките: 21

21 < 50 => няма отстъпка

Наем: 10% от 90.3 = 9.03 лв.

Печалба: 90.3 – 9.03 = 81.27 лв.

81.27 < 320 => 320 – 81.27 = 238.73 лв. не достигат

 

Проблема е, че ми излизат правилните стойности, но в judge ми дава 60/100 без да знам къде има грешка в кода

Благодаря за отделеното време!

Тагове:
0
Programming Basics with Python 12/11/2020 17:04:22
icowwww avatar icowwww 2813 Точки

Здравей,

Липсва ти случая, в който поръчката е от повече от 50 неща, но парите не са достатъчни за екскурзия. Предполагам и огледалния случай с достатъчни пари за екскурзия при по-малко от 50 играчки. С добавянето на първото условие минава със 100/100:

prise_puzzle = 2.60
price_talking_doll = 3
price_teddy_bear = 4.10
price_minion = 8.20
price_truck = 2
total_price_trip = float(input())
num_puzzles = int(input())
num_talking_dolls = int(input())
num_teddy_bears = int(input())
num_minions = int(input())
num_truck = int(input())
total_checkout = prise_puzzle * num_puzzles + price_talking_doll * num_talking_dolls + price_teddy_bear \
                 * num_teddy_bears + price_minion * num_minions + price_truck * num_truck
total_number = num_truck + num_minions + num_teddy_bears + num_puzzles + num_talking_dolls
if total_number >= 50:
    discount = 0.25 * total_checkout
    final_sum = total_checkout - discount
    rent = 0.1 * final_sum
    profit = final_sum - rent
    if profit >= total_price_trip:
        money_left = profit - total_price_trip
        print(f"Yes! {money_left:.2f} lv left.")
    else :
        money_left = total_price_trip - profit
        print(f"Not enough money! {money_left:.2f} lv needed.")
elif total_number < 50:
    rent = 0.1 * total_checkout
    profit = total_checkout - rent
    if profit < total_price_trip:
        money_left = total_price_trip - profit
        print(f"Not enough money! {money_left:.2f} lv needed.")

 

0
12/11/2020 22:56:04
BozhidarKuzmanov avatar BozhidarKuzmanov 1 Точки

Да, аз си открих проблема и ми даде 100/100. Мерси все пак.

0
Harmonyq avatar Harmonyq 0 Точки

Здравейте колеги, ще се радвам да ми откриете грешката. В Judge ми дава 60/100, a в PyCharm ми излизат всички решения правилно.
 

tour_price = float(input())
puzzle_number = int(input())
talking_doll_number = int(input())
teddy_bear_number = int(input())
minion_number = int(input())
truck_number = int(input())
total_sold_sum = float(puzzle_number * 2.60 + talking_doll_number * 3 + teddy_bear_number * 4.10 + minion_number * 8.20 + truck_number * 2)
total_toys_number = puzzle_number + talking_doll_number + teddy_bear_number + minion_number + truck_number
if total_toys_number >= 50:
    profit_after_discount = total_sold_sum * 0.75
    after_rent = profit_after_discount * 0.9
    if after_rent >= tour_price:
        left_money = after_rent - tour_price
        print(f"Yes! {left_money:.2f} lv left.")
elif total_toys_number < 50:
    money_after_rent = total_sold_sum * 0.9
    left_money = money_after_rent - tour_price
    print(f"Not enough money! {abs(left_money):.2f} lv needed.")
0
27/11/2020 14:26:33
Dyakov90 avatar Dyakov90 0 Точки

Здравей, 

Така както си структурирал/а кода нямаш проверка за:

  • случаите, когато парите за екскурзията стигат, но общият брой на играчките е под 50
  • случаите, когато парите не достигат И общият брой на играчките е над 50

Или добави няколко условни конструкции, за да предвидиш горните ситуации, или ги раздели на две - едното да ти смята цената на наема при 25% отстъпка и отделно конструкция за случаите когато парите не/стигат. 

Пускам ти моя код, ако ти върши работа: ЦЪК

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