додека-извршувај (while-do)
TRANSCRIPT
Структура за повторување со излез на почетокот од циклусот
ДОДЕКА – ИЗВРШУВАЈ
услов
чекор К
чекор А
неточно
точно
...
додека услов извршувај
чекор А;
чекор Б;
....
чекор К;
крај_додека{услов}
ЧИТАМЕ:додека е исполнет/точен условот се извршуваат чекорите од циклусот и дејството се враќа на почеток на циклусот
• Извршувањето на чекорите/наредбите зависи од исполнувањето/точноста на дадениот услов
• Доколку условот не е исполнет, се прескокнуваат сите чекори и дејството продолжува по крај_додека{услов}
• Ако условот не е исполнет при првото испитување, чекорите на структурата нема да се извршат ниту еднаш
алгоритам ПарниБроевиДо20;почеток
broj0;додека broj<20 извршувај
број broj+2; печати broj;
крај_додека{broj<=20}крај{ПарниБроевиДо20}
алгоритам ЗбирНаПрви10Броеви;почеток
broj1;zbir0;додека broj<=10 извршувај
zbirzbir+broj;broj broj+1;
крај_додека{broj<=10}печати zbir;крај{ЗбирНаПрви10Броеви}
ЗАДАЧИ1. Да се отпечатат сите природни броеви од
n до 2n
2. Да се пресмета сумата S=1+4+7+… до 100
3. Да се пресмета факториелот на бројот n,
n!=n*(n-1)*(n-2)*…2*1
4. Да се пресмета степенот xn=x* x * x *…* x
5. Да се пресмета сумата
2222
1..
)2(
1
)1(
1110
nkkkS ++
++
+++=
алгоритам ПриродниБроевиОдНДо2Н;почеток
читај n;brojn;додека broj<=2n извршувај
печати broj;broj broj+1;
крај_додека{broj<=2n }крај{ПриродниБроевиОдНДо2Н}
алгоритам Сума;почеток
broj1;s0;додека broj<=100 извршувај
ss+broj;broj broj+3;
крај_додека{broj<=100}печати s;крај{Сума}
алгоритам Факториел;почеток
читај n;broj1;f1;додека broj<=n извршувај
ff*broj;broj broj+1;
крај_додека{broj<=n}печати f;крај{Факториел }
алгоритам Степен;почеток
читај n,x;i1;stepen1;додека i<=n извршувај
stepenstepen*x;i i+1;
крај_додека{i<=n}печати stepen;крај{Степен}
алгоритам Сума5;почеток
читај k,n;ik;s10;додека i<=n извршувај
ss+1/i2;i i+1;
крај_додека{i<=n}печати stepen;крај{Сума5}
ЗАДАЧИ
1. Се внесуваат броеви додека не се внесе 0. Да се изброи колку од нив се парни.
2. Се внесуваат броеви додека не се внесе 0. Да се отпечати:
a) Бројот на позитивни броевиb) Вкупниот број на броеви
3. Се внесуваат броеви додека не се внесе 0. Да се најде аритметичката средина на внесените броеви
4. Да се отпечати спротивниот број на бројот n.
алгоритам БројНаПарниБроеви;почеток
читај broj;brojac0;додека broj<>0 извршувај
ако broj MOD 2 =0 тогаш brojacbrojac+1;
крај_ако{broj MOD 2 =0 }читај broj;
крај_додека{broj<>0 }печати brojac;крај{БројНаПарниБроеви}
алгоритам БројНаБроеви;почеток
читај broj;brvkupno0; brpozitivni0;додека broj<>0 извршувај
ако broj > 0 тогаш
brpozitivni brpozitivni +1;крај_ако{broj > 0 } brvkupno brvkupno +1;читај broj;
крај_додека{broj<>0 }печати brvkupno;печати brpozitivni;
крај{БројНаБроеви}
алгоритам АритметичкаСредина;почеток
brvkupno0;s0;читај broj;додека broj<>0 извршувај
ss+broj; brvkupno brvkupno +1;читај broj;
крај_додека{broj<>0 }ass/brvkupno;печати as;
крај{АритметичкаСредина}
алгоритам СпротивенБрој;
почеток
читај broj;
додека broj>0 извршувај
cifrabroj MOD 10;
печати cifra;
broj broj DIV 10;
крај_додека{broj>0}
крај{СпротивенБрој}
алгоритам СпротивенБрој;почеток
читај n;brojn;sprotiven0;додека broj>0 извршувај
cifrabroj MOD 10;sprotivensprotiven*10+cifra;broj broj DIV 10;
крај_додека{broj>0}печати ‘Sprotiven broj na brojot ‘, n, ’e brojot ‘,
sprotiven;крај{СпротивенБрој}