Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование программ и программирование на С++ Часть 1. Структурное.pdf
Скачиваний:
18
Добавлен:
15.11.2022
Размер:
3.8 Mб
Скачать

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

В теории программирования доказано, что программу для ре­ шения задачи любой сложности можно составить только из трех структур: линейной, разветвляющейся и циклической. Эти структу­ ры называются базовыми конструкциями структурного программи­ рования (рис. 7).

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

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

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

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

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

-составные операторы;

-операторы выбора;

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

-операторы перехода.

Любое выражение, заканчивающееся точкой с запятой, рассмат­ ривается как оператор, выполнение которого заключается в вычисле­ нии этого выражения. Частным случаем выражения является пустой оператор « ;» (точка с запятой).

i++;

а+=2;

х=а+Ь;

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

Ксоставным операторам относят собственно составные операто­ ры и блоки. В обоих случаях это последовательность операторов, заключенная в фигурные скобки. Блок отличается от составного опе­ ратора наличием определений в теле блока.

{

//это составной оператор

п++;

summa+=n;

 

int

n=0;

п++;

//это блок

summa+=n;

}

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

Операторы выбора - это условный оператор и переключатель. I. Условный оператор имеет полную и сокращенную форму,

if (выражение-условие) оператор;//сокращенная форма

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

if (x<y&&x<z)min=x;

if (выражение-условие) оператор1;//полная форма else оператор2;

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

i f (d>=0)

{

xl=(-b-sqrt(d))/(2*а); х2=(-b+sqrt(d))/(2*а);

cout<< "\nxl="<<xl<<"x2="<<x2;

}

e l s e co u t« "\n P em eH M 4 н е т " ;

2. Переключатель определяет множественный выбор. s w itc h (выражение)

{

 

c a s e к о н стан та1

о п ератор1

c a s e к о н стан та2

оп ер ато р 2

[ d e f a u l t : о п е р а т о р ы ;]

}

При выполнении оператора s w itc h вычисляется выражение,

записанное после s w itc h , оно должно быть целочисленным. Полу­ ченное значение последовательно сравнивается с константами, кото­ рые записаны следом за c a s e . При первом же совпадении выполня­ ются операторы, помеченные данной меткой. Если выполненные операторы не содержат оператора перехода, то далее выполняются операторы всех следующих вариантов, пока не появится оператор перехода или не закончится переключатель. Если значение выраже­ ния, записанного после s w itc h не совпало ни с одной константой,

то выполняются операторы, которые следуют за

меткой d e f a u l t .

Метка d e f a u l t

может отсутствовать.

 

#in c lu d e

d o s t г earn. h>

 

 

v o id m a in ()

 

 

{

 

 

 

 

i n t

i ;

 

 

 

c o u t< < M\n E n te r th e

n u m b er";

 

c i n » i

;

 

 

s w i t c h ( i )

 

 

{

 

 

 

 

c a s e

1: c o u t « " \ n t h e

num ber i s

o n e " ;

c a s e 2 : c o u t « " \ n 2 * 2 = " < d * i ;

case 3: cout«"\n3*3="<<i*i;break; case 4: cout«f,\ n " « i « " is very

beautiful!";

default:cout«,f\nThe end of work";

}

}

Результаты работы программы: 1. При вводе 1 будет выведено:

The number is one

2 * 2=1

3*3=1

2. При вводе 2 будет выведено:

2*2=4

3*3=4

3.При вводе 3 будет выведено:

3*3=9

4.При вводе 4 будет выведено:

4is very beautiful!

5.При вводе всех остальных чисел будет выведено:

The end of work

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

• Цикл с предусловием:

while (выражение-условие)

оператор;

В качестве в ы р аж ен и я -у сло ви я чаще всего используется от­ ношение или логическое выражение. Если оно истинно, т.е. не равно 0, то тело цикла выполняется до тех пор, пока выражение-условие не станет ложным.

while (а !=0)

{

cin>>a;

s+=a;

}

• Цикл с постусловием: do

оператор

while (выражение-условие);

Тело цикла выполняется до тех пор, пока выражение-условие истинно.

do

{

cin>>a;

s+=a;

}

while(a!=0);

• Цикл с параметром:

for (выражение_1;выражение-условие;выражение_3)

оператор;

Выражение_1 и выражение_3 могут состоять из нескольких выражений, разделенных запятыми. Выражение_1 - задает началь­ ные условия для цикла (инициализация). Выражение-условие оп­ ределяет условие выполнения цикла, если оно не равно 0, цикл вы­ полняется, а затем вычисляется значение выражения_3. Выражение_3 - задает изменение параметра цикла или других переменных (коррекция). Цикл продолжается до тех пор, пока выражение-условие не станет равно 0. Любые выражения могут отсутствовать, но разде­ ляющие их « ; » должны быть обязательно.

1.

for (п=10; п>0; п--)// Уменьшение параметра

{

оператор;

}

2 .

for (п=2; п>60; п+=13)// Изменение шага //корректировки

{

оператор;

}

3.

for (num=l;num*num*num<216; num++)//проверка //условия отличного от того, которое налагается на

//число итераций

{

оператор;

}

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