Оператор условия 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;