You are on page 1of 16

СТРУКТУРА ЗА ИЗБОР ОД

ДВЕ МОЖНОСТИ

ТЕМА:
ПРОГРАМИРАЊЕ ПРЕКУ СТАНДАРДЕН
СТРУКТУРЕН ПРОГРАМСКИ ЈАЗИК
С++

НАСТАВНИК ПО ИФОРМАТИКА:
ВИОЛЕТА ДУРЛАНОВА
 Структурата за избор од две можности
(разгранета структура) овозможува
различен тек на програмата зависно од
резултатот на поставениот услов. Ако
изразот во условот е точен тогаш ќе се
изврши некоја наредба, а ако изразот не е
точен таа наредба нема да се изврши. А
може но не мора да се изврши друга
наредба.
 Разгранувањето може да биде еднократно
и двократно.
 Еднократно разгранување

 Ова е наједноставна форма на разгранета


структура: ако некој услов е исполнет ќе
се изврши некоја наредба, во спротивно
таа наредба нема да се изврши.
 Со следниот исказ се проверува дали дадениот број x е
негативен:
По овој
исказ не се
if (x<0) става ;
cout<<“Brojot ”<<x<<“ e negativen”;

 Ако x има негативна вредност на пример -10, логичкиот


израз x<0 ќе биде точен, односно ќе има вредност 1, па ќе
се изврши исказот: cout<<“Brojot ”<<x<<“ e negativen”;. На
екранот ќе се прикаже: Brojot -10 e negativen.
 Ako x нема негативна вредност на пример 10, логичкиот
израз x<0 ќе биде неточен, односно ќе има вредност 0, па
исказот: cout<<“Brojot ”<<x<<“ e negativen”; нема да се
изврши. На екранот ништо нема да се прикаже.

Исказот може да се запише и како:


if (x<0) cout<<“Brojot ”<<x<<“ e negativen”;
но се запишува како претходниот начин заради прегледност.
Пример 1: Напиши програма со која треба да се провери
дали променливата delitel е еднаква на 0:

Внимавај!
Овде се
користи ==, а
не =

Ако променливата delitel има вредност 0, програмата ќе не


извести дека со нула не се дели.
 Двократно разгранување

 Двократното разгранување значи: ако некој


услов е исполнет ќе се изврши некоја наредба,
во спротивно таа наредба нема да се изврши
туку ќе се изврши друга наредба.
 Со следниот исказ се проверува дали даден цел број е
позитивен и се прикажува соодветна порака:

if (x<0)
cout<<“Brojot ”<<x<<“ e negativen”<<endl;
else

cout<<“Brojot ”<<x<<“ ne e negativen”<<endl;

 За x=-8 ќе се изврши наредбата по if и ќе се прикаже


пораката: Brojot -8 e negativen.
 За x=8 ќе се изврши наредбата по else и ќе се прикаже
пораката: Brojot 8 ne e negativen.

 Важно: По изразите if и else не се става точка и запирка (;)


Пример 2: Напиши програма која за два дадени различни
цели броја го прикажува поголемиот број:
Пример 2: Напиши програма која проверува дали
дадениот број е едноцифрен:
(Значи едноцифрен е ако е поголем и еднаков од 0, а помал и
еднаков на 9)
Важно!
Во математиката би
било 0≤x≤9 но во
с++ за поврзување
се користи
операторот (И) &&
 Треба да се знае дека исказот if контролира извршување
само на првиот исказ кој се наоѓа веднаш по него. Веќе
следниот исказ не е дел од исказот if па тој исказ ќе се
изврши независно дали условот е точен или не. Да го
погледнеме следниот пример:

if (x < 0)
cout<<“Brojot “<<x<<“ e negativen.”<<endl;
cout<<“negovata apsolutna vrednost e “<<-x;

 Втората наредба по исказот if ќе се изврши и за


позитивните броеви па за нив ќе се испише погрешна
апсолутна вредност.
 Овој проблем се решава со градење на блок од искази.
 Кога исказот if контролира два или повеќе искази, сите тие
се ставаат меѓу големи загради.
 Претходниот пример исправно се запишува на следниот
начин:

if (x < 0)
{
cout<<“Brojot “<<x<<“ e negativen.”<<endl;
cout<<“negovata apsolutna vrednost e “<<-x;
}
 Ист случај е и кога имаме блок од искази по else:
 Така исказот if со кој се прикажува апсолутна вредност на
бројот х се запишува:

if (x < 0)
{
cout<<“Brojot “<<x<<“ e negativen.”<<endl;
cout<<“negovata apsolutna vrednost e “<<-x;
}
else
{
cout<<“Brojot “<<x<<“ ne e negativen.”<<endl;
cout<<“negovata apsolutna vrednost e “<<x;
}
Пример 3: Напиши програма која бара од корисникот да
внесе корисничко име и лозинка. Доколку тие се исправни ќе
даде соодветна порака, во спротивно ќе даде друга порака.

You might also like