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

11.5. Вежбање

Гранање можеш прво провежбати кроз једноставне примере из Збирке малих задатака на следећем линку а затим прећи на задатке који следе.

Индекс телесне масе

Индекс телесне масе човека (енг. body mass index, bmi) се дефинише као количник његове масе у килограмима и квадрата његове висине у метрима. Нормалним се сматра индекс телесне масе из (затвореног) интервала од \(18,5\frac{kg}{m^2}\) до 25 \(25\frac{kg}{m^2}\). Да ли човек који је висок 180 центиметара и тежак 79 килограма нормалне дебљине?

Кућни ред

Кућни ред забрањује прављење буке пре 6 часова и између 13 и 17 часова, и након 22 часа. Напиши програм који радницима говори да ли у неком датом тренутку могу да изводе бучније радове.

Сматраћемо да су ови интервали полуотворени тј. да је дозвољено правити буку у интервалу \([6, 13)\) и \([17, 22)\) и у програму ћемо проверити да ли време припада неком од тих интервала.

или

Преступна година

Година је преступна ако је дељива са 4 и није дељива са 100 или је дељива са 400. Напиши функцију која проверава да ли је година преступна.

Преступна година у астрономији

Овако уведен систем преступних година значи тачно 97 преступних година на сваких 400 година. Тиме је време једне године тачно (97 × 366 + 303 × 365) / 400 = 365,2425 дана, што је прилично добра процена вредности 365,242374, коју астрономи обично узимају за трајање године.

Не заборави, проверу да ли је број дељив другим бројем можеш извршити тако што израчунаш остатак при дељењу (коришћењем оператора %) и провериш да ли је он једнак нули. На пример, проверу да ли је година дељива са 4 можеш извршити изразом godina % 4 == 0.

Предност у превозу

Предност у превозу имају труднице, деца млађа од седам година и старији од 65 година. Допуни програм који испитује да ли особа има предност (параметар godine садржи број година, а параметар trudnica има вредност Тrue ако је особа трудница, односно False у супротном).

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

Позиције на шаховској табли се обележавају, на пример, са a3, b5, h1 и слично. Прво се наводи словна ознака колоне (од a до h), а затим бројевна ознака врсте (од 1 до 8). Ако је дата позиција краља на шаховској табли на којој нема других фигура осим тог краља, напиши програм који одређује број потеза које тај краљ може да направи (краљ се у шаху може померити на било које њему суседно поље).

Постоје три различите врсте поља. Поља у угловима табле (поља a1, a8, h1 и h8) су таква да краљ може да се помери на само три околне позиције. Поља која су на ивицама (у колонама a или h тј. у врстама 1 или 8), али нису у угловима су таква да краљ може да се помери на пет околних позиција. Са осталих поља краљ може да се помери на осам суседних позиција.

Килобајт

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

    Q-8: Који од наредних услова треба употребити у претходном програму?

  • odgovor == 1000
  • Килобајт садржи 1024 бајта.
  • odgovor = 1000
  • Килобајт садржи 1024 бајта, а поређење једнакости се записује коришћењем ==.
  • odgovor == 1024
  • Браво!
  • odgovor = 1024
  • Поређење једнакости се записује коришћењем ==.

Жупан или краљ

Стефан Немањић је био Велики жупан од 1196 до 1217, а краљ од 1217 до 1228. Да ли је дуже владао као краљ или Велики жупан?

Оцена на факултету

На факултету се оцена одређује на основу броја поена на следећи начин. За 50 поена и мање добија се оцена 5, за поене од 51 до 60 добија се оцена 6, од 61 до 70 оцена 7, од 71 до 80 оцена 8, од 81 до 90 оцена 9 и за поене од 91 до 100 добија се оцена 10. Напиши програм који за дати број поена одређује оцену.

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

Потези фигура у шаху

Краљ у шаху може да се помера само једно поље (на било које од могућих 8 суседних поља). Топ у шаху може да се помера вертикално или хоризонтално, било који број поља. Ловац у шаху може да се помера дијагонално, било који број поља. Краљица може да се помера хоризонтално, вертикално или дијагонално, било који број поља. Коњ се помера тако што иде два поља вертикално и једно поље хоризонтално или два поља хоризонтално и једно поље вертикално. Са сваку од описаних шаховских фигура дефиниши функцију која за дата два поља на шаховској табли (одређена својим координатама) одређује да ли фигура на празној табли може да стигне са првог на друго поље.

Први услов је да полазно поље мора бити различито од долазног. Ако су дата поља са координатама (x1, y1) и (x2, y2), овај се услов просто може проверити помоћу (x1, y1) != (x2, y2). Други начин не користи парове и захтева да је бар једна од две координате различита тј. да важи x1 != x2 or y1 != y2.

Већина провера се може засновати на анализи хоризонталног и вертикалног растојања између два поља. Када смо разматрали апсолутну вредност рекли смо да се растојање између два броја може једноставно израчунати као апсолутна вредност њихове разлике. Тако, , хоризонтално растојање можемо одредити помоћу abs(x1 - x2), док вертикално растојање можемо одредити помоћу abs(y1 - y2).

  • Краљ се може померити ако је веће од ова два растојања једнако тачно 1 (тада је растојање по једној координати 1, а по другој 0 или 1, што је тачно услов померања краља).

  • Топ се може померити ако полазно и долазно поље имају исту координату x или исту координату y (обе координате не смеју бити једнаке јер би тада полазно и долазно поље било исто).

  • Ловац се може померити ако два поља леже на истој дијагонали. Овај се критеријум може проверити тако што се утврди да је хоризонтално растојање између два поља једнако њиховом вертикалном растојању (у сваком дијагоналном кораку се та растојања умањују за 1, све док се не стигне до долазног поља када оба та растојања истовремено постају нула, што значи да су у почетку морала бити једнака).

  • Проверу за краљицу можеш извршити тако што ћеш искомбиновати две већ направљене провере (ону за топа и ловца).

  • На крају, проверу за коња можеш извршити тако што ћеш проверити да ли је хоризонтално растојање једнако 2, а вертикално 1 или је хоризонтално растојање једнако 1, а вертикално 2.

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

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