https://www.online-java.com/U3XqQmRdNy код находится тут
Задача с калькулятором
При компиляции возникает ошибка
Ваш ответ не прошел тест!
Решение должно содержать метод calc внутри класса Main. Метод должен принимать строку и возвращать строку
Кристина
12 уровень
Помогите пожалуйста решить задачу с калькулятором, что тут может быть не так?
Обсуждается
Комментарии (19)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Матвеев Александр Работает в Сибинтек
14 февраля 2022, 20:27
Сами пробовали запустить код? Что происходит? А что ожидали?
Плюс вопросы:
Метод calc должен принимать строку и возвращать строку.
У вас в классе Main нет метода calc, есть только переменная.
Метод void calculate(int value1, int value2, String operation) принимает три параметра, а судя по условию он должен называться calc и принимать только строку?
В 16 строке есть объект scanner, который никогда не считывает данные с клавиатуры. Как думаете, почему?
0
Кристина
15 февраля 2022, 09:17
Добрый день, да, выводит в несколько строк код, а нужно в одну и чтобы возвращал, не понимаю как это реализовать
0
hidden #598481
15 февраля 2022, 09:32
Как изначально задание-то звучало? строку какого вида должен принимать метод?
0
Кристина
15 февраля 2022, 09:33
Реализуйте класс Main с методом public static String calc(String input). Метод должен принимать строку с арифметическим выражением между двумя числами и возвращать строку с результатом их выполнения. Ты можешь добавлять свои импорты, классы и методы. Добавленные классы не долны иметь модификаторы доступа (public или другие)
такое вот задание
+1
hidden #598481
15 февраля 2022, 09:44
Ну тогда стоит начать с того, что создать класс Main, со следующим содержимым:
И дальше заняться реализацией метода calc.
Сначала тебе нужно будет разделить строку input на составляющие её части, чтобы получить отдельно значения обоих операндов и оператора, а затем в зависимости от оператора провести соответствующую операцию.
В твоём текущем калькуляторе тоже есть непонятные для меня решения. Почему ты сканируешь значения с консоли, если величины параметров заданы при вызове? Почему ифы не объединены в одну цепочку при помощи else if? Из-за этого для любой операции кроме деления будет в конце выводиться надпись "исключение".
Зачем тебе класс с римскими цифрами? 0
Кристина
15 февраля 2022, 09:46
Римские цифры так же нужны по ТЗ
0
Кристина
15 февраля 2022, 09:46
Спасибо
0
Кристина
15 февраля 2022, 10:21
Что бы посоветовали сделать дальше?Я в тупике кажется...
0
Кристина
15 февраля 2022, 10:29
У меня тут новая ошибка Ваш ответ не прошел тест!
Для корректной работы тестирования, запрещено использовать вывод в консоль
Стереть Scanner нужно ?
0
KIRAExpert
15 февраля 2022, 10:29
Учитывая что числа могут быть римскими, после того как разделите строку на составляющие, нужно определить являются ли операнды числами (если римские, то привести к арабским), выполнить операцию и вернуть результат
0
Кристина
15 февраля 2022, 10:43
Подскажите пожалуйста как это можно сделать , так же возникает ошибка при отправлении задания
Ваш ответ не прошел тест!
Для корректной работы тестирования, запрещено использовать вывод в консоль
Что в данном случае можно сделать, стереть Scanner ?
0
KIRAExpert
15 февраля 2022, 10:49
Вывод в консоль это System.out.println()
Scanner тут тоже не нужен
Для того чтобы говорить предметно нужно видеть код
0
Кристина
15 февраля 2022, 10:53
Хорошо, код тут https://www.online-java.com/xcU4f0gNEM
Хотелось бы понять почему данная ошибка возникает и как её убрать, буду вам очень благодарна
0
hidden #598481
15 февраля 2022, 14:02
Убери 10ю строку, ты там выводишь в консоль.
Но ведь твоя проблема не в этом - ты даже не приступала к решению.
Я же тебе обрисовал, что должно быть внутри метода calc:
И дальше заняться реализацией метода calc.
Сначала тебе нужно будет разделить строку input на составляющие её части, чтобы получить отдельно значения обоих операндов и оператора, а затем в зависимости от оператора провести соответствующую операцию.
Сейчас у тебя вместо метода calc заглушка, которая ничего не делает. А должна вычислять результат строки input.
1. Начни с того, что из строки input вида "12+3" ты получишь отдельные элементы, чтобы у тебя были отдельные int x = 12, int y = 3, char operator = '+'.
2. Затем вызовешь метод калькулятора, передашь ему туда параметры, чтобы он вернул результат.
3. Потом добавишь поддержку римских чисел, сначала будешь проверять, является ли запись числа римским числом, и если да, то преобразовывать в арабскую.
0
Кристина
15 февраля 2022, 17:09
Как лучше сделать проверку арабских чисел, через throw?
0
hidden #598481
15 февраля 2022, 17:15
Можно проверять строку на соответствие заданному шаблону через matches
Сначала забудь про римские цифры, добейся, чтобы программа работала только с арабскими цифрами. Решай по одной проблеме за раз, а не все сразу.
0
Кристина
15 февраля 2022, 18:03
Хорошо, возникла ошибка в result теперь, требует нового метода
Подскажите пожалуйста, что не так
import java.util.Scanner;
//решение должно содержать данный класс
class Main {
public void main(String[] args) {
//Решение должно содержать данный метод
int value1 = 0;
int value2 = 0;
String operation = null;
Calculator calc = new Calculator();
calc.calculate(5, 2, "+");
operator operator=new operator();
System.out.println(result(12,3)); !!!!
}
class operator {
int summa(int x, int y, String operator) {
int result = x + y;
return result;
}
class Test{
public static void main (String []args){
}
}
}
public static String calc(String input) {
return null;
}
0
Anonymous #3321727
28 июня 2023, 03:33
Что не так у вас мне трудно сказать, но я решаю ту же задачу, видимо так же для Ката, надеюсь этот код вам поможет)
И не забывайте про тэг code, читать сообщение намного удобней, больше шансов, что вам ответят:
0
Anonymous #3412632
13 апреля, 12:29
Добрый день! Это часть кода программы, в написании калькулятора верно?
0