Структурите за повторување се користат тогаш кога е потребно група чекори ( наредби) да се извршат повеќе пати. Едно извршување на чекорите (наредбите) се нарекува итерација.
- повторување со излез на почетокот од циклусот ( while )
- повторување со излез на крајот од циклусот ( do – while)
- повторување со броење на циклусите (for)
Прашања:
- Што овозможуваат
структурите за повторување?
- Што е итерација?
- Кои се карактеристики на
структурата do – while, а
кои на структурата while
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++)
e исто што и
int i;
for (i=1; i<=n;i++)
cout<< i ;
Разгледајте ги следните aлгоритми, објаснете ги!
Следните искази поврзи ги соодветно на алгоритамските шеми :
- Производ на броевите од 1 до 5
- Збир на броевите од 1 до 5
- Производ на броевите од 1 до n
- Збир на броевите од 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. Да се прикажат и
пребројат парните броеви од к до n
#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);
ВЕЖБИ - LOOP (while, do-while, for)
#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;
}
Test 1 Test 2
Задачи - структури повторување
Kviz while,do-while,for
Прашања Повторување
Canvas povtori
Canvas for
Задачи - структури повторување
Kviz while,do-while,for
Прашања Повторување
Canvas povtori
Canvas for