|
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 236
|
||||||
Вычислить значение арифметического выражения, введённого в виде строки.19.07.2018, 20:16. Показов 11139. Ответов 9
Метки нет (Все метки)
Нужно вернуть значения арифметического выражения введённого в виде строки.
Объясните, пожалуйста, 1. Почему при вводе в x1 и x2 cодержится null и как это исправить? 2. Как записать паттерн для арифметического выражения (+,-,*,/)?
0
|
||||||
| 19.07.2018, 20:16 | |
|
Ответы с готовыми решениями:
9
Вычислить значение арифметического выражения, заданного в виде строки Вычисление арифметического выражения, введённого в виде символьной строки Калькулятор: вычисление арифметического выражения, введённого в виде символьной строки |
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
||||||||||
| 19.07.2018, 20:58 | ||||||||||
|
Правильно будет так /^\d{1,5}$/
/[\+]/
Только вот я не могу понять что ты хочешь сделать ты получаешь доступ к значению inp, тем более ты фильтруешь его только на цифры от одного до пяти где нет никаких знаков. После ты создаешь переменную куда указываешь один из вариантов либо + либо - либо * либо /, Потом ты используешь конструкции где op сравниваешь с +. Так вот откуда у тебя этот + взялся???? Если ты хочешь там видеть + | - | * | / то создаешь в html select либо же инпут и используешь шаблон которую я тебе показал. var patternop = /^(([\+])|([\-])|([\*])|([\/])){1}$/; И только потом ты используешь конструкции и желательно switch(). У тебя скрипт не понятный, определись что ты вообще хочешь сделать
1
|
||||||||||
|
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 236
|
||||||||
| 19.07.2018, 22:35 [ТС] | ||||||||
|
Объясните, пожалуйста подробнее что вы имели ввиду
программу переписал подробнее, но всё равно не ясно почему в иксах null
0
|
||||||||
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
|||
| 19.07.2018, 22:48 | |||
|
{} - квантификатор доступа, определяет количество повторений, это очень удобно когда нужно указывать точное совпадение, нежели чем + ? *
1
|
|||
|
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 236
|
|||||
| 19.07.2018, 23:00 [ТС] | |||||
|
0
|
|||||
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
||||||||||||
| 19.07.2018, 23:35 | ||||||||||||
Сообщение было отмечено Ivanjs как решение
РешениеДаже если так то неправильно, посмотри внимательно. У тебя есть вот регулярка \d\+ но давай измени \d{1,5}[\+]{1} который говорит что там должен быть обязательно число а также символ + 2.Ты получаешь к нему доступ к примеру мы написали там 10+ ты получил 10+ через .value Потом в конструкции по шаблоны где один выбор +|-|/|* ты его сравниваешь с 10+ это получается + == 10+ и тебе выдадут null Ты не правильно устроил логику, либо же не правильно построил задачу. Добавлено через 25 минут Ivanjs, Вот держи.
1
|
||||||||||||
|
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 236
|
||||||
| 20.07.2018, 09:08 [ТС] | ||||||
|
Спасибо.
Немного упростил программу. Теперь достаточно ввести одну цифру и знак операции. В x1 теперь значение, но результат сложения x1+x1 null. Наверное не в регулярке проблема.
0
|
||||||
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
||
| 20.07.2018, 09:19 | ||
|
Я же тебе уже третий раз говорю. 1.Ты получаешь доступ к inp , куда ставляешь шаблон только цифры. 2.ты создаешь переменную op и присваиваешь ей шаблон , но ты это присваиваешь пустой переменной. 3.Самое интересное ты хочешь ее сравнить с '+' откуда ты берешь +??? Даже если у тебя будет такой шаблон \d[\+]{1} то op == '+' ничего не даст , потому что op берется из воздуха. Ты не правильно мыслишь в этой положении, я тебе дал рабочий скрипт, твоя задача разобрать ее как следует.
1
|
||
|
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 236
|
|||||||
| 20.07.2018, 10:11 [ТС] | |||||||
|
в x1 значение 1, но 1. Это строчное значение, т.к. результат alert(x1+x1) -> 11 => нужно использовать другой способ перевода из строки в число 2. Не реагирует на if(patternon=='+') => нужно изменить паттерн Готово
0
|
|||||||
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
||
| 20.07.2018, 11:02 | ||
|
Ты получаешь доступ к inp, где проверяешь его по шаблону \d{1,3}\+{1} к примеру сюда подойдет 10+ Потом ты создаешь переменную op, и присваиваешь туда шаблон, темболее неправильно написанный шаблон, этот шаблон ты берешь с воздуха. и в конце ты пытаешься сравнить op == '+' не получится это эквиваленто 10+ == '+' даже если ты будешь использовать indexOf() сравнить ты не сможешь, потому что не правильно построена схема задачи. Простыми словами это тупость. потому что чтобы получить доступ + / * - нужно его где то определить и только тогда присвоить шаблон и сравнивать. Для преоброзования используется Number то есть строки в целый тип. Тем более в alert чтобы сложить используется внутренняя скобка alert((x1 + x2)).
0
|
||
| 20.07.2018, 11:02 | |
|
Помогаю со студенческими работами здесь
10
Найти значение арифметического выражения, заданного в виде строки
Рекурсия: вычислить значение логического выражения, заданного в виде строки
Вывести результат вычисления арифметического выражения, представленного в виде строки. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|