Eljutottunk az utolsó elemi programozási tételünkhöz, hát nem nagyszerű?:)
Lássuk:
A videóban ígértem egy prezentációt a karakterkódolásokról, hát íme: https://prezi.com/-h6xut8ieuos/karakterkodolasok-es-kodtablak/
És akkor a szokásos kódok. Következik a
Maximumkiválasztás:
Először pszeudokódban, általánosan:
sorozat = valamilyen lista, range, vagy más bejárható objektum legnagyobb = olyan érték, aminél tutira van nagyobb a sorozat-ban ciklus sorozat minden elem-ére ha az elem > legnagyobb: legnagyobb = elem elágazás vége ciklus vége
Aztán Pythonban, értékek szerint bejárva a bejárható objektumot:
legnagyobb = olyan érték, aminél tutira van nagyobb a lista-ban</pre> for elem in bejárható_objektum: if elem > legnagyobb: legnagyobb = elem print(elem)
Indexek szerint bejárósat nem is írok, mert
- mostanra te is meg tudod írni, ugye?
- alig-alig kell
A Python egyszerűsítései:
- maximumkiválasztáshoz egyszerű esetekben használhatod a max() függvényt
- minimumkiválasztáshoz egyszerű esetekben használhatod a min() függvényt
Feladatok
F0026a: Vágd be a maximumkiválasztás tételét!
F0026b: Adott a -2, 8, 7, -12, -22, 19, -5, 4 sorozat. Melyik a legkisebb eleme? Melyik a legkisebb pozitív eleme? (Megoldás itt.)
F0026c: Határozzuk meg a fenti sorozat legnagyobb abszolútértékű elemét! (Megoldás itt.)
F0026d: Keressük meg a fenti sorozatban a legnagyobb összegű szomszédos elempárt! (Zsakó (szerk): Programozási feladatok, Kossuth, 1997 nyomán) (Megoldás itt.)
F0026e: Dobj fel egy kockát 10.000-szer! Melyik számot dobtad a legtöbbször? (Megoldás itt.)
F0026f: Az ['Elza', 'Melinda', 'Ferenc', 'Barbara', 'Vilma', 'Miklós', 'Ambrus', 'Mária', 'Natália', 'Judit', 'Árpád', 'Gabriella', 'Luca', 'Szilárda', 'Valér', 'Aletta', 'Lázár', 'Auguszta', 'Viola', 'Teofil', 'Tamás', 'Zénó', 'Viktória', 'Ádám', 'Eugénia', 'István', 'János', 'Kamilla', 'Tamara', 'Dávid', 'Szilveszter'] listából add meg a leghosszabb nevet! Ha több ilyen hosszúságú név is van, add meg mindet! (Megoldás itt.)
Szia! Az baj, ha így csalok (az előzőek alapján)?:
import random
dobasok = []
for _ in range(10000):
dobasok.append(random.randint(1,6))
lista = [(dobasok.count(1)), (dobasok.count(2)), (dobasok.count(3)), (dobasok.count(4)), (dobasok.count(5)), (dobasok.count(6))]
print(lista)
print(max(lista), ‘dobás volt a legtöbb, ebből a számból:’ , lista.index(max(lista))+1)
KedvelésKedvelés
Óóó, dehogyis baj:) Sőt! Remek!
KedvelésKedvelés
🙂 De jó! Köszi.
KedvelésKedvelés
Szia!
Nem egyszerűbb, ha a maximum értéknek nem egy állandót, hanem rögtön a lista első elemét adjuk meg?
Ez esetben mindegy, hogy max vagy min kiválasztás lesz.
kiválasztás=számok[0]
KedvelésKedvelés
Nem tűnik rossz ötletnek! Azon töröm a fejem, vajh’ miért nem így van a “hivatalos” tételben… De nem jövök rá.
KedvelésKedvelés
F0026c-hez egy másik megközelítés:
sorozat =[ -2, 8, 7, -12, -22, 19, -5, 4 ]
if abs(max(sorozat)) > abs(min(sorozat)):
elem = max(sorozat)
else:
elem = min(sorozat)
print(‘Legnagyobb abszoluterteku elem:’, elem)
KedvelésKedvelés
0026d-hez:
Egész hasonlóan oldottam meg, de a kezdeti maximumot a sorozat első két elemének választottam.
Ez nem probléma, ugye?
sorozat = [-2, 8, 7, -12, -22, 19, -5, 4]
legnagyobb_par = sorozat[0] + sorozat[1]
for i in range(1,len(sorozat)):
teszt_par = sorozat[i-1] + sorozat[i]
if teszt_par > legnagyobb_par:
legnagyobb_par = teszt_par
print(‘A legnagyobb osszegu szomszedos elemek:’,sorozat[i-1],’es’, sorozat[i],’osszege:’,legnagyobb_par)
KedvelésKedvelés
Megoldásom max nélkül, egy külön listával:
számok = [-2, 8, 7, -12, -22, 19, -5, 4]
pozitív_szám = 0
pozitív_számok = []
for szám in számok:
if szám > 0:
pozitív_szám = szám
pozitív_számok.append(pozitív_szám)
print(‘A legkissebb pozitív elem:’,min(pozitív_számok))
KedvelésKedvelés