Skupine rimajočih se besed, ki jih dobimo pri funkciji na prejšnji strani, so lahko seveda različno velike. Dopolni funkcijo tako, da izpiše statistike o tem, koliko skupin posamezne velikosti je nastalo in katera je največja (torej katera vsebuje največ besed).
Poišči neko daljše besedilo in napiši program, ki ga prebere, razbije na besede (pri tem pobriše ločila, spremeni velike črke v male ipd.) in potem na seznamu vseh (različnih) besed iz tega besedila zažene postopek s prejšnje strani, za odkrivanje skupin rimajočih se besed. Katera tako dobljena skupina je največja?
Napiši program, ki prebere zaporedje malih naravnih števil in za vsako prebrano število n sproti izpiše vrednost n! (ki je definirana kot
Iz definicije v nalogi lahko opazimo, da velja n! = (n - 1)! · n. Torej lahko te vrednosti računamo z zelo preprosto funkcijo (kot v primeru na desni). Glavni del programa pa mora le v zanki brati števila in izpisovati rezultate:
Slabost te rešitve je, da lahko ene in iste rezultate računa večkrat. Če na primer v vhodnih podatkih dobimo n = 4, bomo pri računanju f(4)
izračunali pred tem še f(3)
, f(2)
in f(1)
. Če enkrat pozneje v vhodnih podatkih nastopi n = 3, bomo takrat spet računali f(3)
, čeprav smo to vrednost že izračunali prej, ko smo obdelovali n = 4. Koristno bi torej bilo, če bi si funkcija f
rezultate, ki jih izračuna, nekam shranjevala; če pozneje isti rezultat potrebuje še enkrat, lahko vrne shranjeno vrednost, namesto da ga računa ponovno. Tej tehniki pravimo pomnjenje ali s tujko memorizacija in pride prav marsikje, kjer večkrat potrebujemo en in isti rezultat. V ta namen pride prav ravno slovar: