Professional Documents
Culture Documents
tételek
Definíció, algoritmus, Python példa, kapcsolódó
feladatok
2021.02.16
.
Tételek
Eldöntés
(Kiválasztás)
Keresés
(Bináris/Logaritmikus keresés)
Megszámlálás
Összegzés
Maximum/minimum kiválasztás
Rendezés (minimum kiválasztásos)
Kiválogatás
Szétválogatás
Eldöntés tétele
Adott N elemű A lista és egy T tulajdonság (T logikai
kifejezés vagy függvény)
Döntsük el, hogy van-e az A listának T tulajdonságú
eleme
i := 1
Ciklus amig (i <= N) és nem T(A(i))
i := i + 1
Ciklus vége
Ki: (i <= N)
Magyarázat:
Az elemek vizsgálatát az első elemtől kezdjük (i := 1), és
lépegetünk sorba az elemeken (i := i + 1), amíg el nem
érjük a lista végét (i ⇐ N), vagy nem találunk T
tulajdonságú elemet (nem T(A(i))). A visszatérési érték
akkor lesz igaz, ha nem értük el lista végét (i ⇐ N).
Eldöntés tétele (Python)
i=0 van=False
while i<N and not T(A[i]): for i in range(N):
i+=1 if T(A[i]):
print(i<N) van=True
print(van)
Hőmérséklet
Ismerjük egy hét napjainak napi átlaghőmérsékleteit
(fokok.txt, első sorában a darabszámmal). Igaz-e,
hogy folyamatosan emelkedett a hőmérséklet?
Eszperente
Állapítsuk meg egy szövegről (eszperente.txt), hogy
eszperente szöveg-e (eszperente szöveg az, amelyben
csak e és é magánhangzók szerepelnek)
Több mondat
Adott szövegről (eszperente.txt) döntsük el, hogy több
mondatból áll-e! (Mondathatár: mondatvégi írásjel,
szóköz, majd nagybetű)
Kiválasztás tétele
Adott N elemű A lista és egy T tulajdonság (T logikai kifejezés
vagy függvény) Tudjuk, hogy a listának van T tulajdonságú
eleme.
Adjunk meg egy T tulajdonságú elemet, vagy annak indexét
i := 1
Ciklus amig nem T(A(i))
i := i + 1
Ciklus vége
Ki: i, A(i)
Magyarázat:
Azért nem kell figyelni a ciklusban a végét, mert biztosan tudjuk,
hogy van ilyen elem. Kiírtuk mind az indexet és az értéket is.
Kiválasztás tétele (Python)
i=0 i = 0;
while not T(A[i]: for i in range(N):
i+=1 if T(A[i]):
print(i) break
print(A[i]) print(i)
print(A[i])
i=0 i = 0
while i<N and not T(A[i]): for i in range(N):
i+=1 if T(A[i]):
if i<N: break
print(i,":",A[i]) if i<N:
else: print(i,":",A[i])
print("Nincs") else:
print("Nincs")
osszeg=0 osszeg=0
for i in range(N): for v in A:
osszeg += A[i] osszeg += v
print(osszeg) print(osszeg)
// lista-függvénnyel
print( sum(A) )
Összegzés tétele (feladatok)
Hőmérséklet. Ismerjük két hét napjainak napi
átlaghőmérsékleteit (fokok.txt, első sorában a
darabszámmal).
Adjuk meg, mennyi volt a kétheti
átlaghőmérséklet.
Olvassuk be a rendezett.txt tartalmát a számítógép
memóriájába.
Az első sorban az elemszámot tartalmazza, utána
a rendezett adatokat.
Adjuk meg az elemek összegét
Egy repülőgép útvonalon mérik a tengerszinthez
viszonyított magasságot időnként és feljegyezték a
magassagok.txt-ben
Adjuk meg a mérések átlag magasságát.
Maximum/minimum
kiválasztás tétele
Adott N elemű A lista. Adjunk meg a legnagyobb
(vagy legkisebb) elemét és helyét
MaxIndex := 1
MinIndex := 1
Ciklus i: = 2-től N-ig
Ha A(i)>A(MaxIndex) akkor MaxIndex := i
Ha A(i)<A(MinIndex) akkor MinIndex := i
Ciklus vége
Ki: MaxIndex, A(MaxIndex)
Ki: MinIndex, A(MinIndex)
Megjegyzés:
Lehet, de felesleges az 1. elemet vizsgálni. Egyezőség
esetén az első legnagyobb/legkisebb értéket adja.
Miért?
Maximum/minimum
kiválasztás tétele (Python)
MaxHely = MinHely = 0
for i in range(1,N):
if A[i]>A[MaxHely]:
MaxHely=i
if A[i]<A[MinHely]):
MinHely=i
print("Max ",MaxHely,":",A[MaxHely])
print("Min ",MinHely,":",A[MinHely])
for i in range(N-1):
MinHely = i
for j in range(i+1,N):
if A[j]<A[MinHely]:
MinHely=j
A[i],A[MinHely] = A[MinHely], A[i]
// lista-függvénnyel
A.sort()
Minimum-kiválasztásos
rendezés tétele (feladatok)
Hőmérséklet. Ismerjük két hét napjainak napi
átlaghőmérsékleteit (fokok.txt, első sorában a
darabszámmal).
Írjuk ki csökkenő sorrendben a hőmérsékleteket
Egy repülőgép útvonalon mérik a tengerszinthez
viszonyított magasságot időnként és feljegyezték a
magassagok.txt-ben
Írjuk ki növekvő sorrendben a nem tengerszinti
feletti mérések eredményeit
Eszperente. Adott egy szöveg (eszperente.txt)
A szóközök mentén bontsunk szavakra és
rendezetten írjuk ki a képernyőre
Plusz ismétlődések nélkül
Megszámolva a szavakból hány darab szerepel
Kiválogatás tétele
Adott N elemű A lista és egy T tulajdonság (T logikai
kifejezés vagy függvény)
Válogassuk ki egy B listába az A lista T tulajdonságú
elemeit
db := 0
Ciklus i:=1-től N-ig
Ha T(A(i)) akkor
db := db + 1
B(db) := A(i)
Elágazás vége
Ciklus vége
Kérdések
Mi a szerepe db-nek? Mekkora elemszámú B-t
deklaráljunk?
Kiválogatás tétele (Python)
db=0 B=[]
B=[0]*N for v in A:
for i in range(N):
if T(v):
if T(A[i]):
B.append(v)
db+=1
B[db]=A[i]