Структури за повторување . Исказите break и continue


Структурите за повторување се користат тогаш кога е потребно група чекори ( наредби) да се извршат повеќе пати. Едно извршување на чекорите (наредбите) се нарекува итерација. 

Три форми на контролните структури за повторување се :
- повторување со излез на почетокот од циклусот ( while )
- повторување со излез на крајот од циклусот ( do – while)
- повторување со броење на циклусите (for)
Прашања:
  1. Што овозможуваат структурите за повторување?
  2. Што е итерација?
  3. Кои се карактеристики на структурата do – while,  а кои на структурата while 
 



Производ на парните броеви од 1 до 5                                     


      Прикажување на броевите од 1 до 5.    

do-while , while loop 

Infinite while loop

If the condition of a loop is always true, the loop runs for infinite times (until the memory is full). For example,

// infinite while loop
while(true) {
    // body of the loop
}

Here is an example of an infinite do...while loop.

// infinite do...while loop

int count = 1;

do {
   // body of loop
} 
while(count == 1);

Структура повторување со броење на циклуси 


Кога однапред е познат бројот на повторувања на циклусот најчесто се користи for циклусот
Општа форма на for циклусот е:
 for ( pocetna_vrednost; uslov; promena )
         {
            blok_na_iskazi;
          }

Секој for циклус има своја контролна променлива на која вредноста ѝ се менува со секое извршување на циклусот што е одредено со вредноста на промена.
Условот мора да биде логички израз кој може да добие вредност точно (true, 1) или неточно (false, 0).
Блокот од искази кој се наоѓа во циклусот се извршува додека вредноста на условот е вистина. Кога условот ќе добие вредност невистина, циклусот се прекинува.

По изразот for нема точка и запирка (;), како ниту по третиот израз внатре во заградите.

C++ дозволува контролната променлива да се декларира во самиот for исказ.

На пример,
    for(int i = 1;i <=n;i++)
     cout<< i ;
e исто што и
     int i;
     for (i=1; i<=n;i++)

         cout<< i ;


Разгледајте ги следните  aлгоритми, објаснете ги!


Следните искази  поврзи ги соодветно на алгоритамските шеми :
  1. Производ на броевите од 1 до 5
  2. Збир на броевите од 1 до 5
  3. Производ на броевите од 1 до n
  4. Збир на броевите од 1 до n
Што ќе се прикаже со следниот код 

#include <iostream>
using namespace std;
int main()
{
int j=0;
for ( ;  j < 5;   )
{
  cout<<j<< " " ;
  j++ ;
}
return 0;
}







Задачи : Да се состави алгоритам и програма за

1.       Прикажување на природните броеви од 4 до 8
2.       Прикажување на природните броеви од 9 до 5 наназад
3.       Прикажување на природните броеви од 1 до n
4.       Прикажување на природните броеви  2,4,6,8,10
5.       Сума на првите 5 природни броеви
6.       Производ на првите 10 природн броеви
7.       Сума  на парните природни броеви од 1 до 20
8.       Аритметичка средина на природните броеви од 1 до n
9.       Да се пробројат парните броеви од к до n
10.    Да се пребројат природните броеви деливи со 3 во интервалот од к до n
11.    Да се прикажат и пребројат парните броеви од к до


#include <iostream>
using namespace std;
int main() {
    int sedmici = 3, denovi_sed = 7;
    for (int i = 1; i <= sedmici; ++i) 
    {
        cout << "Sedmica: " << i << endl;
        for (int j = 1; j <= denovi_sed; ++j) {
            cout << "    Den:" << j << endl;
        }
    }
    return 0;

#include <iostream>
using namespace std;
int main() {
   int rows = 5;
   int columns = 4;
   for (int i = 1; i <= rows; ++i) {
      for (int j = 1; j <= columns; ++j) {
         cout << "*  ";
      }
      cout << endl;
   }
   return 0;
}

#include <iostream>
using namespace std;
 int main () {
   int i, j;
     for(i = 2; i<100; i++) {
      for(j = 2; j <= (i/j); j++)
         if((i%j)==0) break; 
         if(j > (i/j)) cout << i << " is prime\n";
   }
    return 0;
}



#include <iostream>
using namespace std;
int main()
{
int n, s=0;
while (true) //(n!=0)
{
cout << "Vnesi broj (0 za kraj): ";
cin >> n;
if (n == 0)
{
cout << "Izleguvam od ciklusot." << endl;
break;
}
//sobiraj gi broevite koi kje gi vnese korisnikot
s += n;
}
cout << "Zbirot na broevite koi gi vnese e: " << s << endl;
return 0;
}



# include <iostream>
using nаmespace std;
int main()

{
int n;
for(n=10; n>0; n--)
{
   if (n==5)
   continue;
   cout<<n<<” , “;
}
//cout<<”Broenjeto e prekinato”;
return 0;
} 

10 ,9 ,8 ,7 ,6 ,4 ,3 ,2 ,1 ,

Исказот goto

Исказот goto е исказ/наредба за безусловен скок. Овој исказ овозможува извршувањето на програмата да продолжи од избраниот исказ. 
Исказот со кој понатаму се продолжува може да биде  било каде  во кодот, но мора да биде означен со симболичко име по кое се става знакот две точки (:). 
Општ облик на  наредбата goto :

 ime: iskazot_na_koj_se_prеminuva;
        ... 
        ...
        goto (ime);

#include <iostream>
using namespace std;
int main()
{
int a,p;
vnes: cout<<"Vnesi strana na kvadratot"<<endl;
cin>>a;
if (a<0)
{
cout<<"Stranata ne moze da bide negativen broj"<<endl;
goto vnes;
}
p=a*a;
cout<<"Plostinata e "<<p;
return 0;
}

ВЕЖБИ - LOOP (while, do-while, for)