Товарисчи, задача есть - решения нет) - C#
Формулировка задачи:
В небоскребе M этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры N. На какой этаж должен доставить лифт пассажира?
Вот код, который составили с Помощником моим и гидом в Шарпе. некоторые вложения мои. но программа реально без смысла. посмотрите её, пожалуйста, как изменить? чтоб ошибок не было при выводе сообщения про спуск на этаж ниже или выше. а то совсем бессмыслица, особенно в последних Мессаджах.
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs ev)
{
int n, m, d, n1, n2;
if (!int.TryParse(textBox2.Text, out n))
{
MessageBox.Show("Вы бы указали количество этажей в доме, а то долго кататься будем...");
return;
}
if (!int.TryParse(textBox1.Text, out m))
{
MessageBox.Show("Не разрешается на лифте кататься, введите свою квартиру!");
return;
}
d = m / 3;
n1 = d;
n2 = 0;
if (d % 2 == 0)
{
n1 = d + 1;
n2 = d - 1;
}
if ((n1 <= 1) && (n2 >= 1))
{
MessageBox.Show(string.Format("Лифт доехал до {0}-го этажа... или до {1}-го", n1, n2));
return;
}
if (n1 > n)
{
MessageBox.Show(string.Format("Лифт доехал до {0}-го этажа", n2));
return;
}
if (n2 < 1)
{
MessageBox.Show(string.Format("Лифт доехал до {0}-го этажа", n1));
}
{
if (n > d)
MessageBox.Show("Спуститься на этаж ниже");
}
{
if (n <= d)
MessageBox.Show("Подняться на этаж выше");
}
}
}
}Решение задачи: «Товарисчи, задача есть - решения нет)»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int floorCount, flatNumber, currentFloor = 0;
int.TryParse(textBox1.Text, out floorCount);
int.TryParse(textBox2.Text, out flatNumber);
while (flatNumber <= 3*floorCount)
{
currentFloor = (flatNumber + 2)/3;
if (currentFloor%2 > 0)
MessageBox.Show("Доехал до " + currentFloor);
else
MessageBox.Show("Конструктор дурак, не могу на нечетных этажах останавливаться.");
return;
}
MessageBox.Show("Высоко");
}
}
}