- •32) Операция присваивания
- •Арифметические операции
- •Логические операции
- •Операции отношения
- •Сдвиговые операции
- •4.6. Операция «,» (запятая)
- •35) Как вводить и выводить информацию
- •Форматированный вывод данных
- •Форматированный ввод данных
- •39) Оператор с предусловием (while)
- •Цикл с постусловием (do…while)
- •40) Цикл с параметром (for)
- •42) Оператор return
- •Оператор goto
- •Оператор break
- •Оператор continue
Форматированный ввод данных
Функция scanf( ) (прототип содержится в файле stdio.h) обеспечивает форматированный ввод. Ее можно записать в следующем формальном виде:
scanf("управляющая строка", аргумент_1, аргумент_2,...);
Аргументы scanf( ) должны быть указателями на соответствующие значения. Для этого перед именем переменной записывается символ &. Назначение указателей будет рассмотрено далее.
Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов. В нее могут включаться:
пробелы, символы табуляции и перехода на новую строку (все они игнорируются);
спецификации преобразования, состоящие из знака %, возможно, символа * (запрещение присваивания), возможно, числа, задающего максимальный размер поля, и самого символа преобразования;
обычные символы, кроме % (считается, что они должны совпадать с очередными неизвестными символами во входном потоке).
Рассмотрим символы преобразования функции scanf( ) (указываются после символа %):
с - на входе ожидается появление одиночного символа; d или i - на входе ожидается десятичное целое число и аргумент является указателем на переменную типа int; D или l - на входе ожидается десятичное целое число и аргумент является указателем на переменную типа long; е или Е - на входе ожидается вещественное число с плавающей точкой; f - на входе ожидается вещественное число с плавающей точкой; g или G - на входе ожидается вещественное число с плавающей точкой; о - на входе ожидается восьмеричное целое число и аргумент является указателем на переменную типа int; О - на входе ожидается восьмеричное целое число и аргумент является указателем на переменную типа long; s - на входе ожидается появление строки символов; х - на входе ожидается шестнадцатеричное целое число и аргумент является указателем на переменную типа int; Х - на входе ожидается шестнадцатеричное целое число и аргумент является указателем на переменную типа long; р - на входе ожидается появление указателя в виде шестнадцатеричного числа; n - применяется в операциях форматирования. Аргумент, соответствующий этому символу спецификации, должен быть указателем на целое. В него возвращается номер позиции (после ввода), в которой записана спецификация %n; u - на входе ожидается беззнаковое целое число и аргумент является указателем на переменную типа unsigned int; U - на входе ожидается беззнаковое целое число и аргумент является указателем на переменную типа unsigned long; [ ] - сканирует входную строку для получения символов.
Перед некоторыми символами преобразования могут записываться следующие модификаторы:
F - изменяет указатель, заданный по умолчанию, на указатель типа far; N - изменяет указатель, заданный по умолчанию, на указатель типа near; h - преобразует аргумент к типу short int (может записываться перед символами d, i, о, u, х); l - преобразует аргумент к типу long int (может записываться перед символами d, i, o, u, x); L - преобразует аргумент к типу long double (может записываться перед символами е, f, g).
Ввести целое число (int a;), символ (char b;) и вещественное число (float t;) можно так:
scanf("%d", &a);
scanf("%c", &b);
scanf("%d%c%f",&a, &b, &t);
36)
Функция |
Краткое описание |
abs |
нахождение абсолютного значения выражения типа int |
acos |
вычисление арккосинуса |
asin |
вычисление арксинуса |
atan |
вычисление арктангенса х |
atan2 |
вычисление арктангенса от у/х |
cabs |
нахождение абсолютного значения комплексного числа |
ceil |
нахождение наименьшего целого, большего или равного х |
_clear87 |
получение значения и инициализация слова состояния сопроцессора и библиотеки арифметики с плавающей точкой |
_control87 |
получение старого значения слова состояния для функций арифметики с плавающей точкой и установка нового состояния |
cos |
вычисление косинуса |
cosh |
вычисление гиперболического косинуса |
exp |
вычисление экспоненты |
fabs |
нахождение абсолютного значения типа double |
floor |
нахождение наибольшего целого, меньшего или равного х |
fmod |
нахождение остатка от деления х/у |
_fpreset |
повторная инициализация пакета плавающей арифметики |
frexp |
разложение х как произведения мантиссы на экспоненту 2n |
hypot |
вычисление гипотенузы |
labs |
нахождение абсолютного значения типа long |
ldexp |
вычисление х*2exp |
log |
вычисление натурального логарифма |
log10 |
вычисление логарифма по основанию 10 |
matherr |
управление реакцией на ошибки при выполнении функций математической библиотеки |
modf |
разложение х на дробную и целую часть |
pow |
вычисление х в степени у |
sin |
вычисление синуса |
sinh |
вычисление гиперболического синуса |
sqrt |
нахождение квадратного корня |
_status87 |
получение значения слова состояния с плавающей точкой |
tan |
вычисление тангенса |
tanh |
вычисление гиперболического тангенса |
Система программирования MSC предоставляет дополнительно функции:
Функция |
Краткое описание |
bessel |
вычисление функции Бесселя |
dieeetomsbin |
преобразование плавающего числа двойной точности из IEEE-формата в Microsoft-формат |
dmsbintoieee |
преобразование плавающего числа двойной точности из Microsoft-формата в IEEE-формат |
fieeetomsbin |
преобразование числа с плавающей точкой из IEEE-формата в Microsoft-формат |
fmsbintoieee |
преобразование числа с плавающей точкой из Microsoft-формата в IEEE-формат |
Система программирования ТС предоставляет дополнительно функции:
Функция |
Краткое описание |
_matherr |
управление реакцией на ошибки при выполнении функций из математической библиотеки |
pow10 |
вычисление десятичной степени |
37) Условный оператор if выполняет указанный оператор, если условие истинно (не равно 0). Иначе, если присутствует оператор else, выполняется альтернативный оператор. Допускаются вложения условных операторов, при этом else относится к ближайшему if. Возможной ошибкой может быть путаница между операцией присвоения = и операцией равенства ==.
38) Оператор выбора switch передает управление на одну из меток в зависимости от значения целочисленного выражения. Если значение выражения не предусмотрено в блоке switch и метка по умолчанию default отсутствует, то ничего не происходит. В качестве метки используются только константы. Для выхода из блока switch служит оператор break. По возможности лучше использовать этот оператор, чем множество операторов if.