powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / необычный калькулятор
22 сообщений из 22, страница 1 из 1
необычный калькулятор
    #38140927
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Решил написать калькулятор, который выполняет простые арифмет операции (слож,умн,деление,вычит).

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

Хотелось бы для поля ввода чисел - сделать условие - приоритеты вычислений мы будем указывать с помощью скобок и количество вложенности скобок и количество выполняемых математ операций в одной строке не будет ограничено.
например (5-3)+2=4

проблема как в поле edit1 сделать так, чтобы учитывались приоритеты ?
...
Рейтинг: 0 / 0
необычный калькулятор
    #38140930
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141049
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может не использовать алгоритм ОПЗ, а что нить типа сначала найти в выражении самую вложенную скобку (3-4)+(4-(1*3(1-9))) сначала вычислим 1-9, далее на уровень вверх...использовать какой нибудь цикл например for each..вроде как проще будет же..только как написать это не знаю..не силен в программировании..помогите(
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141054
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхинможет не использовать алгоритм ОПЗ...Почему?
По следующей ссылке и примеры кода есть: Обратная польская запись: примеры реализации .
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141055
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.: кстати ссылка взята из описания алгоритма на ВикипедиИ. Не ленитесь читать!
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141061
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, алгоритм который я предложил мне кажеться он проще..только реализовать его пока не могу(
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141066
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересно, а какой цикл лучше использовать для того чтобы пробегаться по выражению?
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141093
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин, не нравится обратная польская нотация, используйте польскую нотацию .
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141094
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхининтересно, а какой цикл лучше использовать для того чтобы пробегаться по выражению?skyANA Обратная польская запись: примеры реализации .
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141099
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
я вчера с другом обсуждал..по прямую нотациюю..решили что лучше..пробегаться по выражению...циклом..и рекурсией..проблема в самой реализации((
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141104
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин, я Вам ссылку дал, там тоже пробегаются циклом по выражению. Посмотрите.
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141113
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин.решили что лучше..пробегаться по выражению...циклом..и рекурсией..проблема в самой реализации((
рекурсивный спуск примените
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141116
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  private IEnumerable<string> Separate(string input)
        {
            List<string> inputSeparated = new List<string>();
            int pos = 0;
            while (pos < input.Length)
            {
                string s = string.Empty + input[pos];
                if (!standart_operators.Contains(input[pos].ToString()))
                {
                    if (Char.IsDigit(input[pos]))
                        for (int i = pos + 1; i < input.Length &&
                            (Char.IsDigit(input[i]) || input[i] == ',' || input[i] == '.'); i++)
                            s += input[i];
                    else if (Char.IsLetter(input[pos]))
                        for (int i = pos + 1; i < input.Length &&
                            (Char.IsLetter(input[i]) || Char.IsDigit(input[i])); i++)
                            s += input[i];
                }
                yield return s;
                pos += s.Length;
            }
        }


вот она эта пробежечка да?
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141118
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин, да.
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141186
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот оно тебе надо
Код: c#
1.
double v = (double)new System.Xml.XmlDocument().CreateNavigator().Evaluate(System.Xml.XPath.XPathExpression.Compile("(1+3*2-(5-6)*-3) div 2"))
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141295
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

Не парься, просто поставь себе lisp машину. Sbcl или clisp.
Готовый калькулятор.
...
Рейтинг: 0 / 0
необычный калькулятор
    #38141475
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivАндрюхин,

Не парься, просто поставь себе lisp машину. Sbcl или clisp.
Готовый калькулятор.
Андрюхин,
меньше чем на Mathematica 9 - не соглашайся
...
Рейтинг: 0 / 0
необычный калькулятор
    #38142229
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransa
Код: c#
1.
double v = (double)new System.Xml.XmlDocument().CreateNavigator().Evaluate(System.Xml.XPath.XPathExpression.Compile("(1+3*2-(5-6)*-3) div 2"))



Можно ещё так:
Код: c#
1.
double v = (double)new System.Data.DataTable().Compute("(1+3*2-(5-6)*-3) / 2", "");
...
Рейтинг: 0 / 0
необычный калькулятор
    #38142309
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik,

это ж баян
...
Рейтинг: 0 / 0
необычный калькулятор
    #38142469
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилpetalvik,

это ж баян

Ну баян, да. На боянистый вопрос - боянистый ответ. :)
...
Рейтинг: 0 / 0
необычный калькулятор
    #38145051
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилpetalvik,

это ж баян Ну дык и это не ПТ
...
Рейтинг: 0 / 0
необычный калькулятор
    #38145142
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransaНу дык и это не ПТ
я уже не уверен
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / необычный калькулятор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]