Садржај

Условне петље

Кроз претходне примере објашњено је како се користе петље у програму. Уочиш наредбу (или групу наредби) која се понавља одређени број пута и ставиш у одговарајући блок. А шта да радиш ако видиш да се неке наредбе понављају, а не знаш унапред колико пута треба то да се понови?

Вратимо се на пример с почетка - не знаш унапред број корака до продавнице или ти родитељи кажу да купиш све кифле које се налазе на полици?

Упутство би могло да гласи „Иди право све до раскрснице“ или „Узимај кифле све док их има на полици“.

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

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

Услов у оваквој петљи је неки израз чија вредност може бити тачно или нетачно. Наредбе које се у њој налазе извршаваће се све док услов има вредност тачно. Често је овај услов неки математички израз са поређењем (>, <, =).

У различитим примерима понудићемо ти различите групе блокова. За бројачку петљу смо до сада користили блок из групе Петља . У истој овој групи се налази и блок за условну петљу. Кликни на групу Петље и превуци блок понављати док / изврши у простор за слагање!

Пример

Карел треба да сакупи све лоптице са гомиле!

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.

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

  • шта треба да ради

  • до када треба то да ради

Кликни сада на групу Питај робота. И са њом се први пут срећеш. Погледај који се блокови у њој налазе.

  • постоји лоптица - проверава да ли на гомили има лоптица

  • робот може напред - проверава да ли је робот наишао на зид

  • робот има лоптицу - проверава ли робот има лоптицу код себе

  • колико лоптица има робот - враћа број лоптица које има робот

  • колико лоптица има на пољу - враћа број лоптица које се налазе на пољу

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

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

Задатак 10

Карел треба да прави корак напред и узме лоптицу са поља све док не наиђе на зид! Сaстави блокове баш по овом упутству!

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.

Задатак 11

Карел треба да сакупи све лоптице и убаци их у рупу!

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+