Языки программирования

Делаем консольный калькулятор

На этом уроке мы напишем простенький консольный калькулятор на языке С#. Программа будет работать так: пользователь вводит операнды и оператор, а программа сообщает результат.

Калькулятор будет поддерживать только базовые операторы (+, -, *, /). Вместо обработки исключения деления на 0 мы произведем проверку ввода — если второй оператор будет равен 0, мы просто не будем производить вычисление.

Данный калькулятор абсолютно элементарен и требует минимальных знаний языка. Создаём проект (“Файл” ->”Создать”->”Проект”->”Консольное приложение”) и объявляем наши переменные:
double a;
double b;
double res = 0;
char oper;
Double – это тип переменной с плавающей запятой, иными словами, тип, в который можно записать десятичные числа. В него поместится как значение 5, так и значение 5,45, и даже значение 5,4571601695, также в нём можно использовать и отрицательные числа.

В переменную a мы внесём первое число, которое запишет пользователь. В переменную b – второе число. А переменная res будет выводить результат математических операций с переменными а и b.

Char – это тип переменной в виде какого-либо символа, будь то буква, цифра или какой-нибудь знак. В переменную oper мы будем заносить знак математической операции над числами.

Итак, переменные объявлены, теперь нам надо узнать, что конкретно нужно посчитать пользователю, а для этого придётся считывать данные, которые он будет вводить:
Console.Write("Введите первое число:");
a = Convert.ToDouble(Console.ReadLine());

Console.Write("\nВведите оператор:");
oper = Convert.ToChar(Console.ReadLine());

Console.Write("\nВведите второе число:");
b = Convert.ToDouble(Console.ReadLine());
Сначала мы выводим на консоль надпись о том, чтобы пользователь ввёл первое число.

В следующей строке мы присваиваем переменной a введенное пользователем число, но при этом не забываем, что введенные пользователем данные всегда имеют строковой формат string, а так как у нашей переменной тип double, то надо отконвертировать string в double соответствующим методом Convert.

То же самое проделываем с переменной oper, но конвертируем string уже не в double, а в char, потому что переменная oper имеет такой тип данных. Точно то же самое, что было с переменной a проделываем и с переменной b, так как они одинакового типа.

Числа получены. Но пока неизвестно, как ими оперировать, так как главное для нас – узнать что за знак скрывается в переменной oper, и уже исходя из этого, производить операции над числами:
if (oper == '+')
{
res = a + b;
}

else if (oper == '-')
{
res = a - b;
}
            
else if (oper == '*')
{
res = a * b;
}

else if (oper == '/')
{
if (b != 0)
res = a / b;
else Console.WriteLine("На 0 делить нельзя!");
}
else
{
Console.WriteLine("Неизвестный оператор.");
}
Для этого мы используем оператор условия if (если). Первая строка звучит примерно так: если в переменной oper записан знак “+”, то.. мы присваиваем переменной res сумму переменных a и b и выводим ответ на экран. Рассмотрим код программы полностью:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Console_Calck
{
    class Program
    {

        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.GetEncoding(866);
            Console.InputEncoding = Encoding.GetEncoding(866);

            double a;
            double b;
            double res = 0;
            char oper;

            Console.Write("Введите первое число:");
            a = Convert.ToDouble(Console.ReadLine());

            Console.Write("\nВведите оператор:");
            oper = Convert.ToChar(Console.ReadLine());

            Console.Write("\nВведите второе число:");
            b = Convert.ToDouble(Console.ReadLine());

            if (oper == '+')
            {
                res = a + b;
            }

            else if (oper == '-')
            {
                res = a - b;
            }
            
            else if (oper == '*')
            {
                res = a * b;
            }

            else if (oper == '/')
            {
                if (b != 0)
                    res = a / b;
                else Console.WriteLine("На 0 делить нельзя!");
            }
            else
            {
                Console.WriteLine("Неизвестный оператор.");
            }

            Console.WriteLine("\nРезультат: {0}", res);
            Console.ReadLine();
        }
    }
}
После написания кода откомпилируем ее и получим результат:
Для закрепления материала рекомендую самостоятельно записать каждую строчку кода в свой созданный проект и изучить ход выполнения программы.
Самоучитель по C#