Оператор if - проверка на логическо условие

Разклонен алгоритъм се реализира чрез логически оператор if: Приложение на оператор if - при проверка за изпълнение на просто или съставно условие. Нека припомним някои оператори за сравнение:

== логическо условие за равенство;
!= логическо условие за неравенство;
|| логически оператор AND - при изпълнение на всички условия
! логически оператор NOT - отрицание
&& логически оператор OR - при изпълнение на поне едно условие

При проверка за изпълнение на дадено условие оператор if действа като логически оператор - резултатът може да бъде само 0 или 1. Операторът за проверка на логическо условие if име следния синтаксис: if (условие) {<съставен оператор при изпълнение >} else {<съставен оператор за останалите случаи>}. Частта ( условие ) включва проверка изпълнение на просто или съставно условие. В зависимост от конкретния алгоритъм в един оператор if може да се съдържа проверка за един тип релация: по-голямо, по-малко, равно, различно. При съставно условие в един оператор if са включени проверки за две или повече релации. Отделните условия в оператор if се свързват с логически оператори като OR, AND, 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 

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.


Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: