Loading...

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

ev_iv avatar ev_iv 0 Точки

Задача Yard Greening

Здравейте, колеги!

Не мога да се справя със следната задача:

9. Озеленяване на дворове
Божидара разполага с няколко къщи на Черноморието и желае да озелени дворовете на някои от тях, като
по този начин създаде уютна обстановка и комфорт на гостите си, като за целта е наела фирма.
Напишете програма, която изчислява необходимите средства, които Божидара ще трябва да заплати на
фирмата изпълнител на проекта. Цената на един кв. м. е 7.61лв със ДДС. Тъй като нейният двор е доста
голям, фирмата изпълнител предлага 18% отстъпка от крайната цена.
Вход
От конзолата се прочита само един ред:
1. Кв. метри, които ще бъдат озеленени – реално число в интервала [0.00… 10000.00]
Изход
На конзолата се отпечатват два реда:
 "The final price is: {крайна цена на услугата} lv."
 "The discount is: {отстъпка} lv."
И двете суми трябва да бъдат форматирани до втората цифра след десетичния знак.
Примерен вход и изход
Вход Изход Обяснения
540 The final price is: 3369.71 lv.
The discount is: 739.69 lv.

Пресмятаме цената за озеленяване на целия двор:
540 * 7.61 = 4109.40 лв.
Приспадаме отстъпката от общата сума:
0.18 * 4109.40 = 739.69 лв.
Калкулираме крайната цена на услугата:
4109.40 – 739.69  3369.71 лв.

Вход Изход
135 The final price is: 842.43 lv.
The discount is: 184.92 lv.
 

Рещила съм я по следния начин, но не мога да стигна до края:

import java.util.Scanner;

public class YardGreening {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double yards = Double.parseDouble(scanner.nextLine());

        double price = yards * 7.61;
        double discount = price * 0.18;
        double sum = price - discount;
        System.out.printf("The final price is: %.2f lv.", sum);
        System.out.printf("The discount is: %.2f lv.", sum);
    }
}

0
Programming Basics with Java
skenderskiantonio avatar skenderskiantonio 36 Точки

 Трябва да смениш последните два реда:

System.out.printf("The final price is: %.2f lv.\n", sum);
System.out.printf("The discount is: %.2f lv.", discount);

System.out.printf не пише на нов ред, а на сегашния. \n се използва, за да се мине на нов ред.

А на последния ред трябва да е discount, а не sum.

Може да видиш какъв е проблема със Zero test-овете, като натиснеш на Details на решението си.

0
venelin4eto avatar venelin4eto 5 Точки

И аз имам проблем на тази задача. В IntelliJ върви, а като я кача в judge не ми минава последните три теста. На Details пише, че има Runtime error. Пренаписах програмата по няколко различни начина и все там ми се чупи. Някой да има идея как да я оправя?

0
venelin4eto avatar venelin4eto 5 Точки

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int meters = Integer.parseInt(scan.nextLine());
        double wholeYard = meters * 7.61;
        double discount = wholeYard * 0.18;
        double finalPrice = wholeYard - discount;

        System.out.printf("The final price is: %.2f lv.%n", finalPrice);
        System.out.printf("The discount is: %.2f lv.", discount);
    }
}

0
skenderskiantonio avatar skenderskiantonio 36 Точки

meters трябва да е double, а не int. В условието пише, че ще получиш реално, а не цяло число.

double meters = Double.parseDouble(scan.nextLine());

0
venelin4eto avatar venelin4eto 5 Точки

О, боже, да.... Стана !!

Благодаря ти за помощта! Щях да си блъскам главата до вечерта иначе :D

0
Filip.Peev avatar Filip.Peev 2 Точки

Смени метрите да не са Int и пробвай. :)

https://softuni.bg/forum/27658/08-yard-greening-runtime-error#comment-71719

0
GeryKMS avatar GeryKMS 1 Точки
замени типа на входната променлива
double meters = Double.parseDouble (scan.nextLine());
0
lnikolaeva avatar lnikolaeva 15 Точки

Здравей Венелинче,

Промени метрите от int в double. 

Ето кода за улеснение: https://pastebin.com/AGCuhBB2 (минава 100/100).

Успех!

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