Професионална програма
Loading...
+ Нов въпрос
svephoto avatar svephoto 821 Точки

Здравей, elly22chan,

 

Предлагам ти да опиташ следните неща:

- изнеси прочитането на продукта преди да влезеш в цикъла;

- while product != "Stop":

- махаш от цикъла проверката if product == "Stop" и принтирането в нея, и я изнасяш най-отдолу след излизането от цикъла;

- брояча го инкрементираш преди проверката за това дали си на третия продукт, като самата нея я променяш така

if product_counter % 3 == 0:

и я слагаш веднага след него, и чак след това слагаш проверката дали цената е по-голяма от остатъка от парите;

- слагаш ново прочитане на продукт;

Това са стъпките. Ако имаш още затруднения, пиши пак и ще помагаме отново.

 

Успех!

1
21/07/2021 18:08:14
elly22chan avatar elly22chan 1 Точки

Пробвах и така -> https://pastebin.com/PQEvH7MQ.

 

Всички решения, които пробвам, гърмят в Judge на втория zero test с тази грешка:

Traceback (most recent call last):
  File "C:\Windows\TEMP\ExecutionStrategies\qfok4sqq.xth\tmp1468.tmp", line 17, in <module>
    command = input()
EOFError: EOF when reading a line

В pycharm всичко работи, но в Judge, ако в продукта има шпация, гърми. В случая на грешката е "Thermal Underwear"...

Пробвах всякакви вариации на решение.

0
svephoto avatar svephoto 821 Точки

Ето моя вариант за решение, по него ти бях описал насоките в предния пост: 
https://pastebin.com/evXb8MZS.

0
22/07/2021 13:15:36
rbekyarov avatar rbekyarov 3 Точки

ако решение на Java ти върши работа, заповядай 

import java.util.Scanner;

public class p04{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);


        double budget = Double.parseDouble(scanner.nextLine());
        int itemCount = 0;
        double itemTotalPrice = 0;

        String command = scanner.nextLine();
        while (!command.equals("Stop")) {
            double itemPrice = Double.parseDouble(scanner.nextLine());
            itemCount = itemCount + 1;
            if (itemCount % 3 == 0) {
                itemTotalPrice = itemTotalPrice + itemPrice / 2;
            } else {
                itemTotalPrice = itemTotalPrice + itemPrice;
            }

            if (itemTotalPrice > budget) {
                break;
            }command = scanner.nextLine();
        }


        if (itemTotalPrice > budget) {
            System.out.println("You don't have enough money!");
            System.out.printf("You need %.2f leva!", itemTotalPrice - budget);
        } else {
            System.out.printf("You bought %d products for %.2f leva.", itemCount, itemTotalPrice);
        }

    }
}

 

0
elly22chan avatar elly22chan 1 Точки

Пробвах така -> https://pastebin.com/PQEvH7MQ.

 

Всички решения, които пробвам, гърмят в Judge на втория zero test с тази грешка:

Traceback (most recent call last):
  File "C:\Windows\TEMP\ExecutionStrategies\qfok4sqq.xth\tmp1468.tmp", line 17, in <module>
    command = input()
EOFError: EOF when reading a line

В pycharm всичко работи, но в Judge, ако в продукта има шпация, гърми. В случая на грешката е "Thermal Underwear"...

Пробвах всякакви вариации на решение.

0
Axiomatik avatar Axiomatik 1354 Точки

100 % solution by MartinBG for Python (https://softuni.bg/forum/30521/exam-02-03-may-2019-zadacha-tourist-shop)

 

budget = float(input())

counter = 0
bill = 0

while True:
    product = input()
    if product == "Stop":
        print(f"You bought {counter} products for {bill:.2f} leva.")
        break

    item_price = float(input())

    if (counter + 1) % 3 == 0:
        item_price *= 0.5

    if item_price + bill > budget:
        diff = item_price + bill - budget
        print("You don't have enough money!")
        print(f"You need {diff:.2f} leva!")
        break

    counter += 1
    bill += item_price

  

0
svephoto avatar svephoto 821 Точки

Ето моя вариант за решение, по него ти бях описал насоките в предния пост: https://pastebin.com/evXb8MZS.

0