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

Компьютерный форум 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

 

Аватара для ferget

Разный


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

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


Цитата Ksenya:
потому что после нахождения деления, к примеру деления на ноль, не выводит сообщение в textbox пользователю, о том что он ошибся »
на самом деле выводит, но функция продолжает выполнятся и значение меняется на 0
из функции надо выйти

Код: Выделить весь код
                    textBox1.Text = "Деление на ноль невозможно";
                    textBox2.Text = textBox1.Text; System.Media.SystemSounds.Asterisk.Play();
                    return;

Отправлено: 21:56, 26-10-2011 | #11



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

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


Аватара для Ksenya

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


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

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


Вложения
Тип файла: txt дробный факториал.txt
(750 байт, 8 просмотров)

видели б вы какой он страшный..могу привести..не разобрать просто)) (код дэлфийский)

Отправлено: 23:11, 26-10-2011 | #12


Аватара для Ksenya

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


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

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


Цитата:
на самом деле выводит, но функция продолжает выполнятся и значение меняется на 0
из функции надо выйти
точно)) спасибо..

Отправлено: 23:18, 26-10-2011 | #13


В Поисках Истины


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

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


Вот тут можно посмотреть про факториал дробного числа. А так, в принципе, ищите гамма - функции.

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:38, 27-10-2011 | #14


Аватара для Ksenya

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


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

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


Вложения
Тип файла: zip Новая форма мышления.zip
(120.8 Kb, 8 просмотров)

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

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

В частности в месте:
Код: Выделить весь код
//блок выполнения операций
        private double ExecuteOperation(double DoubResul, double num, Operation op)
        {
                switch (op)//в зависимости от переменной для операций
                {
                    case Operation.Add:
                        {
                            DoubResul = DoubResul + num;
                            return DoubResul;
                        }
                    case Operation.Div:
                        {    if (num == 0) { DoubResulLast=DoubResul; label_number.Text= "Деление на ноль невозможно!: " ;
                return 0; }
             else
                            DoubResul = DoubResul / num;
                            return DoubResul;
                        }
                    case Operation.Mult:
                        {
                            DoubResul = DoubResul * num;
                            return DoubResul;
                        }
                    case Operation.Sub:
                        {
                            DoubResul = DoubResul - num;
                            return DoubResul;
                        }
                    case Operation.Per:
                        {
                            DoubResul = (DoubResul * num) / 100;
                            return DoubResul;
                        }
                    case Operation.Sqrt:
                        {
                            DoubResul = Math.Sqrt(num);
                            return DoubResul;
                        }
                    case Operation.DivX:
                        {
                            DoubResul = 1 / num;
                            return DoubResul;
                        }
                    case Operation.Mod:
                        {
                            DoubResul = DoubResul % num;
                            return DoubResul;
                        }
                    default: return DoubResul;
               //}
            }
            /*catch (DivideByZeroException ex) ---> тоже не срабатывает
            {
                label_number.Text = "Деление на ноль невозможно!: " + ex.Message;
                return 0;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка!: " + ex.Message);
                return 0;
            }*/
        }
ошибка именно в выполнении действия в процессе отладки
__
как разрешить такое:Общая квота форума превышена на 105.6 Kb. Пожалуйста, сообщите об этом администрации..

Последний раз редактировалось Ksenya, 27-10-2011 в 19:27.


Отправлено: 18:45, 27-10-2011 | #15


Аватара для ferget

Разный


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

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


Вложения
Тип файла: rar Form1.rar
(3.1 Kb, 10 просмотров)

выложите весь проект



вот вроде работает

Последний раз редактировалось ferget, 27-10-2011 в 19:53.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:01, 27-10-2011 | #16


Аватара для Delirium

Ветеран


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

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


Цитата Ksenya:
как разрешить такое:Общая квота форума превышена на 105.6 Kb. Пожалуйста, сообщите об этом администрации.. »
Общий объем доступного места на форуме для вложений зависит от количества сообщений пользователя. Т.к. вы новичок => и объем маленький.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:06, 28-10-2011 | #17


Аватара для Ksenya

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


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

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


Цитата:
ferget:вот вроде работает
да, все как надо) спасибо
...
еще возник такой момент,: если в Дэлфи функция: delete(st,length(st),1); смогла бы удалить нам последний символ в строке..то вроде как в С# аналогов этому не существует. И если пойти через свойство длины строки:
Код: Выделить весь код
Convert.ToString(DoubResul).Lenght = Convert.ToString(ExecuteOperation(DoubResul, Num, CurrOper)).Lenght - 1;
светлого решения проблемы точно не увидишь, похоже что в доступных функциях, как в немногих других языках, # каким-то образом обделен..

Отправлено: 01:59, 28-10-2011 | #18


Аватара для Delirium

Ветеран


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

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


Цитата Ksenya:
.то вроде как в С# аналогов этому не существует »
Вовсе нет. делается так:

Код: Выделить весь код
string str = "some text";
str = str.Substring(0, str.Length-1);

Цитата Ksenya:
Convert.ToString(DoubResul).Lenght »
Гораздо проще написать DoubResul.ToString().Length

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:37, 28-10-2011 | #19


В Поисках Истины


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

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


Цитата Delirium:
Цитата Ksenya:
.то вроде как в С# аналогов этому не существует »
Вовсе нет. делается так: »
Ну или так :
Код: Выделить весь код
string str = "OsZone!";
str = str.Remove(str.Length-1);
// в str будет "OsZone"
Удаляет последний символ...

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:57, 28-10-2011 | #20



Компьютерный форум 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




 
Переход