Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 11

Написать программу для подсчета значения введенного с консоли

25.08.2016, 20:17. Показов 2624. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
"С помощью консоли пользователь вводит
математическое выражение типа “1+33-4*7”. Написать
программу для подсчета его значения. Приоритет
операций не учитывается"

Как решить? Без понятия с помощью чего превратить введенный пример из строки в инты и прописать рассчет, если конечно я в том направлении думаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2016, 20:17
Ответы с готовыми решениями:

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

Хочу написать программу для подсчета площади прямоугольника, на строке S = count(S, a, b); выдает ошибку переменная S возможно не инициализирована.
Помогите начинающему програмисту, пожалуйста. Хочу написать программу для подсчета площади прямоугольника, на строке S = count(S, a, b);...

Написать программу для подсчета количества листьев в дереве, значения которых лежат в определенном диапазоне
Написать программу для подсчета количества листьев в дереве, значения которых лежат в определенном диапазоне.

5
5 / 5 / 2
Регистрация: 03.12.2013
Сообщений: 50
25.08.2016, 20:49
Почитай умные книжки по Java, за тебя тут программу писать не будут. А так, если понимаешь, то разбивай строку на лексемы и парси отдельно.
0
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
25.08.2016, 20:51
RAMZES241, первое что пришло в голову. Может и плохой вариант. Считывать строку до появления знака математической операции. Отрезать от строки считанный кусок и отправлять в массив интов. Затем считать знак и отправить его в массив стрингов, "отрезать" его от строки. И так продолжать до тех пор, пока длина исходной строки не станет равна 0.
Затем из массива стрингов берешь первый элемент и сравниваешь со знаками мат. операций. На основании сравнения вызываешь метод +,-,/,* для первых двух элементов массива интов. И далее все повторяешь.
Ответы можно либо в новый массив писать, либо удалять из старого массива элементы которые складывал/делил/вычитал/умножал и записывать вместо них ответ.
1
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 11
25.08.2016, 21:10  [ТС]
Спасибо, попробую.

Добавлено через 1 минуту
Никто и не просит кидать готовый код, ответ striker24 меня вполне устроил. А так-то я не понимаю что ты написал, потому что только начал изучать джаву.
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
26.08.2016, 01:04
RAMZES241, можете за основу взять что-нибудь вот такого типа:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class ComputeString {
    public static void main(String[] args) {
        StringTokenizer tokenizer = new StringTokenizer(new Scanner(System.in).nextLine(), "+-*/", true);
        ArrayList<Integer> numbers = new ArrayList<>();
        ArrayList<String> action = new ArrayList<>();
        while (tokenizer.hasMoreElements()) {
            String temp = tokenizer.nextToken();
            try {
                numbers.add(Integer.parseInt(temp));
            }
            catch (NumberFormatException ex) {
                action.add(temp);
            }
        }
        System.out.print(compute(numbers, action));
    }
 
    public static double compute(ArrayList<Integer> num, ArrayList<String> act) {
        double result = num.get(0);
        for (int i = 0; i < num.size() - 1; i++) {
            if (act.get(i).equals("+")) {
                result += num.get(i + 1);
            }
            if (act.get(i).equals("-")) {
                result -= num.get(i + 1);
            }
            if (act.get(i).equals("*")) {
                result *= num.get(i + 1);
            }
            if (act.get(i).equals("/")) {
                result /= num.get(i + 1);
            }
        }
        return result;
    }
}
Java
1
2
3
пример работы (приоритет действий не учитывается):
125*2-50/2+20/3
40.0
Ну и уже развивать творчески, так сказать.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
26.08.2016, 08:17
Java
1
2
3
 ScriptEngineManager factory = new ScriptEngineManager();
            ScriptEngine engine = factory.getEngineByName("JavaScript");
            System.out.println(engine.eval("2+2*2"));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2016, 08:17
Помогаю со студенческими работами здесь

Написать программу, которая ждет ввода буквы и, в зависимости от введенного значения, сообщает, является ли бу
Написать программу, которая ждет ввода буквы и, в зависимости от введенного значения, сообщает, является ли буква заглавной или строчной.

Составить блок-схему и написать программу, выводящую квадрат чисел от введенного пользователем значения до 1.
2. Даны натуральные числа n и m, целые числа а1,..,, аm и b1,...,bn. Среди а1 ,..., аm нет повторяющихся чисел, нет их и среди b1,......

Написать программу замены введенного числа от 0 до 5 соответствующим символом, а все другие значения заменять буквой z
Написать программу замены введенного числа от 0 до 5 соответствующим символом, а все другие значения заменять буквой z. ИСПОЛЬЗУЯ ОПЕРАТОР...

Написать программу для подсчета суммы
Для заданного натурального n и действительного х подсчитать слейдующюю сумму: S=cos1-cos2+cos3-…+ 〖(-1)〗^(n+1)cos n

Написать программу для подсчета слов
В тесте приводятся пример программы main_example.cpp для подсчета слов из текстового файла book1.txt. 1)Подсчитать сколько раз в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru