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

ТЕМА №6. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ: ОПЕРАТОРЫ УПРАВЛЕНИЯ.

Основные виды операторов - операторы циклов, условных и безусловных переходов, оператор выбора. Вспомогательные операторы. Простейшие операторы консольного ввода - вывода.

Лекция «Структурное программирование: операторы управления» посвящена знакомству с языком С++. В данной лекции приводятся к изучению основные виды операторов – операторы циклов, условных и безусловных переходов, оператор выбора, вспомогательные операторы, а так же простейшие операторы консольного ввода - вывода.

Операторы циклов.

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

Для удобства, а не по необходимости, в C++ есть три разных оператора цикла — while, do while и for.

  1. Цикл с предусловием имеет вид: while (выражение) оператор.

Выражение определяет условие повторения тела цикла, представленного про­стым или составным оператором. Выполнение оператора начинается с вычисле­ния выражения. Если оно истинно (не равно false), выполняется оператор цик­ла. Если при первой проверке выражение равно false, цикл не выполнится ни разу.

Пример кода программы (программа находит все делители целого положительного числа)

#inclucle <iostream.h>

int main(){

int num:

cout « "\nВведите число : ": cin » num:

int half = num / 2: / / половина числа

int div = 2: // кандидат на делитель

while (div <= half){

i f (!(num % div))cout « div «"\n":

div++:

}

return 0:

  1. Цикл с постусловием имеет вид: do оператор while (выражение).

Сначала выполняется простой или составной оператор, составляющий тело цик­ла, а затем вычисляется выражение. Если оно истинно (не равно fаlse), тело цик­ла выполняется еще раз. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управле­ния.

Пример кода программы (программа осуществляет проверку ввода)

#include <iostream.h>

int main(){

char answer;

do{

cout « "\nКупи слоника! ": cin » answer;

}while (answer != 'y');

return 0;

}

  1. Цикл с параметром.

Цикл с параметром имеет следующий формат: for (инициализация: выражение: модификации) оператор. Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько опе­раторов, разделенных запятой (операцией «последовательное выполнение»).

Пример кода программы (оператор, вычисляющий сумму чисел от 1 до 100)

for (int 1 = 1. s = 0: 1<=100; 1++) s += 1;

Областью действия переменных, объявленных в части инициализации цикла, яв­ляется цикл. Инициализация выполняется один раз в начале исполнения цикла. Выражение определяет условие выполнения цикла. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла.

Операторы условных и безусловных переходов.

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

Данный оператор используется для разветвления процесса вычислений на два направления. Формат оператора: if (выражение) оператор_1; [else оператор_2;].

Оператор if позволяет определить действие при истинном условии, т.е. если логическое_выражение имеет значение true, выполняется составной_оператор_1, а если логическое_выражение имеет значение false, то управление передается следующему оператору после оператора if.

Пример кода программы

if (a<) b = 1;

  1. Условный оператор двойного выбора if…else

Оператор if…else применяется для того чтобы в зависимости от конкретных значений исходных данных обеспечить выполнение двух разных составных операторов. Формат оператора: if (логическое_выражение) {составной_оператор_1;} else {составной_оператор_2; }.

Оператор if else позволяет определить программисту действие, когда условие истинно и альтернативное действие, когда условие ложно, т.е. если логическое_выражение имеет значение true, то выполняется составной_оператор_1, а если логическое_выражение имеет значение false, то выполняется составной_оператор_2. Так как логическое_выражение не может одновременно иметь значения true и false, то составной_оператор_1 и составной_оператор_2 не могут выполняться оба. После выполнения составной_оператор_1 или составной_оператор_2 управление передается следующему оператору после оператора if.

Пример кода программы

i f (a<b && (a>b || a==0)) b++: else {b *= a: a = 0}

if (b>a) max = b: else max = a:

  1. Оператор безусловного перехода

Оператор goto имеет формат: goto метка. В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор.

Оператор goto передает управление на помеченный оператор. Метка — это обыч­ный идентификатор, областью видимости которого является функция, в теле ко­торой он задан.

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

В остальных случаях для записи любого алгоритма существуют более подходя­щие средства, а использование goto приводит только к усложнению структуры программы и затруднению отладки. Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из кото­рых состоит программа, должны иметь только один вход и один выход. В любом случае не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию пере­менных, на операторы, расположенные после нее, поскольку в этом случае ини­циализация не будет выполнена.

Пример кода программы

int к: ...

goto metka: ...

{int а = 3. b = 4;

к = а + b:

metka: int m = к + 1; ...

}

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