Professional Documents
Culture Documents
Наредбе и контролне структуре у Octave
Наредбе и контролне структуре у Octave
Увод
Просте наредбе
Најједноставније наредбе смо већ упознали. Сваки израз у Octave-у представља наредбу.
Ефекат овакве наредбе је израчунавање вредности тог израза. Ако израз садржи оператор
доделе (=), тада се израчуната вредност уписује у променљиву (или променљиве) на левој
страни доделе. У супротном, вредност израза се уписује у променљиву ans. Ако се израз
завршава знаком ; (тачка-зарез) тада се његова вредност неће исписати на излазу, а у
супротном хоће.
С обзиром да знак ; (тачка-зарез) нема улогу краја наредбе (као у C-у и другим сличним
језицима), већ се наредба завршава на крају реда, није могуће да израз који чини наредбу
заузима више линија. За то је потребна посебна синтакса, која подразумева оператор ...
(три тачке) на крају линије ако желимо да се израз настави и у следећој линији. Нпр:
А = [1 2 3;
4 5 6;
7 8 9];
ће пријавити грешку. Да би се ова грешка избегла, потребно је или све написати у једном
реду:
А = [1 2 3; 4 5 6; 7 8 9];
А = [1 2 3; ...
4 5 6; ...
7 8 9];
Наредбе гранања
if(<uslov>)
<telo>
end
где је <uslov> било који логички израз (или израз који се може конвертовати у логички),
а <telo> се састоји из једне или више наредби (простих или сложених). Сложенији облици
наредбе гранања подразумевају else грану:
if(<uslov>)
<if_telo>
else
<else_telo>
end
или вишеструко гранање:
if(<uslov1>)
<if1_telo>
elsif(<uslov2>)
<if2_telo>
...
else
<else_telo>
end
switch(<izraz>)
case <labela1>
<naredbe1>
case <labela2>
<naredbe2>
...
otherwise
<naredbe>
end
while(<uslov>)
<telo>
end
Друга врста петље је do-until петља. У питању је петља са постусловом. Њена синтакса је:
do
<telo>
until(<uslov>);
Наредбе у телу петље се извршавају бар једном, а понављају се све док се услов не испуни.
Другим речима, <uslov> дефинише услов изласка из петље (супротно од
понашања do-while петље у C-у и сличним језицима где се наводи услов останка у петљи).
О овоме треба водити рачуна, ако сте раније имали искуства са C-оликим језицима.
for v=<exp>
<telo>
end
Ова наредба ради тако што променљива v у свакој итерацији узима вредност једне по
једне колоне матрице која је вредност израза <exp> (сетимо се да је у Octave-у све матрица,
дакле и скалари и вектори). Ако је <exp> скалар, онда петља има само једну итерацију, при
чему v узима вредност тог скалара. Ако је <exp> вектор-врста, тада је то стандардна
итерација кроз вектор, при чему променљива v у свакој итерацији узима следећу вредност
из вектора; ако је <exp> матрица, тада је v у свакој итерацији вектор-колона.
Типично, for петља се користи на следећи начин:
for i = 1:n
<telo>
end
где бројачка променљива i у свакој итерацији узима следећу вредност опсега 1:n.
Као и у другим програмским језицима, и овде је могуће петљу прекинути пре времена, ако
наступи неки разлог за то, као и прекинути текућу итерацију и наставити са следећом. У ту
сврху се користе наредбе break; и continue; респективно, слично као и у C-оликим језицима.