Функция форматного вывода данных

printf(<управляющая_строка>, <аргумент_1>, <аргумент_2>, ... );

Управляющая_строка содержит объекты трех типов: обычные символы, которые просто выводятся на экран, спецификации преобразования, каждая из которых вызывает вывод на экран значения очередного аргумента из последующего списка и управляющие символы-константы. Каждая спецификация преобразования, как и в функции форматного ввода, начинается со знака % и заканчивается также символом преобразования. Если после знака % записан не символ, то он выводится на экран. Функция printf использует управляющую строку, чтобы определить, сколько всего аргументов и какие их типы.

Пример организации форматного ввода/вывода данных

#include <stdio.h> // директива препроцессора подключения заголовочного файла, содержащего описание использованных в программе функций ввода/вывода

#include <conio.h> // директива препроцессора подключения заголовочного файла, содержащего описание таких функций, как getch() – ожидание нажатия любой клавиши

int main()

{

int in; // объявление переменной целого типа

float fl; // объявление переменной вещественного типа

char ch; // объявление переменной символьного типа

printf(“\nВвод целого числа\n”); // переход на другую строку, вывод информации и переход на другую строку

scanf(“%d”, &in); // введенное число заносится в переменную i по ее адресу

printf(“Ввод чисел\n”);

scanf(“%f %c”,&fl,&ch); // введенные числа заносятся в переменные x и ch по их адресам

printf(“Вывод чисел %d %f %c“,in,fl,ch); // вывод на экран указанной строки, заменяя спецификацию преобразования на значение числа

getch(); // ожидание нажатия любой клавиши

return 0; // возврат из функции

}

Основные стандартные функции.

Стандартные функции консольного ввода/вывода

Консольный ввод/выводреализован как функции и объявлен в include-файле <conio.h>.

ФУНКЦИЯ ИСПОЛЬЗОВАНИЕ
Cgets читает строку с консоли
Cputs записывает строку на консоль
Getch читает символ с консоли
Putch записывает символ на консоль

Стандартные математические функции

Стандартные математические функции существуют для облегчения программирования математических вычислений; функции работают со значениями, представленными в форме с плавающей точкой.Основные математические функции объявлены в include-файле <math.h>.

ФУНКЦИЯ ИСПОЛЬЗОВАНИЕ
acos(x) вычисляет arccos x
asin(x) вычисляет arcsin x
atan(x) вычисляет arctg x
atan2(y,x) вычисляет arctg(y/x)
ceil(x) находит целую часть x
cos(x) вычисляет cos x
exp(x) вычисляет экспоненциальную функцию
fabs(x) вычисляет абсолютное значение x
floor(x) находит наибольшее целое, которое меньше или равно x
fmod(x,y) находит остаток с плавающей точкой от деления x на у
log(x) вычисляет натуральный логарифм х
log10(x) вычисляет десятичный логарифм х
modf(x,&n) разделяет х на целую (возвращаемое значение) и дробную (n) части
pow(x,y) вычисляет х в степени y
sin(x) вычисляет sin x
sqrt(x) находит квадратный корень из х
tan(x) вычисляет tg x

II. Контрольные вопросы.

1. Что такое «базовые типы данных»?

2. Какое существуют целочисленные типы в языке Си? Сколько байтов памяти занимает тип int?

3. Назвать вещественные типы языка Си? Сколько байтов памяти занимает тип float?

4. Как представляются символьные данные в языке Си?

5. Что представляет собой тип void?

6. Что представляет собой программа на языке Си? Какая структура Си-программы?

7. Что такое «операция» и что такое «операнд»? Какая операция называется унарной, а какая – бинарной?

8. Что представляет собой выражение?

9. Какие арифметические операции используются в языке Си?

10. Существует ли логический тип в языке Си? Какие значения используются для представления логических значений?

11. Какие используются операции сравнения и какие – логические операции?

12. Какие операции относятся к операциям присваивания?

13. Какие группы операций присваивания существуют в языке Си? Привести примеры.

14. Является ли оператор программной единицей?

15. Какие группы основных управляющих конструкций представляют собой операторы?

16. Что такое «пустой оператор» и для чего он используется?

17. Какие существуют операторы простой последовательности?

III. Практическая часть.

1. Выполнение общего задания.

Задача 1.

1. Постановка задачи: разработать алгоритм вычисления и вывода на экран значения a по формуле

функция форматного вывода данных - student2.ru

Входные значения x, y вводятся с клавиатуры. Написать программу, реализующую разработанный алгоритм.

2. Математическая модель и описательный алгоритм задачи:

• ввести значения в переменные x, y;

• вычислить значение переменной a по заданной формуле без проверок введенных значений x, y, так как значение a(x,y) определено для любых значений аргументов;

• вывести полученное значение переменной a.

3. Блок-схема алгоритма задачи:

функция форматного вывода данных - student2.ru

4. Текст программы – реализация алгоритма на языке Си:

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

int x, y; // описание переменной целого типа

float a; // описание переменной вещественного типа

printf(“\n input x=”);

scanf(“%d”,&x);

printf(“\n input y=”);

scanf(“%d”,&y);

a=(sqrt(abs(x-1))-sqrt(abs(y)))/(1+(float)x*x/2+(float)y*y/4); // используется преобразование типов для представления целых значений x, y в форме с плавающей точкой

printf(“\n output a=%f“,a);

getch();

return 0;

}

5. Тестирование:

Теоретически рассчитанное выходное значение Практически полученное выходное значение
Тест 1: входные данные: x=1, y=-1
a≈-0,5714 a=-0.571429
Тест 2: входные данные: x=-2, y=1
a≈0,2252 a=0.225246

Задача 2.

1. Постановка задачи: разработать вычисления и вывода на экран значений функций y = f1(x) и z = f2(y,a,b) для входных данных x, a, b рабочего набора. Значения рабочего набора, для которых обе функции определены, вводятся с клавиатуры. Написать программу, реализующую разработанный алгоритм.

Функция y = f1(x) Функция z = f2(y,a,b) Рабочий набор
x a b
функция форматного вывода данных - student2.ru функция форматного вывода данных - student2.ru 0,2 2 12

2. Математическая модель и описательный алгоритм задачи:

• ввести значения рабочего набора в переменные x, a, b;

• вычислить значение переменной у по формуле функция форматного вывода данных - student2.ru ;

• формулу вычисления значения переменной функция форматного вывода данных - student2.ru можно упростить, для чего использовать вспомогательную переменную c=sin2(a∙(2∙y2+1));

• вычислить значение переменной z через переменную c по формуле функция форматного вывода данных - student2.ru ;

• вывести полученные значения переменных у, z.

3. Блок-схема алгоритма задачи:

функция форматного вывода данных - student2.ru

4. Текст программы:

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

float x, a, b, y, c, z; // описание переменных вещественного типа

printf(“\n input x=”);

scanf(“%f”,&x);

printf(“\n input a, b:”);

scanf(“%f%f”,&a,&b);

y=(fabs(log10(x))+5)/(x+4);

c=pow(sin(a*(2*y*y+1)),2);

z=(c+29*b)/(c+b);

printf(“\n output у=%f\tz=%f“,y,z);

getch();

return 0;

}

5. Тестирование:

Теоретически рассчитанные выходные значения Практически полученное выходное значение
Для рабочего набора входных данных: x=0,2, a=2, b=12
у≈1,3569; z≈28,991594 y=1,356898; z=28,991587

2. Выполнение индивидуального задания.

Постановка задачи.

Разработать линейный алгоритм и написать программу по индивидуальному заданию, используя операторы простой последовательности действий, оператор ввода для ввода значений входных данных и оператор вывода для вывода результата вычисления выражения.

Входные и выходные данные.

Все действующие в программе переменные должны быть объявлены.

Недопустимо задавать исходные (входные) данные с помощью операторов присваивания. Ввод данных с клавиатуры должен предваряться выводом соответствующего сообщения.

Наши рекомендации