Member 12984155 Ответов: 1

Преобразование десятичной дроби в римскую


Напишите программу, которая принимает десятичное значение от 1 до 10 и отображает его эквивалентное значение римской цифры. Отображение сообщения об ошибке, если введенное значение находится за пределами допустимого диапазона. Напишите решение для двух классов. Второй класс должен позволять пользователю вводить тестовое значение.

Я не мог получить выход и цикл, настроенный в этой задаче.

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Chapater5PA1
{
    class Program
    {
        static void Main(string[] args)
        {
            int value;
            string roman;

            DisplayInstrution();
            value = GetDecimal();

            roman = CalculateRoman(value);

            DisplayResults(value, roman);
            Console.ReadKey();
        }

        
        public static void DisplayInstrution()
        {
            Console.WriteLine("This application allows decimal value between 1 and 10");
            Console.WriteLine("to be entered. It displays the equivalent roman numeral value.");
            Console.ReadKey();
        }

        public static int GetDecimal()
        {
            int value;
            Console.WriteLine("Decimal value: ");
            value = Int32.Parse(Console.ReadLine());

            return value;
        }

        public static string CalculateRoman(int value)
        {
            string result;

            if (value < 0 || value > 10)
                result = "Invalid input";
            else
                if (value == 1)
                result = "I";
            else
                if (value == 2)
                result = "II";
            else
                if (value == 3)
                result = "III";
            else
                if (value == 4)
                result = "IV";
            else
                if (value == 5)
                result = "V";
            else
                if (value == 6)
                result = "VI";
            else
                if (value == 7)
                result = "VII";
            else
                if (value == 8)
                result = "VIII";
            else
                if (value == 9)
                result = "IX";
            else
                result = "IX";

            return result;

        }

        public static void DisplayResults(int value, string roman)
        {
            if (value != 0)
            {
                Console.WriteLine("Roman value: ", roman);
            }
        }
    }
  }

1 Ответов

Рейтинг:
6

Patrice T

Попробуй

Console.WriteLine("Roman value: "+ roman);


Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Member 12984155

Спасибо, что помогли мне с частью вопроса. а как насчет того, чтобы создать цикл, чтобы вопрос задавался снова и снова