Слайд 2Стандартные функции ввода-вывода
Функции printf (для вывода) и scanf (для ввода) позволяют преобразовывать
![Стандартные функции ввода-вывода Функции printf (для вывода) и scanf (для ввода) позволяют](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-1.jpg)
численные величины в символьное представление и обратно. Функции описаны следующим образом:
int printf(const char *format, ...); int scanf(const char *format, ...);
Слайд 3Стандартные функции ввода-вывода
Функция printf возвращает количество выведенных символов (значение EOF свидетельствует об
![Стандартные функции ввода-вывода Функция printf возвращает количество выведенных символов (значение EOF свидетельствует](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-2.jpg)
ошибке). Функция scanf возвращает количество значений, успешно присвоенных указанным переменным.
Первый аргумент функций printf и scanf представляет собой управляющую (форматную) строку, которая указывает, в каком виде следует выводить или вводить последующие аргументы.
Слайд 4Стандартные функции ввода-вывода
Управляющая строка содержит два типа объектов: обычные символы и спецификации
![Стандартные функции ввода-вывода Управляющая строка содержит два типа объектов: обычные символы и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-3.jpg)
преобразований.
Каждая спецификация преобразования начинается с символа % и заканчивается символом преобразования.
Символы преобразования: d – десятичная форма, o – восьмеричная форма, x – шестнадцатеричная форма, u – беззнаковая десятичная форма, c – отдельный символ, s – строка, e – число в научном формате (с экспонентой), f – число с плавающей запятой.
Слайд 5Стандартные функции ввода-вывода
В спецификациях преобразований функции printf между знаком % и символом
![Стандартные функции ввода-вывода В спецификациях преобразований функции printf между знаком % и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-4.jpg)
преобразования могут находиться:
число, задающее ширину поля,
точка-разделитель,
число, задающее точность представления,
модификатор длины l для данных типа long
Слайд 6Стандартные функции ввода-вывода
Функции printf и scanf могут иметь произвольное количество аргументов.
Аргументы,
![Стандартные функции ввода-вывода Функции printf и scanf могут иметь произвольное количество аргументов.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-5.jpg)
следующие за управляющей строкой, для функции printf представляют собой подлежащие выводу значения переменных и выражений, а для функции scanf - указатели на переменные, в которых должны быть сохранены введенные значения.
Слайд 7Стандартные функции ввода-вывода
Таким образом, перед каждым аргументами функции scanf, который является именем
![Стандартные функции ввода-вывода Таким образом, перед каждым аргументами функции scanf, который является](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-6.jpg)
переменной, должен стоять амперсанд – символ «&». Если вводится строка, то перед именем массива амперсанд не нужен, так как имя массива само по себе является указателем.
Слайд 8Стандартные функции ввода-вывода
Приведем в качестве примера программу, которая вводит значение N и
![Стандартные функции ввода-вывода Приведем в качестве примера программу, которая вводит значение N](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-7.jpg)
печатает таблицу квадратов чисел от 1 до N:
#include void main(void
int i, N;
printf(”Введите N: ”);
scanf(”%d”, &N);
printf(”Таблица квадратов:\n”);
for(i=1; i<=N; i++) printf(”%2d %4d\n”, i, i*i);
}
Слайд 9Стандартные функции ввода-вывода
Для того, чтобы колонки таблицы выводились ровно, требуется задать для
![Стандартные функции ввода-вывода Для того, чтобы колонки таблицы выводились ровно, требуется задать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-8.jpg)
каждого выводимого значения ширину поля. В данном случае ширина первой колонки – два знакоместа, ширина второй – четыре.
В качестве аргументов функции printf можно использовать выражения. В приведенном примере с помощью выражения вычисляется квадрат числа i.
Слайд 10Стандартные функции ввода-вывода
Рассмотрим пример другой программы, которая использует цикл while для вычисления
![Стандартные функции ввода-вывода Рассмотрим пример другой программы, которая использует цикл while для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-9.jpg)
длины строки:
#include
void main(void)
{
int i;
char s[100];
printf(”Введите строку:\n”);
gets(s);
i=0;
while(s[i] != 0) i++;
printf(”Длина строки %d символов.\n”);
}
Слайд 11Стандартные функции ввода-вывода
В следующем примере по радиусу круга вычисляется его площадь:
#include
![Стандартные функции ввода-вывода В следующем примере по радиусу круга вычисляется его площадь:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-10.jpg)
main()
{
double r, pi=3.1415926535;
printf("Введите радиус круга: "); scanf("%lf", &r);
printf("Площадь круга: %f\n", pi*r*r);
}
Слайд 12Стандартные функции ввода-вывода
В стандарте языка Си отсутствует специальное обозначение для числа p
![Стандартные функции ввода-вывода В стандарте языка Си отсутствует специальное обозначение для числа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-11.jpg)
и его приходится задавать в виде вещественной константы.
При выводе чисел типа double использовать в спецификации преобразования признак удвоенной точности (букву l) не обязательно. Однако при вводе значений типов long и double такой признак в спецификация необходим, иначе значение будет введено неверно
Слайд 13Математические функции
Математические функции Си описаны в заголовочном файле math.h. Программа, которая использует
![Математические функции Математические функции Си описаны в заголовочном файле math.h. Программа, которая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-12.jpg)
математические функции, должна содержать следующую строку:
#include
Слайд 14Математические функции
Наиболее часто применяются следующие функции:
double cos(double x) – вычисляет косинус аргумента;
double fabs(double
![Математические функции Наиболее часто применяются следующие функции: double cos(double x) – вычисляет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-13.jpg)
x) – вычисляет абсолютное значение аргумента;
double exp(double x) – вычисляет экспоненциальную функцию аргумента;
double log(double x) – вычисляет натуральный логарифм аргумента;
double log10(double x) – вычисляет десятичный логарифм аргумента;
double sin(double x) – вычисляет синус аргумента;
double sqrt(double x) – вычисляет квадратный корень аргумента;
double tan(double x) – вычисляет тангенс аргумента.
Слайд 15Математические функции
Из приведенных описаний видно, что математические функции работают с вещественными числами
![Математические функции Из приведенных описаний видно, что математические функции работают с вещественными](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/987167/slide-14.jpg)
удвоенной точности: аргументы имеют типа double и возвращаемое значение также имеет тип double.
В качестве примера рассмотрим программу, которая вводит значение x, вычисляет значение exp(x) и выводит полученное значение на экран: