Добавить в цитаты Настройки чтения

Страница 2 из 5



scanf("n%d %f", &number1, &number2);

printf("number1 = %d, number2 = %f n", number1, number2);

puts("Спасибо!");

/* Стиль С++ из <iostream> */

cout << "Введите еще число: ";

cin >> number1;

cout << "Вы ввели число " << number1 << endl;

/* Создание задержки на экране. Стиль С++ из <iostream> */

cout << "nНажмите Enter для завершения программы…n";

// Очистим ввод с клавиатуры и будем ожидать нажатие клавиши "Enter"

cin.ignore(); cin.get();

return 0;

}

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

5) ОПЕРАТОР ПРИСВАИВАНИЯ

Оператор присваивания в языке C++ обозначается просто знаком =. В отличие от других языков в языке C++ оператор присваивания может использоваться в выражениях, которые включают в себя операторы сравнения или логические операторы.

Например (EX1):

#include <stdio.h>

int main() {

int C;

if ((C = 5 + 3) > 0) {

printf("Число C больше нуля!");

}

}

Сначала вычисляется величина 5 + 3, которая присваивается переменной С, затем сравнивается ее значение с нулем.

Существует также возможность многократного присваивания.

Например: int x = y = z = 5 * 3

Такое присваивание выполняется справа налево. Сначала вычисляется 5 * 3, затем это значение присваивается z, потом у, и лишь затем х.

Есть дополнительные операторы присваивания: +=, -=, *= и %=.

Вместо n = n + 2 можно использовать n += 2. += это аддитивная операция, в результате выполнения которой величина, стоящая справа, прибавляется к значению переменной, стоящей слева.

Аналогично:

n -= 2 это n = n – 2;

n *= 2 это n = n * 2;

n /= 2 это n = n / 2;

n %= 2 это n = n % 2.

Эти операции имеют тот же приоритет, что и операция присваивания =, то есть ниже, чем приоритет арифметических операций.

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

Вначале рассмотрим функцию, определяющую форматный вывод:

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

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

ОСНОВНЫЕ КОДЫ КОМАНДЫ ФОРМАТА:

1. d – значением аргумента является десятичное целое число;

2. с – значением аргумента является символ;



3. s – значением аргумента является строка символов:

4. f – значением аргумента является вещественное число с плавающей точкой;

5. р – значением аргумента является указатель (адрес).

Функция printf использует управляющую строку, чтобы определить, сколько всего аргументов и каковы их типы. Например, в результате работы программы получена переменная i, имеющая значение 100, и переменная j, имеющая значение 25. Обе переменные целого типа. Для вывода этих переменных на экран в виде

int i = 100;

int j = 25;

необходимо применить функцию

printf("i = %d j = %d", i , j);

Как было описано выше, в кавычках задается формат вывода, перед знаком % записываются символы, которые будут непосредственно выданы на экран. После знака % применена спецификация d, т.к. переменные i и j имеют целый тип. Сами i и j приведены через запятую в списке аргументов.

Если после знака % стоит цифра, то она задает поле, в котором будет выполнен вывод числа. Приведем несколько функций 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 ЭBMn%dn", i);

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