Написать программу на C#, которая будет складывать, вычитать, умножать или делить два числа. Числа и знак операции вводятся пользователем. После выполнения вычисления программа не должна завершаться, а должна запрашивать новые данные для вычислений. Завершение программы должно выполняться при вводе символа '0' в качестве знака операции. Если пользователь вводит неверный знак (не '0', '+', '-', '*', '/'), то программа должна сообщать ему об ошибке и снова запрашивать знак операции. Также сообщать пользователю о невозможности деления на ноль, если он ввел 0 в качестве делителя.
```csharp
using System;
class Program
{
static void Main()
{
char operation;
double num1, num2, result;
// Запросить данные у пользователя и выполнить вычисления до тех пор, пока не будет введен символ '0'
do
{
Console.Write("Введите первое число: ");
num1 = double.Parse(Console.ReadLine());
Console.Write("Введите второе число: ");
num2 = double.Parse(Console.ReadLine());
Console.Write("Введите знак операции (+, -, *, / или 0 для выхода): ");
operation = char.Parse(Console.ReadLine());
switch (operation)
{
case '+': // Сложение
result = num1 + num2;
Console.WriteLine($"Результат: {num1} + {num2} = {result}");
break;
case '-': // Вычитание
result = num1 - num2;
Console.WriteLine($"Результат: {num1} - {num2} = {result}");
break;
case '*': // Умножение
result = num1 * num2;
Console.WriteLine($"Результат: {num1} * {num2} = {result}");
break;
case '/': // Деление
if (num2 == 0) // Проверка деления на ноль
{
Console.WriteLine("Ошибка! Деление на ноль невозможно.");
}
else
{
result = num1 / num2;
Console.WriteLine($"Результат: {num1} / {num2} = {result}");
}
break;
case '0': // Выход из программы
Console.WriteLine("Программа завершена.");
break;
default: // Неверный ввод
Console.WriteLine("Ошибка! Введен неверный знак операции.");
break;
}
Console.WriteLine(); // Пустая строка для разделения вычислений
} while (operation != '0');
}
}
```
В этой программе мы используем цикл `do-while`, чтобы программа запрашивала новые данные для вычислений после выполнения предыдущих операций. Вычисления выполняются внутри блока `switch`, где мы используем различные `case` в зависимости от выбранной операции.
Программа запрашивает два числа и знак операции от пользователя. Затем она проверяет выбранный знак и выполняет соответствующие вычисления. Если пользователь вводит неверный знак операции, программа сообщает об ошибке и повторно запрашивает знак операции. Если пользователь пытается выполнить деление на ноль, программа также сообщает об ошибке.
Завершение программы происходит, когда пользователь вводит символ '0' в качестве знака операции. Каждое вычисление сопровождается выводом результата на экран.
Надеюсь, программа ясна и понятна для вас. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.