Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТТП (методичка).doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.24 Mб
Скачать
  1. Управляющие структуры

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

Для реализации управляющих структур используются логические выражения. Как уже отмечалось выше, логическое выражение в качестве результата вырабатывает значение типа int (истина = 1, ложь = 0).

    1. Операторы ветвления

К операторам ветвления в Си относятся if (if — если), if else (else — иначе), тренарный оператор ?:, switch (switch — переключить, case — случай). Ниже приведен общий вид операторов ветвления.

if (логическое выражение)

оператор_1;

Если значение логического выражения истинно, то выполняется оператор_1, иначе следующий за if оператор.

if (логическое выражение)

оператор_1;

else

оператор_2;

Если значение логического выражения истинно, то выполняется оператор_1, иначе выполняется оператор_2.

(логическое выражение) ? (выражение_1) : (выражение_2);

Если значение логического выражения истинно, то вычисляется выражение_1, иначе вычисляется выражение_2.

switch (выражение целого типа)

{

case значение_1:

последовательность_операторов_1;

break;

...

case значение_n:

последовательность_операторов_n;

break;

default:

последовательность_операторов_n+1;

}

Если значение выражение совпадает с одним из значений ветвей case, то производится выполнения последовательности операторов данной ветви до тех пор, пока не встретится оператор break. Ветка default (значение по умолчанию) выполняется, если ни одно из значений case не равно значению выражения. Ветку default можно не описывать.

Листинг 11 — Использование операторов ветвления

/* branch.c – пример использования операторов ветвления */

#include <stdio.h>

#include <conio.h>

void main()

{

float a1, a2, m;

clrscr();

printf(“\nВведите два числа: ”);

scanf(“%f %f”, &a1, &a2);

if (a2 != 0)

printf(“\n%f делить на %f равно %f”,

a1, a2, a1 / a2);

if (a1 > a2)

printf(“\nЧисло %f больше %f”, a1, a2);

else

printf(“\nЧисло %f меньше или равно %f”, a1, a2);

m = (a1 > a2) ? a1 : a2;

printf(“\nМаксимальное из двух чисел: %f”, m);

}

Рисунок 26 — Результат выполнения программы branch.c

Листинг 12 — Использование оператора ветвления switch

/* switch.c – пример использования оператора switch */

#include <stdio.h>

#include <conio.h>

void main()

{

int mark;

clrscr();

printf(“\nВведите оценку: ”);

scanf(“%d”, &mark);

printf(“\nВаша оценка: ”, mark);

switch (mark) {

case 1:

case 2:

printf(“неудовлетворительно”);

break;

case 3:

printf(“удовлетворительно”);

break;

case 4:

printf(“хорошо”);

break;

case 5:

printf(“отлично”);

break;

default:

printf(“неправильная”);

}

}

Рисунок 27 — Результат выполнения программы switch.c