Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_СРСП_Программирование РЭС.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

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

Когда необходимо вы­полнить не один оператор, а несколько, следует использовать составной оператор.

Составной оператор – последовательность операторов, заключенная в фигурные скобки:

{

…

}

Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов.

Это важно

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

Пример 4.3 Проверка условия существования треугольника

В задание 3.9 была рассмотрена программа по определению площади треугольника. Однако, не при всех исходных данных программа выдает верный результат, т.к. не все тройки чисел образуют треугольник (например, треугольника со сторонами 1, 2, 4 не существует). Условие существование треугольника – сумма длин любых двух сторон треугольника больше длины третьей стороны. Дополним созданную программу условным оператором:

#include "stdafx.h"

#include<stdio.h>

#include<conio.h>

#include<math.h>

using namespace System;

int main(array<System::String ^> ^args)

{

int a,b,c;

float p,s;

printf("введите длины трех сторон треугольника\n");

scanf("%d %d %d",&a,&b,&c);

if (a+b<=c | b+c<=a | a+c<=b) printf("треугольник не существует");

else

{

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("площадь треугольника равна=%f",s);

}

getch();

return 0;

}

В данном примере представлена полная форма условного оператора. Проверяются условия a+b<=c | b+c<=a | a+c<=b. В случае выполнения хотябы одного выводится сообщение треугольник не существует, иначе – выполняется расчет площади. Т.к. после else необходимо выполнить три оператора, то их заключаем в фигурные скобки, тем самым объединяя их.

Задание 4.3

1 Откройте программу задания 3.9 и дополните ее условием существования треугольника.

2 Откройте программу задания 3.10 и исключите возможность ошибочного ввода данных (например, нулевого значения срока эксплуатации т.п.).

4.3 Вложенный оператор

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

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

Пример 4.4 Вложенное ветвление

Неполное вложенное ветвление:

y=1;

if (x,=0)

if (x==0) y=0;

else y=-1;

Полное вложенное ветвление:

if (x<=0)

if (x==0) y=0;

else y=-1;

else y=1;

Задание 4.4

Определите значение переменной r не вводя код программы. В чем заключается отличие программ?

Программа 1

Программа 2

int t=2, b=7, r=3;

if (t>b)

{if (b < r) r=b;}

else r=t;

printf("%d\n",r);

int t=2, b=7, r=3;

if (t>b)

if (b < r) r=b;

else r=t;

printf("%d\n",r);

Задание 4.5

Используя вложенные условные операторы, напишите программу решения квадратного уравнения.

Задание 4.6

Определить в каком квадранте находится точка с координатами x и y. Написать две программы: с использованием неполной формы условного оператора и вложенных условий.