Задание: Гусеница ползет по стволу дерева, причем ползти она может только вперед или назад. Список команд размещен на форме. Высота дерева вводится с клавиатуры. Составьте программу, позволяющую определять как общее количество пройденных гусеницей сантиметров, так и высоту, на которой она находится после выполнения каждой команды. Кроме того, определите доползла ли она до верхушки дерева. Примечание 1: не забудьте, что гусеница не может уползти под землю. (*) Примечание 2: пройдя вершину дерева гусеница начинает двигаться вниз.
Есть рабочий код, но нужно дополнить. Не могу понять как посчитать весь пройденный путь (на сколько поднялась и на сколько спустилась).
int val = 0;
private void Add(int addent)
{
val = val + addent;
label1.Text = Convert.ToString(val);
}
private void button2_Click(object sender, EventArgs e)
{
Add(1);
}
private void button1_Click(object sender, EventArgs e)
{
Add(2);
}
private void button3_Click(object sender, EventArgs e)
{
Add(-1);
}
private void button4_Click(object sender, EventArgs e)
{
Add(-2);
}
private void button5_Click(object sender, EventArgs e)
{
int a = int.Parse(label1.Text);
int b = int.Parse(textBox1.Text);
label2.Text = a == b ? "Гусеница доползла до верхушки" :
label2.Text = a > b ? "Ещё не бабочка, спускайтесь" :
label2.Text = a < b ? "Не на вершине, но и не на земле" : label2.Text;
}
Нужно поддерживать две величины - текущую позицию и пройденный путь. Первая строчка реализует одно из примечаний.
private void Add(int addent)
{
addent = (position + addend) < 0 ? -position: addent;
position = position + addent;
path = path + Math.Abs(addent);
//Судя по Вашему коду, высота дерева вводится в textBox1 - исхожу из этого
int val = 0, // текущая высота
a = 0, // общее количества пройденных сантиметров
b; // высота дерева
// кнопка button5 не нужна
// в label2 отображается высота,
// на которой гусеница находится после выполнения каждой команды
// для textBox1 добавлено событие (Focus) Leave
private void textBox1_Leave(object sender, EventArgs e)
{
b = Convert.ToInt32(textBox1.Text); // высота дерева
}
private void Add(int addent)
{
// проверка, что высота дерева указана
if(textBox1.Text.Equals(String.Empty))
{
MessageBox.Show("укажите высоту дерева");
return;
}
if ((val + addent) <= 0)
label2.Text = "Мне под землю рано";
else if ((val + addent) == b)
{
a += addent;
val += addent;
label2.Text = "Гусеница доползла до верхушки, высота " + val.ToString();
}
else if ((val + addent) > b)
{
a += addent;
// следующую строку можно записать короче, но так нагляднее
val = b - (val + addent - b); // из высоты дерева вычитаются
// метры, на которые (val + addent)
// больше высоты дерева
label2.Text = "Ещё не бабочка, спускаюсь " + val.ToString();
}
else
{
a += addent;
val += addent;
label2.Text = "Не на вершине, но и не на земле, высота " + val.ToString();
}
label1.Text = "всего пройдено " + a.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
Add(1);
}
private void button1_Click(object sender, EventArgs e)
{
Add(2);
}
private void button3_Click(object sender, EventArgs e)
{
Add(-1);
}
private void button4_Click(object sender, EventArgs e)
{
Add(-2);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В общем, предположим задача получать данные из разных типов файлов: txt,access и т д
Есть у меня некоторый обобщённый класс, который делает Request и отдаёт Response:
Как добавить namespace TestApp, TestAppController, TestApp
Есть веб приложение на PHP + БД на MySQLПосле выполнения какого-либо SQL запроса путем отправки данных через HTML форму, если обновить страницу, то SQL запрос...