Садржај

Бројачке петље

У примеру с почетка лекције о алгоритамском размишљању поменули смо упутство за куповину кифли. Размисли о следећем:

  • претпоставимо да је растојање од твоје куће/стана до раскрснице 172 корака,

  • правите прославу, па треба да купиш 35 кифли.

Колико би наредби, једну по једну, требало да задаш роботу попут Карела да то уради (у продавници сваку кифлу узимаш са пулта, спушташ је у корпу, узимаш из корпе, стављаш поред касе…)? Не, наравно, нема потребе да то стварно рачунаш!

Хтели смо само да ти укажемо на то да у скоро сваком од претходних примера постоје наредбе које се понављају тачно одређен број пута. Добра ствар је што нема потребе да их све пишеш, постоји једноставнији начин.

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

Пример

Карел треба да сакупи осам лопти. Примени бројачку петљу у решењу!

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

Овог пута се на гомили налази осам лопти. Карел треба прво да направи један корак напред, а затим осам пута узме лопту.

На десну страну смо превукли блокове за два решења овог проблема. За које је потребно мање блокова? Избриши дуже решење и покрени програм!

Много је брже да поставиш један блок и изабереш колико пута треба да се понови неки корак него да сваки пут исписујеш наредбу за корак који се понавља.

Замисли колико би ти времена требало да саставиш програм без петље када би Карел требало да узме 200 лопти!

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

И њега превлачиш као и претходне. Међутим, овај блок сам за себе ништа не ради. Потребно је да у њега „увучеш” блок или више блокова са корацима који треба да се понове више пута.

Са десне стране сада постоји већ више блокова са наредбама и постају непрегледне. Да би биле прегледније, од следећег задатка ће бити подељене у групе (Наредбе роботу и Петље). Када кликнеш на назив групе, појавиће се блокови који се у њој налазе!

Задатак 6

Задатак је исти као и Задатак 4. Овог пута у решењу користи бројачку петљу!

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

Помоћ: да би узео прву лоптицу, Карел треба четири пута да направи корак, па да је узме. Затим треба да се окрене у леву страну и понови исти поступак за другу лоптицу.

Једно од решења може бити следеће:

Предлог решења

../_images/zadatak6_blokovi.png

Да ли видиш још неку могућност да употребиш блок за бројачку петљу?

Задатак 7

На гомили се налази пет лоптица које Карел треба да убаци у рупу. Реши задатак применом бројачких петљи!

Изнад Карелове главе можеш да пратиш број лоптица које тренутно има код себе!

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

Помоћ: Карел треба да направи два корака, пет пута да узме лоптицу, опет да направи два корака и пет пута да остави лоптицу. Користи бројачку петљу кад год је могуће!

Задатак 8

Помози Карелу да стигне до поља (6, 6)! Изабери пут који ти највише одговара! (користи бројачку петљу у решењу!)

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

Помоћ: Добро размисли да ли постоји више решења за овај проблем? Можда на први поглед пут уз цикцак зид делује краћи, али да ли је стварно тако? Како ћеш најједноставније да објасниш Карелу пут до циља?

Задатак 9

Да би успешно завршио задатак, Карел треба да сакупи пет лоптица које се налазе на крају овог необичног пута. Примени петље у програму и помози му!

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

Помоћ: Испиши сваку наредбу коју треба да изврши и уочи које се од њих понављају. Колико пута? У овом решењу можеш да употребиш две различите петље – за кретање уз зид и за сакупљање лоптица.

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