ü Присвоением значения выражения правой части оператора присвоения, переменной левой части оператора присвоения.
ü Передачей фактических параметров функции.
ü Возвратом результата функции.
Система ввода/вывода определяет, соответствует ли код цифре или символу.
Стрелки задают порядок автоматического приведения типов.
Преобразование при выполнение арифметических операций производятся в соответствии с иерархией типов. В остальных случаях может быть преобразование одного типа в любой требуемый тип. При этом может быть преобразование, изменяющее машинное преобразование значения и преобразование, которое не изменяет машинного представления.
Можно принудительно преобразовать типы явным образом через механизм приведения типов: имяТипа (значение);происходит преобразование значения в тип имяТипа.
Например:
#include <iostream>
int mane ()
{
using namespace std;
int auks, coots;
auks = 19.99 + 11.99;//результат усекается до целого - 31
//следующий оператор суммирует целочисленные значения
cout << “The code for ” << ch << “ is ”; // вывод в формате char
cout << int(ch) << endl; // вывод в формате int
return 0;
}
Результат выполнения программы:
auks = 31, coots = 30
The code for Z is 90
На языке С++ можно расширить возможности последовательности вложенных условий с помощью оператора варианта switch,который позволяет легко обработать выбор альтернативы из их большого списка.
Формат:
{
“case” метка 1 “:” [оператор 1 “;”] [“break” “;”]
… … … … … … … … … … … … … … … …
“case” метка n “:” [оператор n “;”] [“break” “;”]
[“default” “:” операторы “;” ]
}
(B) – константное выражение (селектор) символьного или целого типа определяющее одну из меток стоящих после ключевого слова “case”.
метка 1 … метка n - константы целого и символьного типа, совпадающие по типу с селектором.
оператор 1 … оператор n – пустой, простой, структурированный, составной оператор, который выполняется при выборе соответствующей метки.
“default” – имеет значение иначе (else), операторы после “default” выполняются, если результат (B) не совпал ни с одной меткой.
Константное выражение - это выражение вычисляющееся во время компиляции.
Алгоритм выполнения:
1. Вычисляется B;
2. Это значение сравнивается с каждой из меток:
a) если значение селектора равно метке, то выполняется соответствующие операторы. Далее возможны варианты:
v если присутствует “break”, то действия переходят на оператор, стоящий за оператором “switch”;
v если оператора “break” нет, то выполняются все операторы, при всех метках, в порядке написания и после “default”;
б) если значение селектора не совпало с первой меткой, то действия переходят на распознание следующей метки, пропуская выполнение операторов нераспознанных меток;
в) если значение селектора не совпало ни с одной меткой, то выполняются операторы, стоящие после “default”.
Оператор switch действует как маршрутизатор, который сообщает компьютеру, какую строку кода использовать следует.
Обязательное условие для выполнения оператора:
При входе в оператор switch переменные, участвующие в селекторе, должны иметь конкретные значения
Селектор и альтернативы должны совпадать по типу. Тип возможен только целочисленный, символьный или перечисляемый.
выбор при n = 1: y := sin(x) при n = 2: y := cos(x) при n = 3: y := 0 Все
выбор при a > 5: i := i+1 при a = 0: j := j+1 иначе i := 10; j:=0 Все
Цикл – это инструкция, в которой оператор или группа операторов, написанные один раз, выполняются нужное число раз. Существуют три циклические инструкции: - это цикл по счетчику, цикл с предусловием, цикл с постусловием,.
Цикл по счётчику
.
Если по ходу выполнения алгоритма программы операторы или оператор должны быть выполнены нужное число раз, то организуется цикл по счетчику.
Формат оператора цикла по счетчику:
“for” (сп1 “;”сп2 “;” сп3) <тело цикла> “;”
сп1 – инициализирующая часть оператора,, т.е.список операторов выполняются один раз, до начала исполнения тела цикла, используются для установки начальных значений параметров цикла.
сп2 – проверочное выражение, т.е. список операторов и выражений для проверки конца цикла; выполняется перед каждым выполнением тела цикла:
a) если сп2!=0 (true) , то тело цикла выполняется;
b) если сп2=0 (false), то тело цикла завершается и действие переходит на оператор, стоящий после тела цикла.
сп3 – обновляющее выражение, т.е. список операторов или выражений, для корректировки параметров цикла; выполняются после каждого выполнения тела цикла.
<тело цикла> - простой, составной или структурированный оператор.
Алгоритм работы оператора:
1. Выполняется сп1 .
2. Выполняются операторы и выражения сп2, анализируются значения последнего выражения сп2:
· если оно истинно (! = 0), то тело цикла выполняется;
· если ложно (= 0), то действие переходит на оператор стоящий за телом цикла (если оно с первого раза ложно, то тело цикла не выполняется не разу).
3. После выполнения тела цикла выполняются операторы и выражения сп3, затем переходим к пункту 2.
4. Появление в любом месте тела цикла “continue” даёт переход на пункт 3, т.е. выполняем сп3.
5. Появление в любом месте тела цикла “break” вызывает прекращение работы цикла и действия переходят на оператор, стоящий за телом цикла.
Обязательные условия для выполнения оператора:
1. при входе в оператор, переменные участвующие в заголовке, должны иметь конкретные значения.
2. любое сп может быть опущено, но обязательно присутствие двух “;”
3. выражения внутри оператора for могут отсутствовать. В этом случае оператор
for ( ; ; ) представляет собой бесконечный цикл.
4. если отсутствует сп2, то результат проверки “истина” – всегда.
Примеры использования оператора for:
#include <iostream>
using namespace
static const int N = 10 ;
int main()
{ //определим сумму
for ( int x = 1, sum = 0 ; x < N + 1 ; ++x )
sum += x ; // sum увеличивается на x
cout << sum << endl ; // выводится 5
……//определим степень числа
for ( int x = 5, sum = 1, int i=0; i < N ; i++ )
sum *= x ; // sum увеличивается в 5 раз
cout << sum << endl ; // выводится 5 в степени 10
//Напечатаем алфавит //
for (ch = ‘A’; ch <= ‘Z’; ch ++);
cout << ch<< “__”;
}
Если по ходу выполнения алгоритма программы, необходимо выполнять группу операторов или оператор в одном и том же месте программы, до тех пор пока позволяет условие, можно организовать цикл с предусловием. Данный цикл схож с циклом по счетчику, у которого удалены инициализирующая и обновляющая части.
Формат оператора:
“while” (B(x)) <тело цикла> “;”
B(x) – выражение любого типа.
<тело цикла> - простой, составной, структурированный. Обязательно существует оператор изменяющий условие.
Алгоритм работы оператора:
1. Выполняется выражение (B(x)):
a. если выражение истинно, то выполняется <тело цикла>;
b. если выражение ложно, то переходим на оператор за телом цикла.
2. Если выражение представляет собой константа true, то цикл выполняется вечно.
3. Если выражение представляет собой константа false, то цикл не выполняется ни разу, т.о. цикл с предусловием может не выполнится ни разу или необходимое число раз.
Обязательные условия для выполнения оператора:
1. при входе в оператор, переменные участвующие в проверочном условии, должны иметь конкретные значения;
2. в теле цикла должен присутствовать обязательный оператор, который изменяет значения переменных участвующих в проверочном условии таким образом, чтобы это условие стало ложным.