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

Задача с математическими выражениями

15.08.2024, 14:42. Показов 876. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите в каком направлении двигаться для решения задачи? Подскажите пожалуйста статьи по данной задаче.

Вводим с клавиатуры математическое выражение в строке: 3+8+10+11 при помощи scanner.
Необходимо вывести результат данного выражения.

Понимаю нужно задачу решить с помощью индекса символа по длине строки и с помощью ParseInt (преобразование строки в целое число).

Есть в строке число: 381011 его преобразовать в Int не проблема. А вот как сделать с использованием оператора "+"?

Механизм исключений для отлавливания, например try catch.

Возможно использовать IndexOf.

Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2024, 14:42
Ответы с готовыми решениями:

Задача с регулярными выражениями
Дан текст, который нужно разбить на предложения с помощью регулярного выражения. Я использую такой шаблон - "\\S.+?". Проблема...

Задача с регулярными выражениями
Доброго времени суток, господа Задача: Разработать приложение, вычисляющее арифметическое выражение с операциями +, -, *, /, записанное в...

Задача на java с условными выражениями
Траектория снаряда, выпущенного из катапульты, описывается квадратным уравнением. Решив квадратное уравнение, можно найти точку, где упал...

7
 Аватар для Azathtot
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
15.08.2024, 17:28
Цитата Сообщение от Azamatomus Посмотреть сообщение
Подскажите в каком направлении двигаться для решения задачи?
в построении бинарного дерева, узлами которого будут операции, а листьями - занчения, а потом обход его.
1
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
15.08.2024, 18:56
Именно только "+"? Или такие как 15-2*3 тоже надо корректно обрабатывать?
0
0 / 0 / 0
Регистрация: 04.06.2024
Сообщений: 13
16.08.2024, 14:14  [ТС]
Добрый день. Оператор +.
Можно и с другими операторами
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
17.08.2024, 14:21
Цитата Сообщение от Azamatomus Посмотреть сообщение
А вот как сделать с использованием оператора "+"?
1) expression.split("+");
2) Кастишь полученные строки к int;
3) Складываешь;
4) ...;
5) Выводишь полученный результат!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
23.08.2024, 13:25
Приоритет операций учитывается?
0
0 / 0 / 0
Регистрация: 04.06.2024
Сообщений: 13
23.08.2024, 13:42  [ТС]
Здравствуйте. Приоритет не учитывается.
0
231 / 172 / 71
Регистрация: 14.06.2024
Сообщений: 467
23.08.2024, 15:40
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
37
38
39
40
41
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        String exp="3+8-10*9/2";
        System.out.print("Выражение: ");
        exp=in.nextLine();
        in.close();
        List<String> lst=new ArrayList<String>();
        lst.add(exp); 
        String[] sep = new String[] {"-","\\+","/","\\*"};//поубывал бы
        for(String sp:sep)
        {
            int n=lst.size();
            for(int i=0; i<n; i++)
            {
                String[] str=lst.get(0).split(sp);
                for(String s:str)
                    if(s.trim().length()>0)
                        lst.add(s.trim());
                lst.remove(0);
            }
        }
        if(lst.size()>0)
        {
            String opr="";
            for(char ch:exp.toCharArray())
                if("-+/*".indexOf(ch)>=0)
                    opr+=ch;
            
            double res=Double.parseDouble(lst.get(0));
            for(int i=0; i<opr.length(); i++)
            {
                double a=Double.parseDouble(lst.get(i+1));
                if(opr.charAt(i)=='+') res+=a; 
                if(opr.charAt(i)=='-') res-=a;
                if(opr.charAt(i)=='*') res*=a;
                if(opr.charAt(i)=='/') res/=a;
            }
        System.out.printf("Результат=%f\n",res);
        }
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.08.2024, 15:40
Помогаю со студенческими работами здесь

Ввод значений в счетчики с математическими выражениями
ребята, помню что можно было вбить например в поля позиции объекта цифры, прибавив или отняв или умножив имеющееся значение на какое-то...

Задача с математическими функциями
Условие задания: Составьте программу, которая подсчитывает и выводит значение t1 и t2 по формулам, которые приведены в Вашем варианте...

Задача с мат.выражениями
Условия для задачи: 1. Для следующих вариантов задач с клавиатуры вводятся вещественные числа. a. Количество чисел определяется исходя...

Задача с регулярными выражениями
Добрый день, нужно реализовать скрипт с помощью регулярных выражений: С клавиатуры введены две строки. Одна строка - предложение на...

Что общего и в чем отличия между λ-выражениями в исчислении Черча и соответствующими выражениями в Common Lisp?
Что общего и в чем отличия между λ-выражениями в исчислении Черча и соответствующими выражениями в Common Lisp?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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 и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru