Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Proga_shpory.docx
Скачиваний:
44
Добавлен:
25.03.2015
Размер:
102.57 Кб
Скачать

12) Операция явного приведения типа. Правила преобразования операндов при вычислении выражений. Приоритет операций и порядок их выполнения.

Операция преобразования типа:

(тип) выражение

int a,b; //a=5,b=2 float z; z = a / b; //z=2 z = (float)a / (float)b; //z=2.5

Преобразование типов при вычислении выражений

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

Приоритет: long double

double

float

usigned long

int

char

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

Арифметические преобразования типов

Преобразования типов выполняются, если операнды, входящие в выражения,

имеют различные типы. Ниже приведена последовательность преобразований.

1. Любые операнды типа char, unsigned char или short преобразуются к типу int по правилам:

• char расширяется нулем или знаком в зависимости от умолчания для char;

• unsigned char расширяется нулем;

• signed char расширяется знаком;

• short, unsigned short и enum при преобразовании не изменяются;

• Затем любые два операнда становятся либо int, либо float, double или long

double.

2. Если один из операндов имеет тип long double, то другой преобразуется к типу long double.

3. Если один из операндов имеет тип double, то другой преобразуется к типу

double.

4. Если один из операндов имеет тип float, то другой преобразуется к типу

float.

5. Иначе, если один из операндов имеет тип unsigned long, то другой преобразуется к типу unsigned long.

6. Иначе, если один из операндов имеет тип long, то другой преобразуется к типу long.

6. Иначе, если один из операндов имеет тип unsigned, то другой преобразуется к типу unsigned.

7. Иначе оба операнда должны иметь тип i nt.

Тип результата тот же, что и тип участвующих в выражении операндов.

13) Структура С/С++– программы

Структура программы

Программа на языке C++ состоит из функций, описаний и директив препроцессора. Одна из функций должна иметь имя main(). Выполнение программы начинается с первого оператора этой функции. Простейшее определение функции имеет следующий формат:

тип_возвращаемого_значения имя ([ параметры ] ){

операторы, составляющие тело функции

}

Как правило, функция используется для вычисления какого-либо значения, поэтому перед именем функции указывается его тип.

• если функция не должна возвращать значение, указывается тип void:

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

скобки;

• функции не могут быть вложенными;

• каждый оператор заканчивается точкой с запятой (кроме составного оператора).

Пример структуры программы, содержащей функции main(), fl() и f2():

директивы препроцессора (начинаются с #)

описания вне функций

Int main(){ // или просто main()

операторы главной функции

}

int fl(){

операторы функции f l

}

int f2(){

операторы функции f2

}

Программа может состоять из нескольких модулей (исходных файлов).

Несколько предварительных замечаний о вводе/выводе. В языке C++ нет встроенных средств ввода/вывода — он осуществляется с помощью функций, типов и объектов, содержащихся в стандартных библиотеках. Используется два способа:

функции, унаследованные из языка С;

объекты C++.

Основные функции ввода/вывода в стиле С:

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

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

Они выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата format.

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

Пример общей структуры программы на C++:

// - директивы препроцессора

// часто используемые

# include … // подключение заголовочных файлов

# define // задание именованных констант и макросов

// - глобальное описание функций и переменных

int a,b;

char c;

double d[8];

void main (void);

float F1 (float x);

// - определение функций программы в любом порядке

float F1 (float x)

{return (2*x/(1+x*x));}

void main(void)

{float z,y;

scanf (“%f”,&z);

y=F1(z);

printf(“\n z=% 6.3f, f(z)=% 6.4f”, z,y);}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]