Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Всем привет , У меня другая загвоздка. Немного подробней, пытаюсь сделать обычный калькулятор( он конечно не нужен , просто важен сам факт создания) Вроде все получилось , ну по крайней мере работает. Остался последний штрих - заставить кнопку равно работать. Дело в том что каждый набор цифр при нажатии на кнопку +, -, и тд "загоняется" в переменную массива [Rezult1][Rezult2]ну итд. Ну и все тупик , что делать дальше ? Как задать мат. решение? ведь никто не знает сколько дейтвий сделает пользователь 1 или 3 или 4. Да и вообще в том , что там сделано все ли правильно ( просто какие то сомнения у меня )
Эти примеры устанавливаются вместе с программой НБ. Посмотри в папке с программой, или в Моих документах. Я не помню где точно, у себя удалил. Не хочешь читать хелп?
Спасибо нашел,будем разбираться ( про эти примеры совсем забыл )
Добавлено (10 Декабря 2012, 23:33) --------------------------------------------- Еще один вопросик, что такое литейный маркер ? В хэлпе об этом ни слова .
If "[Formula]" "=" "0" SetVar "[Formula]" "" EndIf
SetVar "[Formula]" "![Formula]1"
Восклицательный знак и есть литейный маркер. И если честно никак не пойму для чего код.
Это и есть весь калькулятор , (пример НБ)Больше кода нет. Кнопка равно : Math "[Formula]" "[Decimals]" "[Formula]"
Добавлено (11 Декабря 2012, 07:25) --------------------------------------------- Извиняюсь за свою невнимательность, но не литейный а литерный маркер .
! - он используется когда нужно дать знать необук, что выражение стоящее после ! нельзя никак преобразовывать а использовать точно как есть.
Quote (Marat)
SetVar "[Formula]" "![Formula]1"
в данном случае ! говорит, что переменную [Formula] не трогать а просто приписать справа единичку. Напиши код в кнопку, потыкай ее и сравни значения переменных в окне дебаггера: SetVar "[Formula]" "[Formula]+1" SetVar "[Formula2]" "![Formula2]+1"
Добавлено (11 Декабря 2012, 08:06) ---------------------------------------------
Quote (Marat)
Дело в том что каждый набор цифр при нажатии на кнопку +, -, и тд "загоняется" в переменную массива [Rezult1][Rezult2]ну итд. Ну и все тупик , что делать дальше ? Как задать мат. решение? ведь никто не знает сколько дейтвий сделает пользователь 1 или 3 или 4.
именно для этого в калькуляторе (который в демо примерах) формируется строка переменной с помощью знака !, в переменную просто дописываются все что тыкает пользователь, включая цифры и знаки мат.операций. Затем эта переменная с натыканным содержимым - формулой - подставляется в команду Math и готово. Как задавать вопросы
mishem, ну не нашел, перечитал три раза - ни слова
Marat, не надо таких вещей писать. Там только слепой не увидит. Вывод-не читал.
Quote
Предположим, что по тем или иным причинам, требуется, чтобы переменная содержала именно формулу, а не результат вычисления. В этом случае, набор значения переменной следует начинать с восклицательного знака “!”. Например, при помощи следующей команды:
SetVar "[Test]" "1+1"
переменной [Test] будет присвоено значение "2". Программа NeoBook "видит", что "1+1" - это математическое выражение, и попросту производит операцию сложения. Добавив же в запись восклицательный знак, мы даем программе команду игнорировать формулу. Например:
SetVar "[Text]" "!1+1"
Переменной [Test] будет присвоено значение "1+1" (а не число "2"). (Примечание: Собственно символ "!" NeoBook удаляет из записи.) Этим приемом можно пользоваться в тех командах NeoBook, где допускается наличие численных параметров.
Quote (Marat)
литерный маркер
Откуда вообще это словосочетание взято?
В данном случае это выражение здесь не уместно. Литера-буква. Восклицательный знак не подходит под определение буква. Маркер-метка. По этому и интересуюсь откуда взято это выражение? Не хочешь читать хелп?
Вы на оригинальный английский текст посмотрите, и поищите в сети что такое литерал в программировании (информатике). Единственное, в чем я, видимо, ошибся при переводе, так это в том, что надо было перевести как "литеральный", а не "литерный".
Нагнали тут "шторм в рюмке", блин! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
С этим теперь понятно но зачем этот код ? Что он зрачит ясно , но зачем If "[Formula]" "=" "0" SetVar "[Formula]" "" EndIf
Также при запуске объявляется несколько переменных , которые дальше нигде не используются. вопрос зачем?
Добавлено (11 Декабря 2012, 12:18) --------------------------------------------- Я конечно извиняюсь за свои наивные вопросы,просто хочется понять, а не тупо копировать чужой код.
Что он зрачит ясно , но зачем If "[Formula]" "=" "0" SetVar "[Formula]" "" EndIf
Marat, а вы обратили внимание на то, что полный скрипт (например, для клавиши "умножить") выглядит так:
Code
If "[Formula]" "=" "0" SetVar "[Formula]" "" EndIf
SetVar "[Formula]" "![Formula]*"
Quote (Marat)
вопрос зачем?
Затем, чтобы придать калькулятору привычный вид.
А пытать "что и зачем" по штатным примерам лучше разрабов на оффоруме, т.к. они писАли все эти примеры, а не мы. Благо на оффоруме есть теперь русская страничка.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter увы все равно не пойму. Попробовал оставить SetVar "[Formula]" "![Formula]*" работает также, подозреваю , что бы в формуле не оказалось подряд два мат.знака или две запятых. SetVar "[Formula]" "![Formula]*" Peter если не трудно разъясните дураку,ведь пригодится ив дальнейшем.
работает также, подозреваю , что бы в формуле не оказалось подряд два мат.знака или две запятых
А я подозреваю, что просто для того, чтобы в формуле не болтался в самом её начале ноль. Возможно, разрабы таким образом решили сделать напоминание, что математические операции с "нулем" бессмысленны, или что-то в этом роде. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Уважаемый Антуан! Если мне не изменяет память, однажды я уже выносил вам "устное" предупреждение за ваши упражнения в эпистолярном жанре в несоответствующих оному темах этого форума, в отличие от столь любимого вами "луркоморья". Видимо, урок впрок не пошел. На этот раз вы получаете "письменное" предупреждение, которое анулировано "за давностью" не будет! Считаю своим долгом вас предупредить: при ещё одном рецидиве ваши, по всей видимости развитые, боковое зрение, слух, реакция и бдительность, не помогут избежать соответствующих последствий.
Искренне ваш, Peter
//Сообщение отредактировано администратором Peter
"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
Сообщение отредактировано anton - Вт, 11 Декабря 2012, 13:53
Да Peter вы правы с нолем. Мат.знак ставится сколько угодно раз но при подсчете получаем Eror А в калькуляторе Win. например, знак можно поставить один раз.
А в калькуляторе Win. например, знак можно поставить один раз.
Marat, вам ровным счетом ничего не мешает доработать этот необушный калькулятор для достижения аналогичного (и не только) эффекта.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Спасибо, Peter обязательно доработаю . Потом выложу готовый вариант кому интересно гляньте. Немного отклонюсь от темы обращаясь к ветеранам форума, Мог бы кто нибудь сделать урок по работе с массивами навроде урока Сергея про циклы http://neobooker.ru/forum/38-2202-1 Т.к. на эту тему мало инфы на форуме.
Добавлено (12 Декабря 2012, 21:47) --------------------------------------------- Как и обещал выкладываю готовый , но не конечный вариант Калькулятора. В архиве ехе. и pub. варианты.
Добавлено (12 Декабря 2012, 21:57) --------------------------------------------- В прошлом посте не прикрепился архив почему то. Ясно почему , архив 795kb.
Marat, Есть недоработки с дробями. Изначально не вводятся числа 0,n... Вводятся числа со множеством запятых n,n,nn,n Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Точно тебе не подскажу как избавиться от лишнийх символов. Можно попробвыать реализовать через кнопку с горячей клавишей. "." и после первого срабатывания не давать сработать второй раз. Пркрипил быстринький пример. Он конечно не панацея, его надо еще дорабатывать. Но хотябы посмотришь мою логику.
Добавлено (13 Декабря 2012, 11:31) --------------------------------------------- Кстати и с закрытием скобки тоже надо решать. Скобка не может быть закрыта раньше чем ее открыли. Ну а глубже не вникал.
Добавлено (13 Декабря 2012, 11:35) ---------------------------------------------
Quote (mishem)
Код в кнопке с запятой заменить на
хотя, это не верно. Если будет уравнение (0,12)+(0,23) или что то наподобие, то вторая запятая не подставится. Проверку на запятые нужно более расширено делатьКалькулятор не такая простая вещь, как кажется на первый взгляд. Не хочешь читать хелп?
или что то наподобие, то вторая запятая не подставится
Надо поставить дополнительное условие проверки, например, проверять только между знаками мат.действий. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Но я смотрю там везде надо делать проверку. Если вводить +,-0,+*+-21,+/+*+*
Ну, у меня сейчас думать и проверять нету времени, но я бы просто сделал массив запрещенных к повторному вводу символов, поместил его в список,... ну, а дальше все просто...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Попробовал добавить переменную. При старте Объявляться SetVar "[Numer1]" "!0" на кнопках уже соответственно If "[Numer1]" "=" "0" SetVar "[Numer1]" "" EndIf
SetVar "[Numer]" "![Numer]1"
Как вариант. Вот со знаками не додумал, стоит прверка только на повторный ввод. т.е один знак не поставить дважды, а если ставить разные знаки то опять несрастуха . Кстати посмотрел штатный пример ,там те же проблемы.