Нерабочий калькулятор
Цитата: Тимур от 15.11.2021, 23:17Добрый вечер! Извиняюсь сразу за тот код который вы сейчас прочитаете. Я новичок и пока не совсем всё смог осилить. Как и этот грёбанный калькулятор. Уверен, что пошёл через дебри, но думаю что и моим способом можно будет решать. Если конечно же исправить ошибку, которую я не вижу. Помогите, пожалуйста
[spoiler title=""]namespace Калькулятор { public partial class Form1 : Form { public int cou = 0; public Form1() { InitializeComponent(); label1.Location = new Point(270, 7); foreach (Button buttones in panel2.Controls.OfType<Button>()) { buttones.Click += (s, a) => { count++; label1.Text += $"{buttones.Text}"; label1.Location = new Point(label1.Location.X - 10,label1.Location.Y); value[cou] = (double.Parse(buttones.Text)); cou++; }; } foreach (Button buttonnn in panel3.Controls.OfType<Button>()) { buttonnn.Click += (s, a) => { if (count >= 1) { label1.Text += $"{buttonnn.Text}"; label1.Location = new Point(label1.Location.X - 10, label1.Location.Y); valueS[count2] = buttonnn.Text; count2++; } if(count2 >= 1) { count = 0; } }; } button18.Click += (s, e) => { label1.Text += $"{button18.Text}"; label1.Location = new Point(label1.Location.X - 10, label1.Location.Y); count++; }; button19.Click += (s, e) => { count++; }; button17.Click += (s, a) => { label1.Text = null; label1.Location = new Point(270, 7); }; } public int count = 0; public int count2 = 0; public double [] value = new double [100]; public string [] valueS = new string [50]; private void button2_Click(object sender, EventArgs e) { int k = 0; int d = 1; for (int i = 0; i < valueS.Length -1 ; i++) { if (valueS[i] == "+") { label1.Text = (Sum(value[k],value[d])).ToString(); d++; k++; } if (valueS[i] == "-") { label1.Text = (Minus(value[k], value[d])).ToString(); d++; k++; } if (valueS[i] == "*") { label1.Text = (Umnoz(value[k], value[d])).ToString(); d++; k++; } if (valueS[i] == "/") { label1.Text = (Del(value[k], value[d])).ToString(); d++; k++; } } double Sum(double g, double h ) { return g + h ; } double Minus(double g, double h) { return g - h; } double Umnoz(double g, double h) { return g * h; } double Del(double g, double h) { return g / h; } } } }[/spoiler]
Можете подсказать не только с ошибкой, но мне ещё очень важно правильно ли я пишу?
[MNotice]Тема перемещена, в соответствующий раздел.[/MNotice]
Добрый вечер! Извиняюсь сразу за тот код который вы сейчас прочитаете. Я новичок и пока не совсем всё смог осилить. Как и этот грёбанный калькулятор. Уверен, что пошёл через дебри, но думаю что и моим способом можно будет решать. Если конечно же исправить ошибку, которую я не вижу. Помогите, пожалуйста
namespace Калькулятор
{
public partial class Form1 : Form
{
public int cou = 0;
public Form1()
{
InitializeComponent();
label1.Location = new Point(270, 7);
foreach (Button buttones in panel2.Controls.OfType<Button>())
{
buttones.Click += (s, a) =>
{
count++;
label1.Text += $"{buttones.Text}";
label1.Location = new Point(label1.Location.X - 10,label1.Location.Y);
value[cou] = (double.Parse(buttones.Text));
cou++;
};
}
foreach (Button buttonnn in panel3.Controls.OfType<Button>())
{
buttonnn.Click += (s, a) =>
{
if (count >= 1)
{
label1.Text += $"{buttonnn.Text}";
label1.Location = new Point(label1.Location.X - 10, label1.Location.Y);
valueS[count2] = buttonnn.Text;
count2++;
}
if(count2 >= 1)
{
count = 0;
}
};
}
button18.Click += (s, e) =>
{
label1.Text += $"{button18.Text}";
label1.Location = new Point(label1.Location.X - 10, label1.Location.Y);
count++;
};
button19.Click += (s, e) =>
{
count++;
};
button17.Click += (s, a) =>
{
label1.Text = null;
label1.Location = new Point(270, 7);
};
}
public int count = 0;
public int count2 = 0;
public double [] value = new double [100];
public string [] valueS = new string [50];
private void button2_Click(object sender, EventArgs e)
{
int k = 0;
int d = 1;
for (int i = 0; i < valueS.Length -1 ; i++)
{
if (valueS[i] == "+")
{
label1.Text = (Sum(value[k],value[d])).ToString();
d++;
k++;
}
if (valueS[i] == "-")
{
label1.Text = (Minus(value[k], value[d])).ToString();
d++;
k++;
}
if (valueS[i] == "*")
{
label1.Text = (Umnoz(value[k], value[d])).ToString();
d++;
k++;
}
if (valueS[i] == "/")
{
label1.Text = (Del(value[k], value[d])).ToString();
d++;
k++;
}
}
double Sum(double g, double h )
{
return g + h ;
}
double Minus(double g, double h)
{
return g - h;
}
double Umnoz(double g, double h)
{
return g * h;
}
double Del(double g, double h)
{
return g / h;
}
}
}
}
Можете подсказать не только с ошибкой, но мне ещё очень важно правильно ли я пишу?
Комментарий модератора:
Тема перемещена, в соответствующий раздел.