|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Калькулятор.Ошибка вычисления ариф действий |
|
C/C++ - [решено] Калькулятор.Ошибка вычисления ариф действий
|
Новый участник Сообщения: 45 |
Профиль | Отправить PM | Цитировать
Здравствуйте. В попытке создания простейшего калькулятора на с# возникли проблемы: действия "*" и "/". Ошибка зарылась в глобальных переменных начальных значений, только в чем именно уму не приходит(
namespace Kalkulator { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button_1_Click(object sender, EventArgs e) { textBox1.Text += 1; textBox2.Text += 1; } private void button_2_Click(object sender, EventArgs e) { textBox1.Text += 2; textBox2.Text += 2; } private void button_3_Click(object sender, EventArgs e) { textBox1.Text += 3; textBox2.Text += 3; } private void button_4_Click(object sender, EventArgs e) { textBox1.Text += 4; textBox2.Text += 4; } private void button_5_Click(object sender, EventArgs e) { textBox1.Text += 5; textBox2.Text += 5; } private void button_6_Click(object sender, EventArgs e) { textBox1.Text += 6; textBox2.Text += 6; } private void button_7_Click(object sender, EventArgs e) { textBox1.Text += 7; textBox2.Text += 7; } private void button_8_Click(object sender, EventArgs e) { textBox1.Text += 8; textBox2.Text += 8; } private void button_9_Click(object sender, EventArgs e) { textBox1.Text += 9; textBox2.Text += 9; } private void button_0_Click(object sender, EventArgs e) { textBox1.Text += 0; textBox2.Text += 0; } private void button_plus_Click(object sender, EventArgs e) { if (textBox1.Text == "") MessageBox.Show("Данные не введены"); else { ch = '+'; sum += Double.Parse(textBox1.Text); textBox1.Text = ""; textBox2.Text += "+"; } } private void button_minus_Click(object sender, EventArgs e) { if (textBox1.Text == "") MessageBox.Show("Данные не введены"); else { ch = '-'; sum -= Double.Parse(textBox1.Text); textBox1.Text = ""; textBox2.Text += "-"; } } private void button_mult_Click(object sender, EventArgs e) { if (textBox1.Text == "") MessageBox.Show("Данные не введены"); else { ch = '*'; sam *= Double.Parse(textBox1.Text); sum = sam; textBox1.Text = ""; textBox2.Text += "*"; } } private void button_del_Click(object sender, EventArgs e) { if (textBox1.Text == "") MessageBox.Show("Данные не введены"); else { ch = '/'; sam /= Double.Parse(textBox1.Text); sum = sam; textBox1.Text = ""; textBox2.Text += "/"; } } private void button_pick_Click(object sender, EventArgs e) { textBox1.Text += ","; textBox2.Text += "."; } private void button_answ_Click(object sender, EventArgs e) { if (ch == '+') sum += Double.Parse(textBox1.Text); if (ch == '-') sum -= Double.Parse(textBox1.Text); if (ch == '*') sum *= Double.Parse(textBox1.Text); if (ch == '/') sum /= Double.Parse(textBox1.Text); textBox1.Text = sum.ToString() ; textBox2.Text = textBox1.Text; } public double sam=1; public double sum=0; } } |
|
Отправлено: 19:56, 20-10-2011 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Цитата Ksenya:
У вас переменные sam и sum объявлены в дизайнере (Form1.designer.cs) и в классе формы (Form1.cs). Удалите из дизайнера. Без них проект компилируется, и как то считает - не проверял правильность. |
|
------- Отправлено: 22:06, 20-10-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Ошибка во время выполнения..считает не правильно)) не соображу с глобальными начальными переменными..как совместить в программе одну=0 и другую=1, если мы можем выбрать любое действие будь то ("+","-"): для них начальная переменная =0 и ("*","/"): =1?
__ просто если мы используем переменную, а без нее никак, то никак и без начальных значений, ей задаваемых) |
Отправлено: 22:23, 20-10-2011 | #3 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Ksenya, на самом деле не понятно зачем вам 0 или 1. может быть уже сказывается конец дня
Почему бы вам просто не объявить переменную затем в обработчике события клавиши операции ( для примера возьмем умножение) private void button_mult_Click(object sender, EventArgs e) { if (textBox1.Text == "") MessageBox.Show("Данные не введены"); else { ch = '*'; Temp = double.Parse(textBox1.Text); textBox1.Text = ""; textBox2.Text += "*"; } } Попробуйте, должно получиться... |
------- Отправлено: 22:45, 20-10-2011 | #4 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Попыталась реализовать..В итоге возникает ошибка: использование локальной переменной, которой не присвоено значение..: вот для чего нужны начальные значения..
если же присвоить зн-е=0, считает не правильно) Извините пожалуйста, я поспешила и скомпилила, не удалив предыдущие действия..спасибо, все верно..работает..как доктор прописал. Спасибо, спаситель |
|
Отправлено: 23:48, 21-10-2011 | #5 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Однако потом возникает вопрос, что делать, если калькулятор инженерный и помимо простых реализаций ариф действий требуются корни 3-ей степени, логарифмы и другие преобразования. Я к тому, что как в дальнейшем поведет себя, а может и не нужна будет вовсе, переменная ch?
|
Отправлено: 00:41, 22-10-2011 | #6 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Вопрос исчерпан. спасибо)
|
Отправлено: 01:28, 22-10-2011 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Облачные вычисления: достоинства и недостатки | OSZone News | Новости информационных технологий | 2 | 09-05-2012 07:42 | |
Вычисления стали выполняться дольше | kittyla | Процесcоры | 4 | 01-02-2011 01:19 | |
В 2010 году облачные вычисления ожидают катастрофы | OSZone News | Новости информационных технологий | 1 | 15-12-2009 21:41 | |
C/C++ - функция для вычисления матричной экспонеты (С++) | Luzuk | Программирование и базы данных | 3 | 03-10-2008 11:42 | |
Excel для вычисления повторов | kabanello | Хочу все знать | 4 | 14-02-2006 18:30 |
|