Калькулятор


Попробуем написать простейший калькулятор.
Наша задача вывести на экран некоторое арифметическое выражение и заставить компьютер его подсчитать.
Например такое: 
5+7=12
Причем вместо 5 и 7 могут быть разные числа, зависящие от значений переменных a и b в программе.

В операторе вывода можно выводить не просто текст, но и значения переменных, а также результат арифметического выражения. Причем последовательность вывода может быть различной. Например, для того, чтобы вывести вышеуказанное выражение необходимо записать так:
cout << a << "+" << b << "=" << a+b << endl;

Если хотим вывести значение переменной, то просто необходимо указать ее имя без кавычек. Если мы хотим вывести результат арифметического выражения, то достаточно правильно записать арифметическое выражение.
 
Надо запомнить!
Переменные, текст и арифметические выражения отделяются друг от друга оператором <<.
 
*** Углубленный материал: отличия в языке Си***
В форматной строке количество спецификаторов вывода не ограничено, главное для каждого спецификатора после форматной строки, через запятую перечислить все значения, которые будут подставляться вместо шаблона.
Например:
printf("%d+%d=%d\n",a,b,a+b); 

В форматной строке указаны три спецификатора формата для вывода (%d).
Спецификатор формата - последовательность, образованная начальным процентным знаком (%), который используется для указания типа и формата данных.

Спецификатор %d указывает на то, что должны быть выведены целочисленные значения.  Порядок подстановки - прямой.  Т.е. вместо первого шаблона %d выведется значение переменной a, вместо второго -  значение переменной b, а  вместо третьего - значение выражения a+b.


Ширина поля для вывода и точность
*** Углубленный материал: для интересующихся языком Си ***
Дополнительные спецификаторы вывода позволяют управлять выводом чисел в определенных форматах.


Минимальная ширина поля

Пример:
%04d  - число будет выводится в 4-х позициях, если цифр будет меньше четырех, то первые будут нулями.
int a=34; printf("%04d\n",a); //на экране:0 0 3 4   
знак подчеркивания здесь поставлен специально для наглядного отображения вывода числа.   

%4d – то же самое, только вместо нулей будут пробелы
int a=34; printf("%4d\n",a); //на экране: _ _ 3 4


Вывод с определенной точностью

Вывод с определенной точностью используется для вывода вещественных чисел. По умолчанию вещественные числа выводятся с точностью до 6 знаков после запятой. Но бывают случаи, когда необходимо вывести число с другой точностью. В этом случае необходимо указать сколько знакомест отвести под само число и сколько после запятой.
Например,
%9.3f   - вещественное число будет выведено в 9 позициях (включая позицию под точку), с тремя символами после точки (разделителем целой и дробной части является точка).
double a=34.24356; printf("%9.3f\n",a); // на экране: _ _ _ 3 2 . 2 4 4


Вывод значения переменной на экран. Спецификаторы вывода *** Углубленный материал ***
Как же вывести значение переменной на экран?
Для это внутри форматной строки в операторе вывода, необходимо указать некий шаблон, на месте которого будет выведено значение переменной.
Какой именно шаблон использовать зависит от типа переменной. 
Данные шаблоны называются спецификаторами вывода и представлены в таблице. Приведено достаточное большое количество спецификаторов. Все их запоминать не обязательно. 
В большинстве случаев, мы будем использовать спецификаторы для вывода целых, вещественных чисел, а также символов и строк. Но вы в любой момент можете вернуться к этому уроку и посмотреть нужный вам шаблон.
 
Код Формат
%c Символ
%d Десятичное целое число со знаком
%i Десятичное целое число со знаком
%e Научный формат (строчная буква e)
%E Научный формат (прописная буква E)
%f Вещественное число с плавающей точкой 
%g В зависимости от того, какой формат короче, применяется либо %e, либо %f
%G В зависимости от того, какой формат короче, применяется либо %E, либо %f
%o Восьмеричное число со знаком
%s Строка символов
%u Десятичное целое число без знака
%x Шестнадцатеричное число без знака (строчные буквы)
%X Шестнадцатеричное число без знака (прописные буквы)
%p Указатель
%n Указатель на целочисленную переменную. Спецификатор вызывает присвоение этой целочисленной переменной количества символов, выведенных перед ним
%% Знак %                           
%.3f Вывод вещественного числа с тремя знаками после запятой
%+f Обязательный вывод знака числа (+ или -)

Для вывода переменных типа short int  используется модификатор h (например, %hd).
Для вывода значений переменных типа long int используется модификатор l (например, %ld).
Модификатор L можно использовать как префикс перед спецификаторами e, f, g. Он означает, что на экран выводится значение типа long double  (например, %Lf).

 


Арифметические выражения

Выражение, стоящее в правой части оператора присваивания, позволяет вычислять значения по различным формулам.
Что может содержать выражение:
• целые и вещественные числа (в вещественных числах целая и дробная часть разделяются точкой, а не запятой, как это принято в математике);
• знаки арифметических действий:  
+ сложение,
- вычитание,
* умножение,
/ деление,
% остаток от деления;

• вызовы стандартных функций (необходимо подключить библиотеку math.h - #include<math.h>);
 abs(i) модуль целого числа i  (не используется в Silvertests, следует использовать следующую функцию):
 fabs(x) модуль вещественного числа x;
 sqrt(x) квадратный корень из вещественного числа x;
 pow(x,y) вычисляет x в степени y;

• круглые скобки для изменения порядка действий.

Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!