Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сделать точку и стрелку в калькуляторе (http://www.flasher.ru/forum/showthread.php?t=204693)

Flash_AS3 09.11.2013 02:38

Сделать точку и стрелку в калькуляторе
 
Сломал голову уже кто-нибудь знает как сделать точку или стрелку в калькуляторе

Akopalipsis 09.11.2013 02:59

Какую точку или стрелку?

Flash_AS3 09.11.2013 03:03

точку которая отделяет целую и дробную часть и стрелка которая убирает последнюю цифру числа

ZackMercury 09.11.2013 04:36

А в чем проблема-то?

Flash_AS3 09.11.2013 04:48

А проблема в том что нет идей для реализации задачи

Tails 09.11.2013 05:26

Классический калькулятор на уроках программирования, делается на основе работы со строкой. Для начала, вам следует открыть соответствующий раздел в справке. Прочитать и ознакомиться, какие есть методы работы с этим базовым типом данных.

expl 09.11.2013 13:54

Цитата:

А проблема в том что нет идей для реализации задачи
Когда набираете цифру - добаляете к строке цифру
Когда точку - добавляете к строке точку (только не добавляете, если она уже есть в строке)
Вот и всё.
Пример на haXe (язык похож на as3): https://github.com/cser/temperate/tr...tyleCalculator
Скомпилированный

Flash_AS3 10.11.2013 02:28

Код AS3:

okno.text = okno.text.substr(0, okno.text.length - 1);
                                        if (okno.text == "")
                                        {
                                                okno.text = "0";
                                        }

вот стрелка но только криво работает может кто подскажет

Akopalipsis 10.11.2013 03:46

А зачем Вам последний символ в строке удалять? Его же клавиатурой удаляют.

Flash_AS3 10.11.2013 04:47

нет у меня за это отвечает отдельная кнопка со стрелкой в обычном калькуляторе даже в винде тоже так

Psycho Tiger 10.11.2013 11:07

Попробуйте работать с числами, а не с строками.
Например, введено число 11 и человек тыкнул 5, должно стать 115. Умножаем прошлое число на 10 и добавляем новое число.
Чтобы удалить - делим на 10 и округляем. С округлением при удалении чисел из дробной части - небольшой трюк при округлении: уверен, вы решите проблему сами.

alexcon314 10.11.2013 12:02

Flash_AS3, когда пишете сообщение на форум, будьте добры соблюдать правила пунктуации: используйте запятые и точки, как это принято в правилах русского языка.

expl 10.11.2013 13:36

Код AS3:

var text:String = okno.text;
if (text.length > 0)
{
    text = text.substr(0, text.length - 1);
}
if (text.length = 0)
{
    text = "0";
}
okno.text = text;

Может так понадёжнее будет?

Flash_AS3 10.11.2013 20:36

Цитата:

Сообщение от alexcon314 (Сообщение 1151867)
Flash_AS3, когда пишете сообщение на форум, будьте добры соблюдать правила пунктуации: используйте запятые и точки, как это принято в правилах русского языка.

Хорошо. Буду уделять этому большое внимание.

Добавлено через 5 минут
Цитата:

Сообщение от expl (Сообщение 1151870)
Код AS3:

var text:String = okno.text;
if (text.length > 0)
{
    text = text.substr(0, text.length - 1);
}
if (text.length = 0)
{
    text = "0";
}
okno.text = text;

Может так понадёжнее будет?

Да, так конечно работает, спасибо, но не так как нужно, все-таки наверное необходимо будет работать с числами, так как калькулятор не запоминает это новое число, а при нажатии на операцию(+,-,*,/) добавляет его.

Добавлено через 4 часа 0 минут
Со стрелкой разобрался, осталось сделать кнопку точки(для отделения дробной и целой части).

Akopalipsis 11.11.2013 00:56

А что у Вас не получается? Однажды я тоже делал нечто похожее на калькулятор и у меня было вот как -
ввел число "326.4" и ведь чтобы чтото с этим числом сделать, нужно ввести оператор "+-*/" и по этому, когда вводился оператор, первым делом я проверял, что было нажато ДО. Если оказывалось, что там была цифра, то она переводилась в число и помещалось в массив. А потом, когда после оператора вводишь цифру, то проверяешь так же, что было ДО. Если оператор, то тоже его в массив. Но я делал по польской записи и решал в реальном времени, но Вы тоже так можете сделать. Сделать проверку, что было ДО, просто ведь можно сто раз цифры поменять и операторы, но нужно же только то, что будет в конце, а это как раз проверкой на ДО решается.


Часовой пояс GMT +4, время: 10:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.