|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ошибка вычисления деления калькулятора на С# |
|
C/C++ - Ошибка вычисления деления калькулятора на С#
|
Новый участник Сообщения: 45 |
Профиль | Отправить PM | Цитировать
Здрасьте. мною написан, уже в полузавершенном варианте инженерный калькулятор..В момент написания кода к действию "деления" само действие работало прекрасно, но после добавления след строк по действиям до существующего конца программы..возникает непонятная ошибка) (причем ничего изменено не было). Подскажите в чем дело..почти дописан(
Папочку с кодом предлагаю для рассмотрения. |
|
Отправлено: 20:18, 25-10-2011 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 22:02, 25-10-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать перезалила
|
Отправлено: 23:31, 25-10-2011 | #3 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Ksenya, Так как вы снова не указали ошибку и место где она возникает, буду угадывать...
При делении у вас всегда выводится "Деление на ноль невозможно" . Это из - за того, что вы обнуляете переменную, заносите ее в поле и потом его парсите: double answer = 0; // вот тут обнуление у вас if (ch == '+') { answer = Temp + double.Parse(textBox1.Text); } if (ch == '-') { answer = Temp - double.Parse(textBox1.Text); } if (ch == '*') { answer = Temp * double.Parse(textBox1.Text); } if (ch == '^') { answer = Math.Pow(Temp, double.Parse(textBox1.Text)); } if (ch == 'k') { answer = SqrtY(Temp); } if (ch == 'm') { answer = Temp % double.Parse(textBox1.Text); } textBox1.Text = answer.ToString(); // здесь вы в поле текстбокс1 вносите "0" textBox2.Text = textBox1.Text; if (ch == '/') { // а тут начинаете парсить, в итоге первое условие никогда не выполнится, только если равно нулю. if (double.Parse(textBox1.Text) != 0) { answer = Temp / double.Parse(textBox1.Text); } else if (double.Parse(textBox1.Text) == 0) { textBox1.Text = "Деление на ноль невозможно"; textBox2.Text = textBox1.Text; System.Media.SystemSounds.Asterisk.Play(); } } |
------- Отправлено: 07:47, 26-10-2011 | #4 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать и еще с блоком проверки деления на ноль проблема
if (ch == '/') { if (double.Parse(textBox1.Text) != 0) { answer = Temp / double.Parse(textBox1.Text); } else if (double.Parse(textBox1.Text) == 0) { textBox1.Text = "Деление на ноль невозможно"; textBox2.Text = textBox1.Text; System.Media.SystemSounds.Asterisk.Play(); return; } } textBox1.Text = answer.ToString(); textBox2.Text = textBox1.Text; |
|
Отправлено: 08:20, 26-10-2011 | #5 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Да, но тогда возникает ошибка, я писала о ней в пред теме..(использование переменной, которой не присвоено значение(скриншот в дополнение)
и тогда напрашивается другой вопрос: почему другие действия не становятся равными нулю? магия, как вы думаете? |
Отправлено: 19:21, 26-10-2011 | #6 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:29, 26-10-2011 | #7 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать извините, "Общая квота форума превышена на 117.6 Kb. " , не получилось. (Когда оставляю просто:
private void button_answ_Click(object sender, EventArgs e) { double answer; // без "=0" if (ch == '+') { answer = Temp + double.Parse(textBox1.Text); } private void button_answ_Click(object sender, EventArgs e) { double answer=0; if (ch == '+') { answer = Temp + double.Parse(textBox1.Text); } if (ch == '-') { answer = Temp - double.Parse(textBox1.Text); } if (ch == '*') { answer = Temp * double.Parse(textBox1.Text); } if (ch == '^') { answer = Math.Pow(Temp, double.Parse(textBox1.Text)); } if (ch == 'k') { answer = SqrtY(Temp); } if (ch == '/') { if (double.Parse(textBox1.Text) != 0) answer = Temp / double.Parse(textBox1.Text); else if (double.Parse(textBox1.Text) == 0) { textBox1.Text = "Деление на ноль невозможно"; textBox2.Text = textBox1.Text; System.Media.SystemSounds.Asterisk.Play(); } } if (ch == 'm') { answer = Temp % double.Parse(textBox1.Text); } textBox1.Text = answer.ToString(); textBox2.Text = textBox1.Text; } спасибо ребят.. эх и намучилась я с ним, с этим калькулятором, есть кстати полу-почти-инженерный исходник, но он мудреный слишком и с ошибками, тоже с делением..препод завалит.( а вот такой вопрос..перерыла кучу литературы, но так и не смогла найти инф-ию по нахождению факториала от отрицательного дробного числа в с# .. это что в природе не возможно на данном языке? (потому как нашла только дэлфийский) |
Отправлено: 19:32, 26-10-2011 | #8 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать нет, работает не так..потому что после нахождения деления, к примеру деления на ноль, не выводит сообщение в textbox пользователю, о том что он ошибся. а как избавится от записи double answer=0; или что-то в этом роде?
|
Отправлено: 20:03, 26-10-2011 | #9 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Цитата Ksenya:
Цитата Ksenya:
Цитата Ksenya:
|
|||
------- Отправлено: 21:43, 26-10-2011 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|