Сергей Николаевич Талипов - Лекции по C++ для начинающих стр 3.

Шрифт
Фон

Если после знака % стоит цифра, то она задает поле, в котором будет выполнен вывод числа. Приведем несколько функций printf, которые будут обеспечивать вывод одной и той же переменной S целого типа, имеющей значение 336.


Вызов функции printf("%2d", S);

Вывод: 336


В этом примере ширина поля (она равна двум) меньше, чем число цифр в числе 336, поэтому поле автоматически расширяется до необходимого размера.


Вызов функции printf("%6d", S)

Вывод: _ _ _336 (6 позиций)



То есть, в результате работы функции число сдвинуто к правому краю поля, а лишние позиции перед числом заполнены пробелами.


Вызов функции printf("%-6d", S);

Вывод: 336_ _ _ (6 позиций)


Знак «минус» перед спецификацией приводит к сдвигу числа к левому краю поля.


Рассмотрим вывод вещественных чисел. Если перед спецификацией f ничего не указано, то выводится число с шестью знаками после запятой, при печати числа с плавающей точкой перед спецификацией f тоже могут находиться цифры.


%6f печать числа с плавающей точкой в поле из шести позиции;

%.2f печать числа с плавающей точкой с двумя цифрами после десятичной точки;

%6.2f- печать числа с плавающей точкой в поле из шести позиций и двумя цифрами после десятичной точки.


Примеры:

float а = 3,687;

float b = 10,17;


Вызов функции printf("%7f %8f", a, b);

Вывод: _ _3.687_ _ _ _ 10.17


Как видно из примера, лишние позиции заполняются пробелами.


Вызов функции printf("%.2f %.2f", а, b);

Вывод: 3.69 10.17


В первом числе третья цифра после десятичной точки отброшена с округлением, т.к. указан формат числа с двумя цифрами после десятичной точки.


Вызов функции printf("%7.2f %e", a, b);

Вывод: _ _ _3.68 1.017000е+01


Поскольку для вывода значения переменной b применена спецификация е, то результат выдан в экспоненциальной форме. Следует отметить, что, если ширина поля меньше, чем число цифр в числе, то поле автоматически расширяется до необходимого размера.


Как было отмечено выше, в управляющей строке могут содержаться управляющие символьные константы. Среди управляющих символьных констант наиболее часто используются следующие:


\b для перевода курсора влево на одну позицию;

\n для перехода на новую строку;

\t для горизонтальной табуляции;


Предположим, в результате работы программы переменная i получила значение 50.


Вызов функции printf("\t ЭBM\n%d\n", i);


Сначала выполнится горизонтальная табуляция (\t), т.е. курсор сместится от края экрана на 8 позиций, затем на экран будет выведено слово «ЭВМ» после этого курсор переместится в начало следующей строки (\n) затем будет выведено целое значение i по формату d, и окончательно курсор перейдет в начало новой строки (\n). Таким образом, результат работы этой функции на экране будет иметь вид:

_ _ _ _ _ _ _ _ ЭВМ

50


7) ОПЕРАТОРЫ ВВОДА

Для форматного ввода данных используется функция:

scanf("управляющая строка", аргумент1, аргумент2, );


Если в качестве аргумента используется переменная, то перед ее именем записывается символ &. Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов, спецификации для определения типов аргументов такие же, как и для функции printf.

Если нам надо ввести значения для переменных i (целого типа) и а (вещественного типа). Эту задачу сможет выполнить функция: scanf("%d%f", &i, &a).


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



/*

* Пример решения квадратного уравнения

*/


#include <iostream>

#include <cmath>


using namespace std;


int main() {

double a, b, c, x1, x2;

cout << "Введите значение a: "; cin >> a;

cout << "Введите значение b: "; cin >> b;

cout << "Введите значение c: "; cin >> c;

if ((b * b 4 * a * c) >= 0) {

x1 = (-b + sqrt(b * b 4 * a * c)) / (2 * a);

x2 = (-b sqrt(b * b 4 * a * c)) / (2 * a);

cout << "Первый корень = " << x1 << endl;

cout << "Второй корень = " << x2 << endl;

} else {

cout << "Нет решения: дискриминант меньше 0";

}

}



ПРИМЕР ЗАДАЧИ (EX2). Чему равна площадь трапеции, если основания равны, а = 6.5, b = 3.9, а высота h = 4.7?

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3