Оператор условия if

Данный оператор записывается в формах:

а) сокращенная форма оператора условия:

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

б) полная форма оператора условия:

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

else оперaтop2;

выражение-условие – управляющее выражение (логическое или арифметическое выражение, отношение), которое используется только для проверки на равенство нулю. Каждый из операторов (оператор, оператор1, оператор2) может быть либо отдельным оператором, либо набором операторов.

В сокращенной форме оператора условия: если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор. Например:

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

В полной форме оператора условия: если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор1, при нулевом значении выражения-условия (т.е. ложно) выполняется оператор2. Например:

if (d>=0)

{

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

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

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

}

else cout<<"\nРешения нет";

 

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

Например:

#include <stdio.h>

void main ( ) {

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

if (t>b) {

if (b < r) r=b;

}

else r=t;

}

В результате выполнения программы r станет равным 2.

Если же в программе опустить фигурные скобки, стоящие после оператора if, то программа будет иметь следующий вид:

#include <stdio.h>

void main ( ) {

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

if (t>b)

if (b < r) r=b;

else r=t;

}

В этом случае r получит значение равное 3, так как ключевое слово else относится ко второму оператору условия if, который не выполняется, поскольку не выполняется условие, проверяемое в первом операторе условия if.

Короткий способ записи оператора if – условная операция. Форма записи оператора следующая:

выражение1 ? выражение2 : выражение3;

Выражение1 должно быть целого или плавающего типа или указатель. Если значение выражения1 отлично от нуля (истинно), то результатом операции является значение выражения2. Если выражение1 равно нулю (ложно), то вычисляется выражение3, и его значение является результатом операции.

Например: Нахождение максимального из двух значений и сохранение его в переменной max.

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

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

Пример 1: Введите три целых числа и выведите наибольшее из них на печать.

#include <stdio.h>

void main() {

int x1, x2, x3;

printf("Введите 3 числа \n");

scanf("%d %d %d", &x1, &x2, &x3);

if ((x1>x2)&&(x1>x3))

printf("наибольшее число %d", x1);

if ((x2>x1)&&(x2>x3))

printf("наибольшее число %d", x2);

if ((x3>x2)&&(x3>x1))

printf("наибольшее число %d", x3);

}

Пример 2: Введите три целых числа и выведите их на печать в порядке возрастания.

#include <stdio.h>

void main() {

int x, y, z;

printf("x="); scanf("%d",&x);

printf("y="); scanf("%d",&y);

printf("z="); scanf("%d",&z);

printf("\nРезультат: \n");

if (x>y)

if (y>z) {

printf("z=%d\n",z);

printf("y=%d\n",y);

printf("x=%d\n",x);

}

else {

printf("y=%d\n",y);

if (x>z) {

printf("z=%d\n",z);

printf("x=%d\n",x);

}

else {

printf("x=%d\n",x);

printf("z=%d\n",z);

}

}

else

if (x>z) {

printf("z=%d\n",z);

printf("x=%d\n",x);

printf("y=%d\n",y);

}

else {

printf("x=%d\n",x);

if (y>z) {

printf("z=%d\n",z);

printf("y=%d\n",y);

}

else {

printf("y=%d\n",y);

printf("z=%d\n",z);

}

}

}

 

Задания

1.Составить программу проверяющую, можно ли из отрезков с длинами x, y, z, построить треугольник.

2.Вычислить

3.На плоскости даны квадраты со стороной а, одна из вершин которых расположена в начале координат. Определить является ли точка с координатами (x, y) точкой пересечения диагоналей одного из таких квадратов.

Домашние задания

1.Наберите коды программ из Примеров 1 и 2. Сохраните коды программ. Выполните компиляцию и запуск программ. Введите свои данные в качестве входных.

2.Составить программу поиска суммы минимального и максимального из трех введенных чисел.

3.Вычислить

4.Определить лежит ли точка с координатами (x, y) вне круга радиуса r с центром в точке (a, b) или внутри него.









Дата добавления: 2015-02-16; просмотров: 864;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.