- Делаем консольный калькулятор.
- Программирование на C, C# и Java
- Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
- Калькулятор C# в консоли
- Шаг 2: начинаем программировать!
- О песочнице
- О модерации
- Saved searches
- Use saved searches to filter your results more quickly
- License
- snixtho/Console-Calculator
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
Делаем консольный калькулятор.
На этом уроке мы напишем простенький консольный калькулятор на языке С#. Программа будет работать так: пользователь вводит операнды и оператор, а программа сообщает результат. Калькулятор будет поддерживать только базовые операторы (+, -, *, /). Вместо обработки исключения деления на 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
Для этого мы используем оператор условия 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Результат: ", res); Console.ReadLine(); > > >
После написания кода откомпилируем ее и получим результат:
Для закрепления материала рекомендую самостоятельно записать каждую строчку кода в свой созданный проект и изучить ход выполнения программы.
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Калькулятор C# в консоли
В данном уроке опять создадим простенький калькулятор на языке C#, но в этот раз будем работать в консоли.
Калькуляторы на Windows Forms можно посмотреть здесь и здесь.
Данный калькулятор абсолютно элементарен и требует минимальных знаний языка. Создаём проект («Файл» ->»Создать»->»Проект»->»Консольное приложение») и объявляем наши переменные:
Double — это тип переменной с плавающей запятой, иными словами, тип, в который можно записать десятичные числа, причём довольно большие. В него поместится как значение 5, так и значение 5,45, и даже значение 5,4571601695, также в нём можно использовать и отрицательные числа.
В переменную a мы внесём первое число, которое запишет пользователь. В переменную b — второе число. А переменная total будет выводить результат математических операций с переменными а и b.
Char — это тип переменной в виде какого-либо символа, будь то буква, цифра или какой-нибудь знак. В переменную oper мы будем заносить знак математической операции над числами. В нашем калькуляторе будут только самые основные — «+», «-«, «*» и «/».
Итак, мы объявили переменные, теперь нам надо узнать, что конкретно нужно посчитать пользователю, а для этого придётся считывать данные, которые он будет вводить:
Сначала мы выводим на консоль надпись о том, чтобы пользователь ввёл первое число.
В следующей строке мы присваиваем переменной a введенное пользователем число, но при этом не забываем, что введенные пользователем данные всегда имеют строковой формат string, а так как у нашей переменной тип double, то надо отконвертировать string в double соответствующим методом Convert.
Примерно то же самое мы проделываем с переменной oper, но конвертируем string уже не в double, а в char, потому что переменная oper имеет такой тип данных.
Точно то же самое, что было с переменной a проделываем и с переменной b, так как они одинакового типа.
Числа получены. Но пока неизвестно, как ими оперировать, так как главное для нас — узнать что за знак скрывается в переменной oper, и уже исходя из этого, производить операции над числами:
Для этого мы используем оператор условия if (если).
Первая строка звучит примерно так: если в переменной oper записан знак «+», то..
..мы присваиваем переменной total сумму переменных a и b и выводим ответ на экран. В кавычках записаны слова, которые выводятся на экран, а переменные, расположившиеся среди плюсов выводят свои значения. Пример такого ответа выглядит вот так:
По подобию первого условия мы создаём остальные, используя операторы else if (так положено семантически, если для алгоритма необходимы какие-либо условия. Если условия не необходимы, то можно использовать оператор else, как написано ниже).
Мы расписали все необходимые нам операторы. Но что, если пользователь введёт какой-нибудь неверный оператор? Тогда нам следует предупредить его, что такого оператора нет. Для этого мы используем else. Логика такая — если у нас в oper имеется знак плюса — мы складываем, если же минус -вычитаем, знак умножения- умножаем, знак деления — делим, если в oper имеется любой другой знак (всё остальное), то нам уже не нужно какое-то определение условия (как, например, oper==’+’), поэтому можно обойтись простым else.
Наша программа уже работает, но, пожалуй, можно добавить ещё одну несложную деталь.
А что, если пользователь захочет выполнить несколько операций? Например, сначала сложить два числа, а затем умножить два других числа? Для этого ему пришлось бы перезапускать программу. Но можно сделать и иначе:
Шаг 2: начинаем программировать!
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
О песочнице
Это «Песочница» — раздел, в который попадают дебютные публикации пользователей, желающих стать полноправными участниками сообщества.
Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.
Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.
О модерации
- рекламные и PR-публикации
- вопросы и просьбы (для них есть Хабр Q&A);
- вакансии (используйте Хабр Карьеру)
- статьи, ранее опубликованные на других сайтах;
- статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
- жалобы на компании и предоставляемые услуги;
- низкокачественные переводы;
- куски программного кода без пояснений;
- односложные статьи;
- статьи, слабо относящиеся к или не относящиеся к ней вовсе.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
A simple console calculator written in c#.
License
snixtho/Console-Calculator
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This was mainly a fun practice/learning project. The calculator which is written in C# supports all basic math operators with some extra things like factorial and binary operations. The TreeViewer project is a perfect-tree drawing program which i was originally thinking about hooking up to the parse tree which the calculator parser generates for debugging purposes. I may still do that in the future since the tree drawing is pretty much done already anyways, but we’ll see.
Here is a full list of functions:
Symbol | Description |
---|---|
+ | Addition (a + b) |
— | Subtraction (a — b) |
/ | Division (a / b) |
* | Multiplication (a * b) |
% | Modulo (a % b) |
@ | XOR (a @ b) |
| | OR (a |
& | AND (a & b) |
~ | Negation (~a) |
! | Factiorial (a!) |
Shift Left (a | |
>> | Shift Right (a >> b) |
= | Assignment for variables (a = b) — NOT IMPLEMENTED YET |
name | description |
---|---|
abs(x) | Absolute Value of x |
acos(x) | Inverse cosinus of x |
asin(x) | Inverse sinus of x |
atan(x) | Inverse tangent of x |
atan2(x, y) | Inverse tangent of quotient x/y |
ceil(x) | Round up of x |
round(x) | Round nearest of x |
floor(x) | Round down of x |
cos(x) | Cosinus of x |
sin(x) | Sinus of x |
tan(x) | Tangent of x |
cosh(x) | Hyperbolic cosinus of x |
sinh(x) | Hyperbolic sinus of x |
tanh(x) | Hyperbolic tangent of x |
ln(x) | Natural Logarithm of x |
log10(x) | Base 10 logarithm of x |
log(x) | Base 2 logarithm of x |
logn(x, y) | Logarithm of x with base y |
max(x, y) | Max number of x and y |
min(x, y) | Min number of x and y |
exp(x) | Exponential, e^x |
sqrt(x) | Square root of x |
sqrtn(x, y) | y root of x. |
lcm(x, y) | Least common multiple of x and y |
gcd(x, y) | Greatest common divisor of x and y |
rand(x) | Random number from 0 to x |
avg(x1. xN) | Average of the numbers given. |
About
A simple console calculator written in c#.