@Mister_krid

Что лучше изменить и как?

Всем хэлоу. Есть такая задачка:
-Пользователь должен ввести исходные данные с консоли — три числа через пробел: исходную сумму, процентную ставку (в процентах) и срок вклада в месяцах.
-Программа должна вывести накопившуюся сумму на момент окончания вклада.
-Вот порядок действий:
Создайте новый проект с типом Console Application.
В методе Main напишите ввод с помощью Console.ReadLine() и вывод с помощью Console.WriteLine().
Все вычисление вынесите во вспомогательный метод Calculate. Код этого метода и нужно сдать в этой задаче.
и все это без циклов!

static void Main(string[] args)
        {
            var input = Console.ReadLine();        
            Console.WriteLine(Calculate(input));
        }

       
        static double Calculate(string userInput)
        {
            string[] arrayUserInput = userInput.Split(' ');                    
            if (int.Parse(arrayUserInput[2]) == 0)
            {               
                return double.Parse(arrayUserInput[0]);
            }
            else
            {
                var outputAmount = (Convert.ToDouble(arrayUserInput[0], CultureInfo.InvariantCulture) / 100) * (Convert.ToDouble(arrayUserInput[1]) / 12) + Convert.ToDouble(arrayUserInput[0], CultureInfo.InvariantCulture);
                arrayUserInput[0] = Convert.ToString(outputAmount);
                arrayUserInput[2] = Convert.ToString(Convert.ToInt32(arrayUserInput[2]) - 1);
                return Calculate(string.Join(" ", arrayUserInput));            
            }

        }
Можете посоветовать что лучше не делать и как правильно поступать при такой задаче. Крч на критику код кидаю
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
Здесь
var outputAmount = (Convert.ToDouble(arrayUserInput[0], CultureInfo.InvariantCulture) / 100) * (Convert.ToDouble(arrayUserInput[1]) / 12) + Convert.ToDouble(arrayUserInput[0], CultureInfo.InvariantCulture);

посоветую создать три переменные double в них соответственно сохранить:

исходную сумму, процентную ставку и срок вклада в месяцах.
это может улучшить понимание кода.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vabka Куратор тега C#
Токсичный
Я бы ещё заменил double на decimal - всё-таки деньги считаем.
А Convert заменил на TryParse.
Парсинг лучше сделать в Main, а в метод Calculate передавать три числа.
Тогда не придётся делать постоянно Split и Join
В остальном всё хорошо
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы