- оператор функция
- функция abs
- функция atof
- функция atoi
- функция atol
- оператор break
- оператор case
- функция cell и floor
- функция cin и cout
- функция clock
- оператор const
- оператор continue
- оператор default
- оператор define
- функция div
- оператор do
- функция fgetc
- функция fgets
- оператор for
- функция fprintf
- функция freopen
- функция fseek
- функция fwrite
- оператор if
- оператор itoa
- функция ltoa
- функция main
- функция setprecision и setw
- манипулатори oct, hex
- функция modf
- функция pow
- функция printf
- функция puts
- функция rand
- функция scanf
- функция sin - синус и cos - косинус
- функция sizeof
- функция sqrt
- функция srand
- функция strcat
- функция strchr
- функция strcmp
- функция strcoll
- функция strcspn
- функция strlen
- функция strcpy и strncpy
- функция strrev
- оператор struct
- функция strlwr и strupr
- оператор switch
- функция tan - тангенс
- функция tmpnam
- функция tolower и toupper
- функция void
- оператор while
- съпоставяне do и while
оператор if - проверка на логическо условие
Разклонен алгоритъм се реализира чрез логически оператор if: Приложение на оператор if - при проверка за изпълнение на просто или съставно условие. Нека припомним някои оператори за сравнение:
== логическо условие за равенство;!= логическо условие за неравенство;
|| логически оператор AND - при изпълнение на всички условия
! логически оператор NOT - отрицание
&& логически оператор OR - при изпълнение на поне едно условие
При проверка за изпълнение на дадено условие оператор if действа като логически оператор - резултатът може да бъде само 0 или 1. Операторът за проверка на логическо условие if има следния синтаксис: if (условие) {<съставен оператор при изпълнение >} else {<съставен оператор за останалите случаи>}. Частта ( условие ) включва проверка изпълнение на просто или съставно условие. В зависимост от конкретния алгоритъм в един оператор if може да се съдържа проверка за един тип релация: по-голямо, по-малко, равно, различно. При съставно условие в един оператор if са включени проверки за две или повече релации. Отделните условия в оператор if се свързват с логически оператори като OR, AND, NOT. Частта {< съставен оператор при изпълнение >} може да бъде празен, единичен или съставен оператор. Прилагане на ! - логически оператор NOT обръща резултата от проверката. При използване на оператор if е препоръчително заграждане във фигурни скоби на частта { съставен оператор при изпълнение }. Това допринася за подобряване прегледността на кода и намалява броя логически грешки при разклонени алгоритми - използващи оператор if. Ако операторът в else е празен оператор не е необходимо да се изписва. Нека разгледаме единствената триаргументна операция в C++. Операторът ? се нарича „троичен" (ternary), тъй като изисква три операнда. Той има следната обща форма: изр_1 ? изр_2 : изр_3
където изр_1, изр_2 и изр_3 са изрази. Обърнете внимание на употребата и местоположението на двоеточието. Стойността на израза ? се определя по следния начин. Оценява се изр_1. Ако той е верен, се изпълнява изр_2, който става стойност на целия израз ?. Ако изр_1 е неверен, тогава се изпълнява изр_3 и неговата стойност става такава на целия израз.В следващата програма редът: if (a>b ? (mas[i][0]=b, mas[i][1]=a ) : (mas[i][0]=a, mas[i][1]=b )); прави следното:
ако a>b (mas[i][0]=b, mas[i][1]=a ) в противен случай (mas[i][0]=a, mas[i][1]=b)
В блок схема обозначението за проверка на логическо условие е ромб - входът е върха, а встрани или отдолу са изходите.
двойка числа - оператор if
Съществуват множество случаи, в които се изисква сравняване на въведени данни от един и същи тип. Да разгледаме следната примерна задача за логическо условие: Трябва да се въведат две естествени числа a,b и да се изведе вида релация. Възможни са три отделни случая: a < b; a = b; и a > b.
Следващата примерна програма извършва последователно проверка на логическо условие по трите възможни релации чрез оператор if:
#include <iostream>
using namespace std;
int main ()
{ int a,b;
cout<<"Imate dwe estestweni chisla a,b ot interwala [1..101].\n";
cout<<"Da se izwede syobshenie za wida relaciq a<b; a=b; a>b.\n";
cout<<"Primer: a = 5, b = 4 Izhod: 5>4\n";
cout<<"Wywedete a: ";cin>>a;
cout<<"Wywedete b: ";cin>>b;
if (a<b) cout<<a<<" < "<<b;
if (a==b) cout<<a<<" = "<<b;
if (a>b) cout<<a<<" > "<<b;
cout<<endl;
system ("pause");
return 0;
}// kraj programa operator if
тернарен оператор if
Нека разгледаме малко по-усложене вариант на предходната задача. Имаме множество двойки естествени числа въведени в двумерен масив. Програмата трябва да изведе същите числа, но за всеки ред се извежда по-малкото от двете числа. Проверката за релация по-малко или равно се осъществява чрез цикъл с вложен оператор if проверяващ изпълнение на логическо условие.
Следващият пример дава решение на задача за проверка на логическо условие с оператор if:
#include <iostream>
using namespace std;
const int broi=5;//N broj redowe
int main ()
{ int mas[broi][2];
int i,j,a,b;
cout<<"Imate dwumeren masiw s N reda i 2 koloni. N e estestweno chislo [3..9].\n";
cout<<"Da se systawi programa, chrez koqto se wywevdat dwojki estestweni chisla\n";
cout<<"ot interwala [11..99]. Programata da wywvda po-malkoto chislo w lqwata\n";
cout<<"kolona, a po-golqmoto chislo w dqsnata kolona. Da se izwedat wsichki \n";
cout<<"wywedeni danni\n";
//Wywevdane na danni
for (i=0;i<broi;i++)
{cout<<"Wywevdate red: "<<i+1<<endl;
cout<<"Wywedete chislo a: ";cin>>a;
cout<<"Wywedete chislo b: ";cin>>b;
//izbira po-malkoto chrez operator if
if (a>b ? (mas[i][0]=b, mas[i][1]=a ) : (mas[i][0]=a, mas[i][1]=b ));// ternaren operator if
} // for i
cout<<"Izwevdam sydyrvanieto na matricata:\n";
for (i=0;i<broi;i++)
{ for (j=0;j<2;j++) {cout<<mas[i][j]<<"; "; }//for j
cout<<endl;
}// for i
system("pause");
return 0;
}//kraj na programa za operator if
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.