Author's photo
Zmazaný účet
informatika - sš

Rekurzia

Dobrý deň, potrebovala by som pomôcť....máme zadanie a potrebovala by som určiť, čo tento program robí a ako ho ovplyvňuje keď sa menia čísla v zátvorkách pri poslednom riadku trojuholník (6,400)


def trojuholniky(n, a):
if n > 0:
for i in range(3):
t.fd(a)
t.rt(120)
trojuholniky(n - 1, a / 2)

turtle.delay(0)
t = turtle.Turtle()
#t.speed(0)
t.rt(60)
trojuholniky(6, 400)

1 odpoveď
Dobry den prajem :)
skusim tak polopatisticky. pismeno n je pocet trojuholnikov, a pismeno a je dlzka strany.
Cize mate zadanu funkciu ktora obsahuje dva parametre. Kym bude n vacsie ako 0 tak vzdy vytvori trojuholnik o dlzke strany a (v nasom pripade dlzka 400px, a je tam cyklus for, ktory mi trikrat korytnacku otoci (cize korytnacka urobi tri strany trojuholnika). Nasledne vo funkcii sa spusta opat ta ista funkcia kde n je mensi o jeden a strana a je polovicna. Druhy riadok funkcie hovori ze bude tvorit trojuholnik dovtedy kym n>0. Cize ked mame na zaciatku n=6 (to je ten posledny riadok ktorym sa vola funkcia trojuholniky(6,400)... tak spusti mi opatovne funkciu trojuholniky ale tentoraz to bude s parametrami (5,200) ... opat sa vykona funkcia a na konci sa znova zavola s opatovne nizsimi hodnotami, cize (4,100)..atd. Trojuholniky bude vykreslovat az dovtedy kym plati podmienka ze n>0. Tym padom plati, n=pocet zobrazenych trojuholnikov a a=dlzka strany daneho trojuholnika. :)