Садржај
1. Робот Карел - Линијски програми и бројачка петља
2. Робот Карел - Условна петља и гранање
3. Робот Карел - Задаци за вежбање
4. Корњача графика - Линијски програми и петље
5. Корњача графика - Гранање, угнежђене петље, функције, торке и листе
6. Корњача графика - Задаци за вежбање
9. Израчунавања - Коришћење и дефинисање функција
10. Израчунавања - Задаци за вежбање
13. Контрола тока - Задаци за вежбање
16. Откривање и исправљање грешака и коришћење дебагера

15.1. Примена петље у торци, листи и ниски

До сада смо бројачку петљу for користили само у комбинацији са функцијом range чиме смо постизали да бројачка променљива узима бројевне вредности из неког опсега. У овом поглављу ћемо се упознати и са другим облицима коришћења петље for који ће нам омогућити да анализирамо један по један елемент садржан у некој структури података.

Пролазак кроз торку/листу/ниску

Петља for ... in ... : се може употребити и да се проће кроз све елементе неке дате торке/листе/ниске. На пример, ако је l листа, тада for i in l: проузрокује да променљива i узима редом елементе листе l, по један у сваком кораку. Илуструјмо то следећим примером.

Оперативни системи

Дата је листа у којој се налази списак неколико оперативних система. Исписаћемо све елементе ове листе (сваки у посебној линији).

Други начин је да употребимо бројачку променљиву и да елементима листе приступамо на основу индекса. На тај начин уз сваки систем можемо исписати и његов редни број. Бројачка променљива узима редом вредности од 0, па све до броја који је за један мањи од дужине листе. Ако редни бројеви иду од 1 па до дужине листе, редни број је у сваком кораку за један већи од вредности бројачке променљиве.

Иако је некада неопходно употребити и овај приступ, јасно је да се у првој варијанти добија јаснији и лепши текст програма.

Годишња доба

Годишња доба се понављају у круг: пролеће, лето, јесен, зима, пролеће, лето, јесен, зима, и тако даље. Напиши програм који исписује смену годишњих доба током пет година.

У овом задатку ћемо више пута пролазити кроз једну исту листу, па ћемо употребити приступ на основу индекса. Ако су имена годишњих доба написана у једној листи, тада је потребно исписивати редом елементе на позицијама 0, 1, 2, 3, затим опет 0, 1, 2, 3 и тако даље. Ако направимо петљу у којој ће бројачка променљива узимати редом вредности од 0 до 19 (то је 20 годишњих доба која се смењују током пет година), тада се серија бројева 0, 1, 2, 3, 0, 1, 2, 3… може добити тако што се узимају остаци при дељењу бројева од 0 до 19 бројем 4. Имајући ово у виду, исправи наредни програм.

Пролазак кроз листу парова имена и презимена научника

У петљи можемо проћи и кроз све елементе листе парова.

Ако је дата листа која садржи парове имена и презимена неколико научника, напиши програм који прави њихов списак, тј. исписује име и презиме сваког од научника у посебном реду.

Формирај прво списак неколико научника.

Један од начина да прођемо кроз листу парова је да се понашамо као да је у питању било која друга листа и уведемо променљиву која ће имати редом вредности једног по једног уређеног пара. Појединачним елементима пара (имену и презимену), онда можемо да приступимо на основу индекса у оквиру пара.

Слично, можемо употребити и бројачку променљиву која ће пролазити кроз индексе листе и затим сваком пару приступати на основу његовог индекса у листи, а онда сваком елементу пара (имену и презимену) приступати на основу његовог индекса у пару.

Ипак, од свих, можда се најелегантније решење добија ако се употреби могућност распакивања пара, тј. коришћења две променљиве које ће редом узимати имена и презимена научника.

Свако слово у посебном реду

Већ сте видели да се у многим случајевима ниска може користити веома слично као листа карактера. У том светлу, могуће је у петљи проћи кроз све карактере ниске.

Напиши програм који исписује слово по слово учитане речи, свако у посебном реду.

Примена истог израчунавања на више података

У неколико примера које смо срели до сада исто израчунавање применили смо на више различитих података. Хајде да размотримо један пример тог типа.

Последњи контролни

Петар је током полугодишта радио четири контролна задатка и добијао је редом оцене 3, 5, 4, 2. Јуче је радио последњи контролни задатак и занима га која ће му бити закључна оцена ако добије 1, 2, 3, 4 или 5. Напиши програм који то одређује.

Пошто оцене које анализирамо чине опсег природних бројева, уместо навођења вредности у торки, могли смо употребити и петљу облика for poslednja_ocena in range(1, 6):.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+