Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Через список удобнее, чем через IfEx (на мой взгляд). Но я не понял зачем там SetVar "[Numer]" "![Numer]+" т.е. почему "плюс", а не "минус" или "разделить"?
Что касается скобок, то достаточно проверять их "парность", а как это конкретно сделать возможны варианты, но сделать можно.
Quote (Marat)
а если ставить разные знаки то опять несрастуха
Нет там никакой несрастухи: даже из примера мишема видно что нужно делать.
Quote (Marat)
посмотрел штатный пример ,там те же проблемы.
Штатные примеры всего-лишь примеры, а не готовые "от и до" программы. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
это я код кнопки + показал. Соответственно в других свой знак.
Quote (Peter)
то достаточно проверять их "парность",
я ж пример тоже привел. Или вы выборочно читаете?
Добавлено (13 Декабря 2012, 18:16) ---------------------------------------------
Quote (DEMBEL)
это тебе не в тапки ссать.
что то новенькое.
Добавлено (13 Декабря 2012, 18:19) ---------------------------------------------
Quote (Peter)
Что касается скобок,
Скобки я имею ввиду если поставить просто скобки () то будет ошибка. Соответственно закрывать скобку нельзя до тех пор пока в них не будет правильной формулы, например (1+1). (1+1,) уже не правильно. Не хочешь читать хелп?
Marat, здесь не так просто как кажется на первый взгляд. Выше накидал тебе примеров. Разбирайся. Но там еще много дорабатывать. Так что на примерах можешь продолжить. Файл в прикреплении.
В этой переменной находяться все те цифры и знаки которые вводяться. В НБ есть отладчик, в нем есть вкладка "Переменные". Вверху есть кнопка Остановить \Возобновить. Нажми ее, и пошагоо просматривай что и как. Не хочешь читать хелп?
Да и вообще код чего-то не для моих мозгов - сначала мы зачем-то находим и удаляем скобку открытия, потом ищем скобку закрытия, но её мы не удаляем....
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Да, только я никак не могу понять - зачем удалять скобку?
(1+1)*(1+1)/(1+1 ищем. символ 1 Удаляем 1+1)*(1+1)/(1+1
Дальше смотрим закрыта скобка? Результат не 0, значит цикл пошел дальше, результат 6, так как первую скобку мы удалили. Если ее не удалить, будет замкнутый цикл. Удаляем скобку под №6. 1+1)/(1+1 Автоматом удаляется первая закрытая скобка. Дальше уже понятно надеюсь.
Quote (Peter)
Да и вообще код чего-то не для моих мозгов
Устал наверно после трудовых будней.
Quote (Peter)
потом ищем скобку закрытия, но её мы не удаляем....
Если мы не нашли скобки закрытия, то ее можно ставить. Если нашли, то соответственно и ставить нечего.
Не люблю писать лишние команды если они не к чему. Чем мне не нравится штатный поиск символов, это то что нельзя указать номер символа с которого нужно искать. Отсюда приходится во временной переменной вытворять такие действия. Найти, удалить, что бы продолжить поиск такого же символа. В таких случаях я пользуюсь плагином hpwControl, там можно указать номер символа с которого нужно начать поиск, но здесь не стал этим заморачиваться.
Да, предвидя вопрос, забыл, а вернее не сделал удаление уже не нужных переменных. Не хочешь читать хелп?
У меня мозги сейчас совершенно другими вещами заняты: плитку выкладываю в ванной. Надеюсь (хотя, надежда умирает последней) и свято верю , что больше меня заливать не будут. По крайней мере в этом году!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я понял свою ошибку. Ведь может же быть и такая формула (((1+1)+2*2)+4-4*8) Этого я не учел. Я ж написал что мне надоело и бросил. Пусть помоложе ерундой страдают. Завтра кто нибудь систему решит написать, сиди тут за них изощряйся.
Какой год ты ее кладешь? или это традиция? Каждый год 31 декабря.... Кто то в баню, кто то плитку..?
Если проверять [Numer] не выходит, не срабатывает команда. Я написал так:
IfEx "[Mz]=/ OR [Mz]=+ OR [Mz]=- OR [Mz]=* OR [Mz]=," Return Else SetVar "[Numer]" "![Numer]/" SetVar "[Mz]" "/" EndIf
Для кнопки: If "[Numer1]" "=" "0" SetVar "[Numer1]" "" EndIf
SetVar "[Numer]" "![Numer]1" SetVar "[Mz]" ""
Добавлено (13 Декабря 2012, 22:37) --------------------------------------------- Еще скажите если одна переменная с одинаковым значением объявлена 2-3раза подряд, Это как то влияет и на что ?
Дембель конечно прав насчет логики , но мы ведь не создаем калькулятор программиста или инженерный калькулятор. Просто пытаемся написать элементарные мат. функции. Ради интереса да и тренировки тоже. Как и писал в 1 посте " Важен сам процесс и результат "
Добавлено (13 Декабря 2012, 22:48) --------------------------------------------- Если исходить из подобной формулы (((1+1)+2*2)+4-4*8) , тогда для скобок лучше вообще ничего не выдумывать , пусть жмут сколько надо. На край калькулятор выдаст Eror
Ведь может же быть и такая формула (((1+1)+2*2)+4-4*8)
Нда... уже не калькулятор получается а какой то решабельник уравнений. Скоро так и до такой формулы дойдем:
И по моему необок с подобной формулой захлебнется, не в плане просчета, а в плане проверки на корректность написания!!!!
А не правильней ли будит остановиться на версии калькулятора, аля "Обычный" Виндовый... Где одна математическая операция производится за раз!!! типа: 2+2= , 4*3= , 12-1= и т.д. а не решать всю линейку за раз (2+2)*3-1=
Quote (Peter)
Да и вообще код чего-то не для моих мозгов
Мои тоже в плавку идут.... решение одной проблемы, открывает следующую и т.д.
Добавлено (14 Декабря 2012, 09:06) ---------------------------------------------
Quote (mishem)
В том то и смысл построения кода, что бы суметь предвидеть все Eror.
Так то оно так... но в данном случае я бы сделал проще. Если формула не подлежит просчету, то выводил бы сообщение о том что "Формула написана некорректно" и пускай тот кто ее вводил сам ищет, что где накасячил...
А касательно скобок, мне кажется не стоит их удалять... Лучше просто поставить проверку на закрытие... Если было открыто 3 скобки то должно быть и закрыто 3 скобки...
Сообщение отредактировано anton - Пт, 14 Декабря 2012, 09:14
А касательно скобок, мне кажется не стоит их удалять...
Они не удаляются. Удаляются во временной переменной, для проверки. Просто в моем примере не до конца эта проверка организована. тоесть такие скобки (1+1)*(1+1) проверит правилно, такие ((1+1)*(1+1)) уже нет.
Quote (anton)
Если формула не подлежит просчету, то выводил бы сообщение о том что "Формула написана некорректно" и пускай тот кто ее вводил сам ищет, что где накасячил...
ИМХО с такими соображениями нехрена вообще что то писать. Таких программ пруд пруди. Вернее интернет.
Лучше вообще. КАЛЬКУЛЯТОР. Открыл программу, там написано "Возьмите ручку и листок и решайте как вам заблагорассудится" Не хочешь читать хелп?
и то правда, в виндовом калькуляторе вообще скобок нет, забейте
а если хотите прокипятить мозги, то лучше сделайте статистический калькулятор, а то какой-то ерундой занялись. выберите опцию Статистика (alt+4) в калькуляторе чтоб посмотреть, но только не такой простой. Помню был у меня давно большой такой карманный калькулятор texet, в универе на матане статистику считал на нем, только я его потерял. Там дофига функций и формул было, реально нужен был бы. А в продаже чето не вижу щас вообще калькуляторов в принципе... Как задавать вопросы
А не правильней ли будит остановиться на версии калькулятора, аля "Обычный" Виндовый...
Там в аля обычном, есть Вид>Инженерный
Добавлено (14 Декабря 2012, 09:54) --------------------------------------------- Кстати в виндоувском со скобками все проще сделано. При нажатии " ( "прибавляется в переменную +1, при нажатии " ) ", -1.
Есть, но и он работает по принципу 2+2= , 4*3= , 12-1= а не (2+2)*3-1= Действие из 2х переменных и их просчет, просто значение 1 переменной со временем усложняется до формулы. И в нем если кто-то не дописал скобку то человек увидит в решении 0...
Quote (DEMBEL)
то лучше сделайте статистический калькулятор, а то какой-то ерундой занялись.
Потдерживю!!!
Добавлено (14 Декабря 2012, 12:00) ---------------------------------------------
Quote (mishem)
ИМХО с такими соображениями нехрена вообще что то писать.
То есть ты полагаешь, что можно написать код который исправит все ошибки за пользователя!!! Интересно и какова же логика исправлений будит допустим у такой формулы: 2-)*24-15)*(23/2\54+(25-1)= Ее надо исправить так: 2-(24-15)*23/2/54+(25-1)= Или так: 2*(24-15)*(23/2/54+(25-1))= Или так: 2-24-15*(23/2/54)+(25-1)= Или так: Хрен его еще знает как.... Я конечно не говорю что пользователь в одной формуле так накасячит, но и это возможно... Просто учесть та надо все....
"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
Сообщение отредактировано anton - Пт, 14 Декабря 2012, 15:52