Namų darbas — paragavai, ir gana
Trumpas namų darbas — paragauti užtenka vieno kąsnio:
- Tame pačiame eksperimentų aplanke parašyk
sumTo(n int) int, kuri grąžina1 + 2 + ... + nrekursiškai. Užrašyk sau: koks bazinis atvejis? Kaip mažėja užduotis? - Šalia parašyk
sumToLoop— tą patį sufor. Patikrink, kadsumTo(100)irsumToLoop(100)abu grąžina5050. - Vienu sakiniu (komentare virš
sumTo) atsakyk: kurį variantą paliktum tikroje programoje ir kodėl?
Pasirenkama (nebūtina — finaliniam projektui rekursijos NEREIKĖS): jei norisi paragauti ant savų duomenų, parašyk countUnread(items []Item, i int) int — skaičiuoja neperskaitytas knygas nuo indekso i: bazinis atvejis i >= len(items) grąžina 0. Palygink su range ciklu — ir ciklą pasilik.
Atsiskaitymui: sumTo + sumToLoop kodas, abiejų rezultatas su 100 ir tavo vieno sakinio verdiktas.
Patarimas. Paragavai — ir gana: rekursija grįš Algoritmų kurse, kur jai vieta. O dabar rimtesnis reikalas. Tavo programa jau moka viską... kol jos neuždarai — kiekvieną kartą paleidus iš naujo lentyna tuščia. Kitoje pamokoje duomenys pagaliau išgyvens restartą: išsaugosim į failą ir įkelsim paleidus. Tai paskutinė plyta prieš finalinį projektą.