Оператор присваивания, процедуры ввода-вывода
С помощью оператора присваивания переменной или функции присваивается значение выражения. Для этого применяется знак «=», слева от которого записывается имя переменной или функции, а справа – выражение, значение которого вычисляется перед присваиванием. Структура оператора в С++ записывается в виде
<идентификатор> = <выражение>;
Допускается для идентификаторов использовать любой тип, за исключением файлового, причем тип идентификатора и тип выражения должны быть совместимы.
В выражениях могут использоваться математические (библиотека math.h), логические операции и операции отношения (табл. 5).
Таблица 5.
Обращение | Выполняемая функция | Тип | |
Аргумента | Функции | ||
abs(x) fabs(x) | |Х| |Х| | Целый вещественный | Целый вещественный |
sin(x) cos(x) log(x) exp(x) sqrt(x) atan (x) asin(x) acos(x) log10(x) pow(x,y) | sin X cos X ln (X) ex arctg X arcsin x arcos x lg x xy | Целый или вещественный | вещественный |
В C++ предусмотрено использование таких математических констант как M_Pi=3.1415926535897932385, M_Pi_2,M_Pi_4 и M_E=2.7. Более сложные математические функции получаются путем комбинации базовых, которые перечислены выше.
При использовании стандартных функций ввода/вывода в выполняемой программе указывается библиотечный файл stdio.h. Вывод результатов (по формату) на экран осуществляется с помощью функции:
printf(“строка форматов”, [список выводимых аргументов]
Пример. printf (“Итого %d\n”, y);
При вызове printf() обязательно передается в качестве аргумента хотябы одна строка, например printf (“Введите число”);. Строка форматов состоит из символов, которые выводятся без изменения, и символов, задающих преобразование данных. Спецификации преобразования формата имеют вид:
% [флаг] [ширина] [.точность]символ формата
Пример. printf(“х=%+3.2f\n y=%5d\a”, x, y);
Флаг может принимать следующие значения, записанные в табл. 6.
Таблица 6.
Значения флага | Описание |
- | Выравнивание по левому краю |
+ | Всегда выводить знак (+ или -) |
Заполнять лишнее пространство нулями вместо пробелов | |
# | Выводить 0 перед восьмеричными и 0х перед шестнадцатеричными константами |
Ширина – это минимальный размер поля вывода. Точность – это число цифр после десятичной точки для вещественных переменных.
Управляющие символьные константы (табл. 7) или escape-символы применяются для представления символов и чисел, которые нельзя непосредственно ввести с клавиатуры. Еscape-последовательность начинается с косой черты \ и заключается в кавычки.
Таблица 7.
Символьная константа | Описание |
\n | Переход на новую строку |
\a | Звуковой сигнал |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\b | Возврат на символ |
\r | Возврат на начало строки |
Символы формата определяют тип аргумента (табл. 8).
Символьная константа | Описание |
%с | символ |
%d | целое десятичное число |
%i | целое десятичное число |
%е | десятичное число в виде х.хх е+хх |
%f | десятичное число с плавающей занятой хх.хххх |
%g | %f или %е, что короче |
%о | восьмеричное число |
%s | строка символов |
%х | шестнадцатеричное число 5a5f |
%р | указатель |
Функция формализованного ввода scanf() предназначения для чтения данных из входного потока и интерпретации их в соответствии со строкой управления форматом.
scanf(“%строка форматов”, &имя переменной);
После преобразования данные записываются в область памяти определенными аргументами, которые следуют за строкой управления форматом. Каждый аргумент списка должен быть указателем на переменную, тип которой соответствует типу, указанному в строке управления форматов, т.е. перед именем аргумента должен указываться символ & (“взять адрес”).
Пример. scanf (“%d %f”, &x, &y);
Пример. Вычислить площадь треугольника по формуле Герона , если длины его сторон А, В и С вводятся с клавиатуры.
Алгоритм программы показан на рис. 1. Листинг программы на языке С++:
#include <stdio.h> // библиотека, содержащая описание
// операторов ввода/вывода
# include <conio.h> // библиотека, содержащая описание
// операторов для работы с экраном
# include <math.h> // библиотека, содержащая описание
//математических операторов
void main() // заголовок главной функции программы
{ int a, b, c; // описание целочисленных идентификаторов
float p, s; // описание вещественных идентификаторов
clrscr (); // процедура очистки экрана
printf(“Vvedite dliny storon a, b, c \n”); // вывод информационного
// сообщения
scanf (“%d%d%d”, &a,&b,&c); // ввод значений a, b и с
p=(a+b+c)/2; // вычисление полупериметра
s=sqrt(p*(p-a)*(p-b)*(p-c)); // вычисление площади
printf (“Ploshad S=%4.2f\n”, s); // вывод результата
getch(); // процедура задержки экрана,
// пока не нажата любая клавиша
}
В результате работы программы на экран выводится сообщение:
Ploshad S=……
Рис. 1.
Лабораторная работа 2