Товарисчи, задача есть - решения нет) - 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("Высоко");
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы