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

11.3. Конструкција if-elif-else

Долазимо до гранања где се појављује више од две гране. Код оваквих примера није више питање да ли је услов испуњен или не, већ нам се намеће више опција. Овакве ситуације се решавају употребом if-elif-else програмске конструкције. Погледајте следећи задатак.

Агрегатно стање воде

Напиши програм који за дату температуру воде (у степеним Целзијуса) одређује њено агрегатно стање (сматраћемо да је вода у чврстом стању ако јој је температура строго мања од 0, да је у течном ако јој је температура између 0 и 100 степени, укључујући и те границе, и да је у гасовитом стању ако јој је температура строго већа од 100 степени).

Увидећеш да програм има нови задатак, опција сада није само једно или само друго. Имамо три могућности: вода је или у чврстом или у течном или у гасовитом стању. Примени if-elif-else да би решио овај проблем.

Можеш да размишљаш на следећи начин:

  • ако је температура мања од \(0^{\circ}\,C\) - агрегатно стање је чврсто;

  • у противном (ако је програм прескочио прву грану (if) и дошао овде, већ знамо да је температура већа или једнака \(0^{\circ}\,C\)): ако је температура уз то још и мања или једнака \(100^{\circ}\,C\) - агрегатно стање je течно;

  • у противном (ако програм није ушао у претходне две гране (if и elif) температура је сигурно већа од \(100^{\circ}\,C\) ) - сада не морамо ништа да питамо, сигурни смо да је агрегатно стање гасовито.

У општем случају, општи облик ове конструкције је следећи:

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

Суштина задатка била је у томе да се одреди којем од неколико надовезаних интервала припада дата вредност (то су били интервали \((-\infty, 0)\), \([0, 100]\) и \((100, +\infty)\)). Задаци тог облика су чести и решавају се конструкцијом if-elif-else како смо овде описали.

Погледај наредни пример у коме задатак има четири могућности.

Успех ученика

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

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