Софтуерно Инженерство
Loading...
+ Нов въпрос
mobretenova avatar mobretenova 1 Точки

Помощ със задача Информация за скоростта - Programming basics with Java 10.2017

Здравейте,

Моля, помогнете ми със задача 12 https://softuni.bg/trainings/resources/officedocument/18832/exercise-problem-descriptions-programming-basics-with-java-october-2017

Кодът работи до определено място - до скорост 120. При по-високи стойности изписва в конзолата:

130
Exception in thread "main" java.util.InputMismatchException: Value out of range. Value:"130" Radix:10
 at java.util.Scanner.nextByte(Scanner.java:1887)
 at java.util.Scanner.nextByte(Scanner.java:1840)
 at SpeedInfo.main(SpeedInfo.java:6)

Process finished with exit code 1

 

Това е кодът ми:

import java.util.Scanner;

public class SpeedInfo {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        double speed = console.nextByte();

        if (speed <= 10) System.out.println("slow");
           else if (speed <= 50) System.out.println("average");
           else if (speed <= 150) System.out.println("fast");
           else if (speed <= 1000) System.out.println("ultra fast");
           else System.out.println("extremely fast");
                } }

 

 

koksibg avatar koksibg 878 Точки
Трябва да стане така:
double speed = console.nextDouble();
Надхвърляш стойността на Byte (от -128 до 127) и затова ти дава грешка.











 
0
VasilValchanov avatar VasilValchanov 558 Точки

double speed = console.nextDouble();

Трябва да парсваш double

1
mobretenova avatar mobretenova 1 Точки

Благодаря ви!

Пропуски от недоглеждане

0
mobretenova avatar mobretenova 1 Точки

Ще помогнете ли с още една - 13. Лица на фигури.

https://softuni.bg/trainings/resources/officedocument/18832/exercise-problem-descriptions-programming-basics-with-java-october-2017

Работи в конзолата, но Judge я оценява 50/100.

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

Въпреки че са едни и същи, ако въведа една стойност, конзолата очаква въвеждане на още една, макар и същата.

Може би е, защото за стойностите съм задала две променливи double, но не се сещам как мога да го направя по друг начин:

import java.util.Scanner;

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

        String figure = console.nextLine();
        double value = Double.parseDouble(console.nextLine());
        double value2 = Double.parseDouble(console.nextLine());

        double squareS = Math.pow(value, 2);
        double rectangleS = value * value2;
        double triangleS = value * value2/2;
        double circleS = Math.PI * Math.pow(value, 2);

        if (figure.equals ("square")) System.out.printf("%.3f", squareS);
        if (figure.equals ("rectangle")) System.out.printf("%.3f", rectangleS);
        if (figure.equals ("triangle")) System.out.printf("%.3f", triangleS);
        if (figure.equals ("circle")) System.out.printf("%.3f", circleS);
    }
}
0
VasilValchanov avatar VasilValchanov 558 Точки

Инициализирай value2 в проверките кадето ще ти трябва

0