Console calculator - C#
Формулировка задачи:
Писал консольный калькулятор.
После введения всех переменных и типа производимого действия благополучно выкидывает из программы.
Написана только основная часть, те все частные случаи (невозможность извлечения sqrt из отр. чисел и т.д.) начну рассматривать после того, как заработает нормально основная часть.
По идее должно быть из-за проблем доступа, те не видит переменные из основной части класса, в блоках условных операторов, но как его обеспечить - ума не приложу.
Собственно, основная часть:
Хотелось бы узнать, что не так?
using System;
namespace Project5
{
public class Calculator
{
public static int b;
public static int a;
public static void Main()
{
char ch;
int x;
int b;
int a;
Console.WriteLine("Type first number");
a = Console.Read();
Console.WriteLine("Choose action and type on of the following actions: + - * / ^ sqrt(for sqrt type just s)");
x = Console.Read();
ch = Convert.ToChar(x);
Console.ReadKey();
Console.WriteLine("\nType second number");
b = Console.Read();
Console.ReadKey();
if (ch == 's')
{
var c = Math.Sqrt(a);
Console.WriteLine(c);
}
if (ch == '+')
{
var c = a + b;
Console.WriteLine(c);
}
else if (ch == '-')
{
var c = a - b;
Console.WriteLine(c);
}
else if (ch == '*')
{
var c = a*b;
Console.WriteLine(c);
}
else if (ch == '/')
{
var c = a/b;
Console.WriteLine(c);
}
else if (ch == '^')
{
var c = Math.Pow(a, b);
Console.WriteLine(c);
}
}
}
}Решение задачи: «Console calculator»
textual
Листинг программы
string text = Console.ReadLine();
Match expression = Regex.Match(text, @"\D", RegexOptions.IgnoreCase);
if (expression.Success)
throw new Exception("You need use only digist!");