Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ошибка вычисления деления калькулятора на С#

Ответить
Настройки темы
C/C++ - Ошибка вычисления деления калькулятора на С#

Аватара для Ksenya

Новый участник


Сообщения: 45
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Ksenya
Дата: 25-10-2011
Описание: добавление вложенных файлов
Вложения
Тип файла: zip Калькулятор.zip
(90.5 Kb, 11 просмотров)
Здрасьте. мною написан, уже в полузавершенном варианте инженерный калькулятор..В момент написания кода к действию "деления" само действие работало прекрасно, но после добавления след строк по действиям до существующего конца программы..возникает непонятная ошибка) (причем ничего изменено не было). Подскажите в чем дело..почти дописан(

Папочку с кодом предлагаю для рассмотрения.

Отправлено: 20:18, 25-10-2011

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Ksenya, отслеживаю тему, все никак руки не дойдут до трассировки.
Опиши пожалуйста на словах принцип разбора выражения и его расчета.
Т.е. при введении скобок и сложных выражений, с разделением приоритетов выполнения операций, могут применяться различные типы разбора строки.
Как пример - Польская обратная запись. Она может строиться с помощью стека, может строиться с помощью дерева. Я в свое время писал на Delphi не слишком быстрый, многопроходный разбор выражения в дерево.

OPZ - как я понимаю и есть Польская обратная запись. С принципом ее работы разобрались?
К ночи постараюсь взглянуть на код.
----
ferget, LilLoco,

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 08:05, 30-10-2011 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Ksenya

Новый участник


Сообщения: 45
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здрасьте, lxa85.) честно говоря не совсем) да, на 2 курсе опз рассматривали, и для моего калькутера я выбрала наиболее подходящий вариант опз. исходник. но он применим для консольного калькулятора, это во-первых, а во-вторых, там совершенно другие входные данные, которые меня и смущают, пусть я переименую их, когда распознаю, к примеру как сейчас - числовые данные, которые я ввожу в поле - label_number.Text =(с обработкой операции и получением резалта)= Convert.ToString(ExecuteOperation(DoubResul, Num, CurrOper));.

Но как использовать определяемые, с помощью ОПЗ, данные для наших операций..просто мозги набекрень, это что мне теперь под один этот класс придется переделывать всю главную программу? потому как:
//заменить умножение или деление в строке InBrackets на посчитанное значение
Код: Выделить весь код
   public void repMD(int i) {
       double MD;
        if (InBrackets[i] == '*')
            MD = GetLeftOperand(i) * GetRightOperand(i);// ладно, пускай в нашем случае-вместо MD-результат прописывался как-DoubResul
        else
            MD = GetLeftOperand(i) / GetRightOperand(i);
        ReplaceExp(i, MD);
        Calc(); //вернуться в метод Calc - получается, что-то вроде взаимной рекурсии
    }
или как-то совместить: метод определения опреации по тексту нажатой Button - private Operation ReturnOperation(string str_op)
и систему ОПЗ для выражений со скобками?

Отправлено: 19:13, 30-10-2011 | #32


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


я трассировку то конечно выполню, но я ничего не понял, из того, что ты сказала
Напиши словами.
Цитата Ksenya:
Convert.ToString(ExecuteOperation(DoubResul, Num, CurrOper));. »
Вот это выражение нам что возвращает?
repMD - что за зверь? Как звучит полностью?
Система ОПЗ со скобками вообще не работает. Как сказать то...
Первая задача - перевести выражение в ОПЗ.
Вторая задача - по полученной ОПЗ посчитать выражение.
Блок схемку приведи, иль еще чего. Т.е. нужны смысловые блоки (ищем операцию, инициализируем переменные и т.п.) и тогда можно будет программу структурировать и понимать, за что отвечает тот или иной блок операторов.
----
Программы скачал, сейчас буду разбираться.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 21:15, 30-10-2011 | #33


Аватара для Ksenya

Новый участник


Сообщения: 45
Благодарности: 0

Профиль | Отправить PM | Цитировать


ага, значит, это выражение выдает нам ответ, вычисленный по методу расчета операций( "+","-","*","/" и других) и переведенный в окошко label_number.Text в строковом формате. т.е сначала после нажатия кнопок с текстами: цифра - знак операции-цифра ..срабатывает метод ReturnOperation(он выдает то или иное название операции), ..затем..после нажатия кнопки "="..срабатывает вложенный цикл методов: ExecuteOperation(DoubResul, Num, CurrOper)) - get_answer();- OperationEvent(object sender, EventArgs e). Как теперь включать опз, не меняя координально структуру, причем ведь еще есть операции: "√", возведения в степень(включу потом со старой версии калькулятора) ..
ума не приложу.

Отправлено: 22:33, 30-10-2011 | #34



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ошибка вычисления деления калькулятора на С#

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Калькулятор.Ошибка вычисления ариф действий Ksenya Программирование и базы данных 6 22-10-2011 01:28
CMD/BAT - [решено] Остаток от деления Forpost Скриптовые языки администрирования Windows 2 25-03-2011 23:58
2003/XP/2000 - EXCEL вместо калькулятора Vygov Microsoft Office (Word, Excel, Outlook и т.д.) 3 10-03-2011 14:55
Загрузка - Win7 не загружается после деления HDD Акронисом vadimovich2 Microsoft Windows 7 6 09-04-2010 20:42
Скин для калькулятора Vlad Drakula Программирование и базы данных 12 01-06-2004 08:55




 
Переход