10.2.15

Корисни објаснувања



 за некои од исказите од C++  за учениците од 1 и од 2 година, погледнете, прочитајте

Исказ if-else ( Ако – тогаш ), ако е исполнет дадениот услов извршувај  дадена наредба , ако не е исполнет тогаш извршувај друга наредба
Наједноставниот исказ за овозможување на условно извршување е исказот if:
if (uslov)
     naredba;
Наредбата naredba се извршува единствено доколку е задоволен условот uslov.

if (uslov)
      naredba1;
else
      naredba2;
Наредбата naredba1 се извршува доколку е задоволен условот uslov1 во спротивно  ако не е исполнет условот се извршува naredba2

Блок од искази

Блок претставува група од искази. Блоковите започнуваат со симболот '{', содржат група од искази и завршуваат со симболот '}'. Исказите во блокот се одделуваат како и сите останати искази (со помош на симболот ';'). Блоковите може да се сместуваат еден во друг - еден блок може да се стави во внатрешноста на друг блок, кој пак е сместен во трет блок, итн..
Пример    .....
if (n < 10)
{
cout << "Vnesen e brojot " << n << endl;
cout << "Ovoj broj e pomal od 10." << endl;
} else
{
//eden blok moze da sodrzi i samo edna naredba
cout << "Ne vnesovte broj pomal od 10." << endl;
}

Исказ switch

Структура switch овозможува условно извршување на група од наредби зависно од вредноста на одреден израз. Во продолжение е дадена синтаксата на оваа управувачка структура:
switch (izraz)
{
     case konstanta1:
             naredba1-1;
             naredba1-2;
             ...
             break;
     case konstanta2:
             naredba2-1;
             ...
             break;
     ...
     default:
             naredbaD-1;
             naredbaD-2;
             ...
}
Зависно од вредноста на изразот izraz и нејзиното поклопување со една од константите konstanta1, konstanta2, ..., програмата продолжува со извршување од локацијата каде има совпаѓање на вредноста на изразот со некоја од дефинираните константи. Извршувањето на управувачката структура switch завршува кај првото среќавање на break. На пример, доколку вредноста на изразот izraz е еднаква на konstanta1, програмата ги извршува naredba1-1, naredba1-2, .., се до среќавањето на break. Доколку вредноста е еднаква на konstanta2, програмата ги извршува naredba2-1, naredba2-2, итн. Доколку вредноста на izraz не е еднаква на ниту една константа, програмата ги извршува наредбите од делот default: naredbaD-1, naredbaD-2, итн.
Пример :Се внесуваат броеви од 1 до 5 , и во зависност од тоа се печати Исказ "Nedovolen (1)", "Dovolen (2)",..., "Odlicen (5)", ако Внесете бој поголем од 5  ќе се отпечати "Ne zezaj. Vakva ocena nema."
#include <iostream>
using namespace std;
int main()
{
int ocena;
cin >> ocena;
switch (ocena)
{
case 1:
cout << "Nedovolen (1)" << endl;
break;
case 2:
cout << "Dovolen (2)" << endl;
break;
case 3:
cout << "Dobar (3)" << endl;
break;
case 4:
cout << "Mnogu dobar (4)" << endl;
break;
case 5:
cout << "Odlicen (5)" << endl;
break;
default:
cout << "Ne zezaj. Vakva ocena nema." << endl;
}
return 0;
Напомена: делот default е незадолжителен, и еден switch исказ не мора да содржи default група на наредби.

Исказ while  ( Извршувај додека не се исполни дадениот услов)

while исказот е наједноставниот тип на циклус. Во продолжение е дадена синтаксата на овој исказ:
while (uslov)             
     naredba;
while ќе ги извршува наредбите континуирано: сé додека условот има вредност true (е вистинит). Пример:
#include <iostream>
using namespace std;
int main()
{
int i = 1;
int s = 0;
while (i <= 5)
{
cout << "Dodavam " << i << "." << endl;
s = s + i;
i++; //zgolemi go i
}
//1+2+3+4+5 = 15
cout << "Zbir: " << s << endl; //pechati 'Zbir: 15'
return 0;
}
 Објаснување на примерот На почеток, променливите i и s ги добиваат вредностите 1 и 0, соодветно. Потоа, бидејќи условот (1<=5) е задоволен, ќе се извршат неколкуте наредби дадени во блокот на while циклусот (ќе се отпечати "Dodavam 1.", вредноста на s ќе се зголеми за вредноста i=1 и, потоа, ќе се зголеми вредноста на i). Сега, наместо да заврши извршувањето на овие наредби и програмата да продолжи понатаму, повторно се врши проверка на while условот. Бидејќи тој (2<=5) е задоволен, програмата повторно ги извршува наредбите од while блокот (печати "Dodavam 2.", го зголемува s за вредноста i=2 и ја зголемува вредноста на i). Блокот од наредби ќе се изврши уште три пати (за i=3, i=4 и i=5), по што условот (6<=5) нема да биде задоволен (6<=5 има вредност false) и циклусот ќе заврши. На крај, програмата ја печати вредноста на променливата s - која претставува збир на првите 5 природни броеви 1+2+3+4+5=15
Ако уште при првата проверка условот uslov има вредност false, наредбите нема да бидат извршени ниту еднаш. На пример, во програмата дадена погоре, доколку на почетокот променливата i добиеше вредност 10, со што условот (10<=5) во while циклусот не би бил задоволен ниту еднаш, програмата немаше да ги изврши наредбите од while блокот и ќе отпечатеше "Zbir: 0"
Доколку уште при првата проверка условот uslov има вредност false, наредбите нема да бидат извршени ниту еднаш. На пример, во програмата дадена погоре, доколку на почетокот променливата i добиеше вредност 10, со што условот (10<=5) во while циклусот не би бил задоволен ниту еднаш, програмата немаше да ги изврши наредбите од while блокот и ќе отпечатеше "Zbir: 0". Никогаш не заборавајте, во while блокот, да ја ажурирате променливата/променливите која е дел од while условот. Во спротивно, програмата постојано ќе извршува едни исти наредби и никогаш нема да заврши. Ваша обврска е да предизвикате, во одреден момент, неисполнување на while условот. Во програмата дадена погоре, тоа се прави преку зголемување на вредноста на променливата i. Бидејќи i е вклучена во условот uslov (i<=5), во одреден момент (кога i ќе добие вредност поголема од 5), циклусот ќе заврши со извршување.


No comments:

Post a Comment