You are on page 1of 28

SGMIFX30XXN

SGMIF1841MN

Informatika I.
Számítástechnika I.
3. előadás

Orova Lászlóné dr.

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Témakörök
• Vezérlési szerkezetek
• Függvények
• Modulok
• Docstring
• Sítlusos programozás

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

VEZÉRLÉSI SZERKEZETEK

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Alapvető vezérlési szerkezetek

kezdeti értékek
beállítása

ismétlődő
utasítás(ok)

IGAZ
feltétel

HAMIS

Szekvencia elemi Elágazás Ciklus


utasításokkal

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Szekvencia –
pl. téglalap Be: a, b

• Feladat: kérje be a
felhasználótól a
téglalap oldalait

• Számítsa ki és írassa
ki a téglalap kerületét
és területét
Ki: k, T

Változók: a, b, k, T
valósak
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

Szekvencia – pl. téglalap

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Elágazás1
Egyirányú Kétirányú

IGAZ HAMIS
feltétel

utasítás(ok) utasítás(ok)

if feltétel: if feltétel:
utasítás(ok) utasítás(ok)
else:
utasítás(ok)
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

Elágazás2
Háromirányú

IGAZ
feltétel
HAMIS if feltétel:
utasítás(ok)
IGAZ HAMIS
elif feltétel2:
utasítás(ok)1 feltétel2
utasítás(ok)
utasítás(ok)2 utasítás(ok)3
else:
utasítás(ok)

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Elágazás - pl. pozitív?

Start

be: x

IGAZ HAMIS
x>0

ki: "pozitív" ki: "nem pozitív"

Stop

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Ciklus - While

kezdeti értékek
beállítása

értékadás
ismétlődő
utasítás(ok)
while feltétel:
IGAZ
feltétel utasítás(ok)
HAMIS

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Ciklus – pl. számokat kiír

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Ciklus – pl. számokat kiír (2)

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

FÜGGVÉNYEK

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Függvények
Beépített Saját
• Pl.:
• abs(), bin(), bool, chr(), eval(), float(),
help(), hex(), input(), int(), len(),
list(), max(), min(), ord(), pow(),
?
print(), range(), round(), str(), sum(),
type(),

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Függvények
Összetartozó utasítások névvel ellátott
sorozata (Python)
Előny:
• áttekinthetőbb a program kódja
• egy adott feladatra csak egyszer kell a kódot
megírni
Fv-el kapcsolatos műveletek:
• definíció
• meghívás – pl.: print(„”x=„”)
– (beépített függvény, név, paraméter)
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

Függvény definíció
def fv_nev([parameterek]) :
utasítások
Összetett utasítás:
• fejléc
• törzs
Indentálás: 4 space

Néhány BNF jelölés


[…]: opcionális
| : vagy
* : ismétlések száma (lehet 0 is)
+: ismétlések száma (1, vagy több)
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

Függvény pl.

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Függvény pl2.
A négyzet területe kisebb-e, mint 100
(a már megírt kódokat felhasználva!)

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Függvény hívása függvényből


a: formális paraméter (megadva: fv. definiálásakor)

t: aktuális paraméter (megadva: fv. hívásakor)

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Függvény paraméterei
• Beépített függvények
– Pl.: matematikai: int(), abs(),…

• Saját függvények
– Nem volt, ill. volt paramétere

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Visszatérési érték
Eredmény
• érték, pl.: max()
– Produktív függvény
• nem érték, pl.: amiket eddig írtunk
– Void függvény (más nyelvekben: eljárás)

Hogy lehet produktív fv-t írni?

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Produktív függvény pl.


Derékszögű háromszög átfogója

c: lokális változó, csak a fv. végrehajtása alatt létezik


• Értékadáskor jön létre
• Függvényből visszatérve megszűnik
• Minden fv. csak a sajátját látja
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

Produktív függvény pl.


Derékszögű háromszög átfogója

• Aktuális paraméter (argumentum), pl.: 3, 4:


– híváskor a megadás sorrendje számít
– Lehet változó is (nemcsak konstans) – híváskor
Orova Lászlóné dr.
elhagyható
SGMIFX30XXN
SGMIF1841MN

Függvényhívás menete
fv. hívás: main()
main() meghívja
az utasítássorainak
megfelelő
sorrendben a többi
fv-t

1. kör_terulet(r)
• main()-től
megkapja a
Főprogram szükséges
paraméter
értékét
• Visszadaja t
értékét a hívónak
Program indítása
2. kisebb_e(a)…
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

MODULOK, DOCSTRINGS,
STÍLUSOS PROGRAMOZÁS

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Modulok
Korábban megírt függvénygyűjtemények
• Importálható fájlok: .py
• Modul használata
Import <modulnév> [ as <rövid_név>]
• Függvény használata
<modulnév>.<tagnév>

Orova Lászlóné dr.


SGMIFX30XXN
SGMIF1841MN

Docstring
Dokumentációs
sztringek a
dokumentumhoz
• Mire van szükség a fv.
meghívásához, mit ad
vissza eredményül?
• Futási idő alatt is
elérhetők a Python
eszközök számára
– # megjegyzés nem

Fejlesztőkörnyezetek megtalálják, felismerik, fv. nevének


beírása -> segédablakban megmutatja a docstringet
Orova Lászlóné dr.
SGMIFX30XXN
SGMIF1841MN

Stílusos programozás
Python Enhancement Proposal 8 (PEP 8)
• 4 szóköz az indentálásnál (tabulátorok helyett).
• Minden sor legfeljebb 78 karakter.
• Az import utasítások a fájl legelején.
• A függvénydefiníciók egymás után álljanak a szkriptben.
• Docstring a függvények dokumentálásához.
• Függvénydefiníciók elválasztása 2 üres sorral.
• A legfelső szintű utasítások, beleértve a
függvényhívások is, egy helyen, a program alján.
• Nevek:
– Osztályok (később) NagyKezdoBetu
– Változók, függvények: kisbetuk_alahazasjellel_elvalaszva
Orova Lászlóné dr.

You might also like