Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Programmirovanie_-_1_kurs / Лекции (опорный конспект)

.pdf
Скачиваний:
69
Добавлен:
09.06.2015
Размер:
2.39 Mб
Скачать

4.4.Составной оператор

Составной оператор используется в тех случаях, когда необходимо выполнить несколько различных команд, но семантика языковой конструкции предполагает наличие единственного оператора

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

{

оператор1;

оператор2;

оператор3;

}

41

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

4.5.1Условный оператор if (1)

Оператор if позволяет реализовать конструкцию ветвления в программе и обеспечить выбор одного из альтернативных путей работы алгоритма в зависимости от результата проверки некоторого условия

 

1) if (a!=0)

if (условное_выражение) оператор;

{

 

x1

= x2/a;

 

 

y1

= y2/a;

 

z1

= z2/a;

 

}

 

2) if (a<0) a=0;

3) if (a!=0 && b!=0) x = c/(a*b);

4) if (a!=0)

{

x = x/a;

if (b!=0) y = y/(a*b);

}

42

 

4.5.1 Условный оператор if (2)

if (условное_выражение) оператор1;

else

оператор2;

1) // Определение максимального значения (a, b) if (a>b)

max = a;

else

max = b;

2) // Определение максимального значения (a, b, c) if (a>b && a>c)

max = a;

else

{

if (b>a && b>c) max = b;

else

max = c;

}

3) // Определение максимального значения (a, b, c) if (a>b && a>c)

max = a;

else if (b>a && b>c) max = b;

else

max = c;

43

4.5.2Условный оператор switch (1)

Оператор switch позволяет реализовать алгоритмическую конструкцию «выбор»

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

{

case значение1: оператор1.1; оператор1.2;

...

case значение2:

оператор2.1;

оператор2.2;

...

...

case значениеN: операторN.1; операторN.2;

...

default:

операторD.1;

операторD.2;

...

}

1) switch (a)

{

case 1:

cout << "Block 1\n"; case 2:

cout << "Block 2\n"; default:

cout << "Block Default\n";

}

a == 1

да

Вывод сообщения:

 

 

«Block 1»

 

 

 

 

 

 

нет

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a == 2

Вывод сообщения:

 

 

 

 

 

 

 

 

«Block 2»

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод сообщения:

 

 

 

 

«Block Default»

 

 

 

 

44

4.5.2Условный оператор switch (2)

3)switch (a)

{

case 1:

cout << "Block 1\n"; break;

case 2:

cout << "Block 2\n"; break;

default:

cout << "Block Default\n";

}

2) switch (a)

{

case 1: case 2:

cout << "Block 1 or 2\n"; break;

case 3:

cout << "Block 3\n";

}

45

4.5.3Условная операция

Условная операция ? используется для определения альтернативных значений внутри выражения

(условное_выражение)?значение1:значение2

//Определение максимального значения (a, b)

//Используем оператор if

if (a>b)

max = a;

else

max = b;

//Определение максимального значения (a, b)

//Используем условную операцию

max = (a>b)? a : b;

46

4.5.4. Пример программы с условным оператором

ax

2

+ bx + с = 0

 

 

#include <iostream>

 

 

 

 

#include <math.h>

 

 

 

 

 

 

 

 

 

 

#include <conio.h>

 

 

 

 

 

 

 

 

 

 

using namespace std;

 

 

 

 

 

 

 

 

 

 

void main()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

double a, b, c;

 

 

 

 

 

 

 

 

 

 

 

cout << "Введите a:\n";

 

 

 

 

 

 

 

 

 

 

 

cin >> a;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cout << "Введите b:\n";

 

 

 

 

 

 

 

 

 

 

 

cin >> b;

 

 

 

 

 

 

 

 

 

 

 

cout << "Введите c:\n";

 

 

 

 

 

 

 

 

 

 

 

cin >> c;

 

 

 

 

 

 

 

 

 

 

 

float D = b*b - 4*a*c;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if (D<0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cout << "Корней нет\n";

 

 

 

 

 

 

 

 

 

 

 

else if (D==0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

double x1 = -b/(2*a);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cout << "x = " << x1;

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

else

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

double d = sqrt(D);

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

double x2 = (-b-d)/(2*a);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cout << "x1 = " << x1 << "\nx2 = " << x2;

 

 

 

 

 

 

 

}

47

 

 

 

 

 

 

 

 

 

 

getch();

 

}

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

4.6.1.Оператор цикла for (1)

Оператор for позволяет реализовать арифметический цикл

Результат работы:

0

1

2

3

4

48

4.6.1. Оператор цикла for (2)

1)

2)

3)for (int i=2 ; i<10 ; i++

{

int i2 = i*i;

cout << i << " x " << i << " = " << i2 << "\n";

}

Результат работы: 2 x 2 = 4

3

x 3 = 9

 

4

x 4 = 16

 

5

x 5 = 25

 

6

x 6

= 36

 

7

x 7

= 49

 

8

x 8

= 64

49

9

x 9

= 81

 

4.6.2.Вложенные циклы

Цикл, содержащийся внутри другого цикла, принято называть вложенным циклом

1)

2)

for (int i=2; i<=5 ; i++)

{

for (int j=2; j<=5; j++)

{

int prv = i*j;

cout << i << " x " << j

<< " = " << prv << "\n";

}

}

1) 2 x 2 = 4 2) 2 x 2 = 4

2

x 3 = 6

2

x 3 = 6

2

x 4 = 8

2

x 4 = 8

2

x 5 = 10

2

x 5 = 10

3

x 2 = 6

3

x 3 = 9

3

x 3 = 9

3

x 4 = 12

3

x 4 = 12

3

x 5

= 15

3

x 5 = 15

4

x 4

= 16

4

x 2 = 8

4

x 5

= 20

4

x 3 = 12

5

x 5

= 25

4

x 4 = 16

 

 

 

4

x 5 = 20

 

 

 

5

x 2

= 10

 

 

 

5

x 3

= 15

 

 

 

5

x 4

= 20

 

 

 

5

x 5

= 25

 

 

 

 

 

 

 

 

50