Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_na_c.pdf
Скачиваний:
125
Добавлен:
06.02.2015
Размер:
665 Кб
Скачать

3.1.1. Основные операторы языка С++

3.1.1.1. Базовые конструкции структурного программирования

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

В теории программирования доказано, что программу для решения задачи любой сложности можно составить только из трех структур [4]:

1.Линейная.

2.Разветвляющаяся.

3.Циклическая.

Эти структуры называются базовыми конструкциями структурного программирования.

Линейной называется конструкция, представляющая собой последовательное соединение двух или более операторов.

Ветвление – задает выполнение одного из двух операторов, в зависимости от выполнения какого либо условия.

Цикл – задает многократное выполнение оператора.

62

Таблица 10 Отображение базовых конструкций на блок-схеме

Следование

Ветвление

Цикл

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

Операторы управления работой программы называют управляющими конструкциями программы. К ним относят:

1)составные операторы;

2)операторы выбора;

3)операторы циклов;

4)операторы передачи управления.

3.1.1.2.Составные операторы

Ксоставным операторам относят: 1) собственно составные операторы; 2) блоки.

В обоих случаях это последовательность операторов, заключенная

вфигурные скобки. Блок отличается от составного оператора наличием определений в теле блока.

Пример 22. Составной оператор

{

n++;

summa+=n;

}

Пример 23. Блок

63

{

int n=0; n++; summa+=n;

}

Отличием примера 22 от примера 21 является наличие определения переменной n.

3.1.1.3.Операторы выбора

Коператорам выбора относятся: 1. условный оператор; 2. переключатель.

Условный оператор

Условный оператор имеет полную и сокращенную форму. Сокращённая форма используется, если в задаче имеется более

двух условий.

Сокращенная форма для условного оператора имеет вид [1]: if (выражение-условие ) оператор;

В качестве выражения-условия могут использоваться арифметическое выражение, отношение и логическое выражение. Если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор, следующий за условным.

Полная форма используется, если в задаче необходимо выполнение задачи при наличие двух условий.

Полная форма для условного оператора имеет вид: if ( выражение-условие ) оператор1;

else оператор2;

Если значение выражения-условия отлично от нуля, то выполняется оператор1, при нулевом значении выражения-условия выполняется оператор2.

Пример 24

1)if (a<0) b = 1;// 1

2)if (a<b && (a>d || a==0)) b++; else {b* = a; a = 0;}// 2

3)if (a<b) {if (a<c) m = a; else m = c;} else {if (b<c) m = b; else m = c;}// 3

64

В пункте 1) примера 24 отсутствует ветвь else. Подобная конструкция называется «пропуск оператора», поскольку присваивание либо выполняется, либо пропускается в зависимости от выполнения условия.

Если требуется проверить несколько условий, их объединяют знаками логических операций. Например, выражение в пункте 2) примера 24 будет истинно в том случае, если выполнится одновременно условие a<b и одно из условий в скобках. Если опустить внутренние скобки, будет выполнено сначала логическое И, а потом – ИЛИ.

Оператор в пункте 3) примера 24 вычисляет наибольшее значение из трех переменных. Фигурные скобки в данном случае не обязательны.

Пример 25 if (d>=0)

{

x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a);

cout<< “\nx1=”<<x1<<“x2=”<<x2;

}

else cout<<“\nРешения нет”;

Переключатель

Переключатель определяет множественный выбор. Общая форма для записи переключателя имеет вид [4]:

switch (выражение)

{

case константа1 : оператор1 ; case константа2 : оператор2 ;

. . . . . . . . . . .

[default: операторы;]

}

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

65

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