Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_С++_ч_1.doc
Скачиваний:
15
Добавлен:
22.11.2018
Размер:
324.61 Кб
Скачать

Выражения

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

Примеры

(a + 0.12) / 6

x && y || ! z

(t + sin (x) - 1.5e4) / (2*k + 2 )

Операции выполняются в соответствии с приоритетом. Для изменения порядка выполнения операций используются круглые скобки. Если в одном выражении записано несколько операций одинакового приоритета, унарные операции, условная операция и операции присваивания выполняются справа налево, остальные − слева направо.

Примеры

a = b = c; // Данная запись означает a = (b = c)

a + b + c; // Это (a + b) + c

Результат вычисления выражения характеризуется значением и типом. Например, если a, b − переменные целого типа:

int a = 2, b =5;

то выражение a + b имеет значение 7 и тип int.

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

Преобразования бывают двух типов:

- изменяющие внутреннее представление величины;

- изменяющие только интерпретацию внутреннего представления.

К первому типу относится, например, преобразование целого типа в вещественное; ко второму − преобразование знакового целого в беззнаковое.

В программе можно задавать преобразования типов явным образом (см. тему “Преобразования типов” далее).

Функции ввода-вывода Основные функции ввода-вывода в стиле с

int scanf (const char* format, ...) // ввод

int printf (const char* format, ...) // вывод

Данные функции выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой format. Строка формата содержит символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе, а также спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами.

Пример. Программа, использующая функции ввода-вывода в стиле С.

# include <stdio.h>

int main ( ) {

int i;

printf ("Введите целое число \n");

scanf ("%d", & i);

printf ("Вы ввели %d", i);

return 0;

}

Пояснения

В этой программе в первой строке подключается заголовочный файл, содержащий описания функций ввода-вывода. Функция printf в четвертой строке выводит сообщение на экран и переходит на новую строку в соответствии с управляющей последовательностью \n. Функция scanf заносит введенное с клавиатуры число в переменную i (знак & означает операцию получения адреса). Последовательность символов %d является спецификацией формата десятичных чисел.

Спецификации формата

c − аргумент рассматривается как отдельный символ.

d, i − аргумент преобразуется к десятичному виду.

e, E − аргумент преобразуется в десятичную форму в экспоненциальном виде.

f − аргумент преобразуется в десятичную форму с фиксированной десятичной точкой.

g, G − используется формат %e или %f, который короче; незначащие нули не печатаются.

O − аргумент преобразуется в беззнаковую восьмеричную форму.

p − вывод указателя в шестнадцатеричном формате.

s − аргумент является строкой.

u − аргумент преобразуется в беззнаковую десятичную форму.

x, X − аргумент преобразуется в беззнаковую шестнадцатеричную форму.

% − выводится символ %.