Imperatív programozás

Hasonló dokumentumok
Imperatív programozás

Imperatív programozás

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

A Python programozási nyelv

2016, Diszkrét matematika

A Python programozási nyelv

2018, Diszkrét matematika

Python tanfolyam Python bevezető I. rész

Programozási nyelvek Python

Komputeralgebra Rendszerek

Ismerkedés a Python programnyelvvel. és annak micropython változatával

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

2016, Diszkrét matematika

4.2. Tétel: Legyen gyenge rendezés az X halmazon. Legyen továbbá B X, amelyre

2016, Funkcionális programozás

2018, Diszkre t matematika. 8. elo ada s

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

2018, Funkcionális programozás

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

2018, Diszkre t matematika. 10. elo ada s

PYTHON. Avagy hosszú az út a BioPythonig

Alprogramok, paraméterátadás

2018, Diszkrét matematika

Smalltalk 2. Készítette: Szabó Éva

Python I. Vincze Dávid Miskolci Egyetem, IIT

Hálózatok építése és üzemeltetése

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Számítógépes Hálózatok. 1. gyakorlat

Számítógépes Hálózatok. 1. Gyakorlat

2018, Diszkrét matematika

A C programozási nyelv II. Utasítások. A függvény.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

2018, Funkcionális programozás

A félév során előkerülő témakörök

2019, Funkcionális programozás. 4. el adás. MÁRTON Gyöngyvér

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér

Számítógépes Hálózatok GY 1.hét

2018, Diszkrét matematika

Apple Swift kurzus 3. gyakorlat

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Komputeralgebra rendszerek

2017, Diszkrét matematika

Python bevezető foglalkozás Python bevezető foglalkozás

2015, Diszkrét matematika

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

INFORMATIKA javítókulcs 2016

Listák, szótárak, fájlok Listák, szótárak, fájlok

Szoftvertechnolo gia gyakorlat

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Elemi programozási tételek középiskolásoknak, a Python 3 nyelvet alapul véve

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

2018, Funkcionális programozás

Komputeralgebra Rendszerek

A Python alapjainak áttekintése

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Komputeralgebra Rendszerek

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

2019, Diszkrét matematika. 1. el adás

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

2016, Funkcionális programozás

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Algoritmusok és adatszerkezetek II.

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Tuesday, March 6, 12. Hasító táblázatok

OOP: Java 4.Gy: Java osztályok

Osztályok. 4. gyakorlat

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

Reader /Writer InputStreamReader, OutputStreamWriter

Web-technológia PHP-vel

Powershell 2. gyakorlat

VISUAL BASIC ALAPISMERETEK

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Komplex feliratok készítése Maplex-el. Beke Dániel

Objektum Orientált Szoftverfejlesztés (jegyzet)

Nagy Gábor compalg.inf.elte.hu/ nagy

FUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Algoritmizálás és adatmodellezés tanítása 1. előadás

SZERVER OLDALI JAVASCRIPT. 7. hét Promise, async, error rst callback, grunt

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere

BASH script programozás II. Vezérlési szerkezetek

Cekla. Készítette Doxygen Tue Sep :13:44

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

Objektumorientált Programozás VI.

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Átírás:

Imperatív programozás 6. Előadás Python típusok (folytatás) Függvények

Típusok + műveleteik Listák - mutable (változtatható) - heterogén lista >>> lista = ["szo", 12, 3.5] >>> lista[1] 12 >>> lista[1:3] [12, 3.5] >>> lista[0:-1] ['szo', 12] >>> lista[1] = 24 >>> lista ['szo', 24, 3.5] >>> lista[2] = lista[2] + 4 >>> lista ['szo', 24, 7.5] >>> lista[1:2] = [12, "abc", 8] >>> lista ['szo', 12, 'abc', 8, 7.5] >>> lista[-2:] = [] >>> lista ['szo', 12, 'abc']

lista = [3, 4, 5, 2, 1] - új elem hozzávétele: - lista.append(6) lista == [3, 4, 5, 2, 1, 6] - megfordítás: - lista.reverse() lista ==[1, 2, 5, 4, 3] - rendezés: - lista.sort() lista ==[1, 2, 3, 4, 5] Listák további műveletei

Immutable vs Mutable s = "pelda" - s.upper() == 'PELDA' - s == "pelda" l = [5,4,2] - l.sort() == None - l == [2,4,5]

Magasabbrendű függvények listákra lista = [1, 2, 3, 4, 5, 6] - filter: - filter(lambda x: x%3==0, lista) == [3, 6] - map: - map(lambda x: x**2, lista) == [1, 4, 9, 16, 25, 36] map(lambda x, y : x+y, lista, lista) == [2, 4, 6, 8, 10, 12] map(lambda x, y: (x, y), [1, 2], [1, 2, 3, 4]) == [(1, 1), (2, 2), (None, 3), (None, 4)] map(none, [1, 2, 3], [2, 4, 5]) == [(1, 2), (2, 4), (3, 5)]

Lista konstruktorok - [x**2 for x in range(1,5)] == [1, 4, 9, 16] - [x**2 for x in range(1,5) if x%2 == 0] == [4, 16] - [x*y for x in [2,4] for y in [3,5]] == [6, 10, 12, 20] - [x*y for x, y in zip([2,4],[3,5])] == [6, 20] Megjegyzés zip([1,2,3],[5,6]) == [(1, 5), (2, 6)]

Típusok + műveleteik Rendezett n-esek (tuple-k) - immutable - heterogén elemek >>> tuple = (1, 2, 'abc') >>> tuple (1, 2, 'abc') >>> tuple = 1, 2, 'xyz' >>> tuple (1, 2, 'xyz') >>> tuple[2] 'xyz' >>> tuple[0:1] (1,) >>> tuple[0:2] (1, 2)

Típusok + műveleteik Rendezett n-esek (tuple-k) Immutable! >>> tuple[2] = 'abc' Traceback (most recent call last): File "<pyshell#22>", line 1, in <module> tuple[2] = 'abc' TypeError: 'tuple' object does not support item assignment

Típusok + műveleteik Halmaz - mutable érték - létrehozás lista = [1,3,2,1,4,2,3] s = set(lista) s == set([1, 2, 3, 4]) - eleme-e reláció: s = set([1, 2, 3, 4]) (4 in s) == True (5 in s) == False

Típusok + műveleteik Halmaz s == set([1, 2, 3, 4]) - új elem hozzávétele: s.add(5) s == set([1, 2, 3, 4, 5]) - elem törlése s.discard(3) s == set([1, 2, 4])

Típusok + műveleteik Halmazműveletek Halmaz a = set([1, 2, 3]), b = set([2, 3, 4]) - kivonás: a - b == set([1]) - unió: a b == set([1, 2, 3, 4]) - metszet: a & b == set([2, 3]) - xor, (a b) - (a&b): a ^ b == set([1,4])

Típusok + műveleteik Szótár adatszerkezet - mutable érték tel = {'Peter': 1234, 'Janos': 3456} - lekérdezés tel['peter'] == 1234 - módosítás tel['janos'] = 1287 tel == {'Peter': 1234, 'Janos': 1287} tel['jozsef'] = 6543 tel == {'Peter': 1234, 'Janos': 3456, 'Jozsef': 6543}

Típusok + műveleteik Szótár adatszerkezet tel = {'Peter': 1234, 'Janos': 3456, 'Jozsef': 6543} - törlés del tel['peter'] tel == {'Janos': 3456, 'Jozsef': 6543} - kulcsok lekérdezése - tel.keys() == ['Peter', 'Janos', 'Jozsef'] - tel.has_key('janos') == True tel.has_key('miklos') == False

Típusok + műveleteik Szótár adatszerkezet - létrehozás listából: dict([('a',2),('b',3),('c',42)]) == {'a': 2, 'c': 42, 'b': 3} dict([('a',2),('b',3),('c',42), ('a',43),('b',12)]) == {'a': 43, 'c': 42, 'b': 12} dict([(x,x**3) for x in [1,2,3] ]) == {1: 1, 2: 8, 3: 27}

Függvénydefiníció def lnko(x, y): "Két szám legnagyobb közös osztója." while not (x == y) : if x > y : x = x - y else : y = y - x return x

Függvénydefiníció def lnko(x, y): "Két szám legnagyobb közös osztója."... Megjegyzés: dokumentáció lnko. doc == "Két szám legnagyobb közös osztója."

Default paraméter értékek def lnko(x=10, y=15): "Két szám legnagyobb közös osztója." while not (x == y) : if x > y : x = x - y else : y = y - x return x

Függvény hívás, függvény objektum x = lnko() x = lnko(122) myfun = lnko x = lnko(324, 248) y = myfun(128, 24) x = lnko(y=120) x = lnko(y=120, x=22)

Paraméterátadás objektum referencia szerint (immutable vs. mutable) def mydouble(x): def mysort(l): x = 2*x l.sort() return x return l y = 125 ly = [3, 4, 2] z = mydoble(y) lz = mysort(ly) Eredmény: y == 125 ly == [2, 3, 4] z == 250 lz == [2, 3, 4]

Default paraméter értékek (immutable vs. mutable) x = 10 def myfun1(arg=x) : return arg lista = [10, 20] def myfun2(arg=lista) : return arg x = 20 myfun1() == 10 lista[1] = 30 myfun2() == [10, 30]

Láthatóság x = 20 y = 30 def myfun() : global x x = 10 y = 10 # global # local myfun() print(x, y) # 10 30

Láthatóság x = 20 y = 30 def myfun() : y = x # y local, x global print(y) # 20 myfun() print(x, y) # 20 30

Láthatóság x = 20 y = 30 def myfun() : y = x print(y) x = 10 # y local, x??? --- ERROR x local and unbound!!! # x local myfun() --- ERROR

Speciális függvénydefiníció def fv(x, y="egy", *args, **keyargs) : print ("x:", x) print ("y:", y) for arg in args: print (arg); for kw in keyargs.keys(): print (kw, ":", keyargs[kw]); Jó hívások: fv(5, 12, 3, z=24, h=21), fv(5, z=24, h=21) Rossz hívás: fv(5, 12, z=3, 4)