Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_и_Пр_Бизнес_лекции.doc
Скачиваний:
84
Добавлен:
10.05.2015
Размер:
1.21 Mб
Скачать

2.2.6. Вычисление выражений

Выражение – это конструкция языка, вычисляющая значение. Выражения состоят из операндов и операций. Операции выполняются в определенном порядке в соответствии с их приоритетом, ассоциативностью (порядком выполнения операций одного приоритета) и формой (префиксная или постфиксная). Изменить порядок вычисления операций можно с помощью круглых скобок.

В языке С++ допускается в выражениях использовать операнды разных типов. Например, можно складывать два числа, одно из которых 16-разрядное, а другое 32-разрядное или одно целое, а другое вещественное. В этом случае перед вычислением выражения происходит автоматическое преобразование операндов к одному типу (неявное преобразование типов): более короткий тип преобразуется к более длинному, целый операнд преобразуется к вещественному. Преобразование очень естественно и выполняется таким образом, чтобы при вычислениях сохранить значимые разряды операндов и их точность. Исключением из этого правила являются операции присваивания, в которых всегда тип правого операнда преобразуется к типу левого операнда. При этом может происходить потеря точности и значимости (без выдачи сообщений). Полностью правила преобразования типов операндов приведены в [1, 2].

Примеры присваиваний:

int a=32768;

short b;

float c=1.2;

char z;

b=a; cout<<b<<endl; //-32768, потеря значимости

a=c; cout<<a<<endl; //1, потеря точности

c=a; cout<<c<<endl; //1

z=65; cout<<z<<endl; //А

Иногда при записи выражений требуется вместо неявного преобразования типов использовать явное преобразование. Например, необходимо найти среднее арифметическое значение нескольких целых чисел. Для таких случаев в языке С++ предусмотрены операции явного приведения типа. Существует две формы операции приведения типа:

  • каноническая форма: (тип) операнд;

  • функциональная форма: тип (операнд).

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

#include <iostream.h>

#include <conio.h>

void main()

{

int a, b, c;

float avg; //среднее арифметическое

cout<<”a, b, c? “;

cin>>a>>b>>c;

avg= float(a+b+c)/3;

cout<<”avg=“<<avg;

getch();

}

Тест:

a=4, b=5, c=4 результат: 4.3333

3. Структурное программирование

3.1. Общая характеристика операторов

Оператор – элемент текста программы, выражающий законченное действие. Любой алгоритмический язык содержит операторы, поддерживающие три алгоритмические структуры: следование, развилка, повторение. Для удобства программирования в языках содержится несколько реализаций алгоритмических структур, например, три оператора цикла или условный оператор и оператор выбора для программирования ветвлений. Язык С++ не является исключением. Кроме операторов, поддерживающих базовые алгоритмические структуры, в С++ есть и другие операторы, использование которых в некоторых случаях делает программу более простой. К таким операторам относятся: goto, break, continue, пустой оператор.

Язык С++ содержит 12 операторов. Все операторы заканчиваются точкой с запятой. Любой оператор может быть помечен меткой. Метка имеет имя и отделяется от оператора двоеточием, например, Met1: x=2;