![]() |
![]() |
|
rtk20102010.1.1Vodilni elementi 1. podnalogaZa posamezni element v seznamu števil rečemo, da je vodilni, če velja, da so vsi njegovi nasledniki (elementi z večjim indeksom) manjši od njega. NalogaNapiši funkcijo Vhodni podatkiSeznam števil. Predpostavi, da so podatki cela števila, da seznam nikoli ne bo imel več kot sto elementov ter da v podatkih ni nobenih napak.
Izhodni podatkiNaravno število Uradna rešitevdef st_vodilnih(tabela): '''vrne število vodilnih elementov v tabeli''' st_vodilnih = 0 for i in range(len(tabela)-1): if tabela[i] > max(tabela[(i+1):]): st_vodilnih += 1 return st_vodilnih + 1 2010.1.2Abecedni podnizi 1. podnalogaV nekaterih besedah se zgodi, da si več zaporednih črk sledi v abecednem vrstnem redu in to celo tako, da vmes nobena ne manjka. Takemu zaporedju črk pravimo abecedni podniz. Nekaj primerov: ab v besedi nabava, jkl v primanjkljaj, hij v monarhija, mnop v limnoplankton, abc v vrabci (podniz abci pa ni abecedni podniz, ker je sicer i v abecedi za c, vendar so vmes v abecedi še druge črke). NalogaNapiši funkcijo Vhodni podatkiTabela nizov z besedami. Posamezna beseda je dolga največ sto znakov. Da bo lažje, uporabljamo pri tej nalogi angleško abecedo (le male črke):
Izhodni podatkiInteger Uradna rešitevdef abecedni_podnizi(tabela): '''sprejme tabelo nizov in vrne dolžino najdaljšega abecednega podniza''' abeceda = 'abcdefghijklmnopqrstuvwxyz' naj = 0 for beseda in tabela: beseda += ' ' for beseda in tabela: stevec = 0 for i in range(len(beseda)-1): if abeceda.index(beseda[i]) == abeceda.index(beseda[i+1])-1: stevec += 1 if abeceda.index(beseda[i]) != abeceda.index(beseda[i+1])-1: if stevec >= naj: naj = stevec stevec = 0 return naj+1 2010.1.4Cikel 1. podnalogaNa zabavi s super muziko se znajde Nekaj časa traja, da se organizirajo, nato pa vlakec le začne pohod. Skozi režo v
vratih jih opazuje vratar, ki sicer ne more videti vseh plesalcev naenkrat, ga pa vseeno
zanima, v kakšni formaciji plešejo. Zato je v mislih oštevilčil plesalce s številkami
od NalogaNapiši funkcijo Vhodni podatkiTabela Izhodni podatkiNiz „V KROGU“ ali „PO SVOJE“. Uradna rešitevdef cikel(seznam): '''pove, ali so plesalci na zabavi v enem krogu, ali pa v večih''' prvi_v_krogu = 1 naslednji = prvi_v_krogu i = 0 #gremo po vlakcu, dokler ne pridemo do prvega v krogu. #Nato preverimo, če smo prišli čez cel seznam ali ne while True: naslednji = seznam[naslednji] i += 1 if naslednji==prvi_v_krogu: break if i == len(seznam): return 'V KROGU' else: return 'PO SVOJE' 2010.1.5Kvadrati s seštevanjem 1. podnalogaNalogaNapiši funkcijo Vhodni podatkiinteger Izhodni podatkitabela kvadratov števil od
Uradna rešitevdef kvadrati(n): '''vrne tabelo kvadriranih števil [1,...,n] le z uporabo seštevanja''' seznam_kvadratov = [] # k^2 = k + ... + k (k krat). for i in range(1,n+1): kvadrat = 0 for j in range(1,i+1): kvadrat += i seznam_kvadratov.append(kvadrat) return seznam_kvadratov 2010.2.1Poštne številke 1. podnalogaPošta Slovenije pogosto dobi pisma z nečitljivimi poštnimi številkami, saj ljudje pišejo
tako, da je nekatere števke težko razbrati. Še posebej pogosto prihaja do zamenjave med NalogaNapiši funkcijo Vhodni podatkiArgument funkcije je štirimestno število
Izhodni podatkiFunkcija naj vrne seznam vseh variant poštne številke (ne nujno v tem vrstnem redu).
Uradna rešitevfrom functools import reduce def Variante(k): '''Vrne poštno številko v vseh možnih variantah najpogostejših napak''' k = str(k) variante = ['0', '147', '2', '38', '147', '56', '56', '147', '38', '9'] vse_mozne = [] tisocica = int(k[0]) stotica = int(k[1]) desetica = int(k[2]) enica = int(k[3]) for napaka_tisoc in variante[tisocica]: for napaka_stot in variante[stotica]: for napaka_deset in variante[desetica]: for napaka_enica in variante[enica]: vse_mozne.append(napaka_tisoc + napaka_stot + napaka_deset + napaka_enica) return sorted(list(map(int,list(set(vse_mozne)))))Mesto objave ob koncu projekta 15.9.2018 |