Informatika2-2021/Sz¼tGyak10

A MathWikiből
(Változatok közti eltérés)
(write_csv)
(write_csv)
 
(egy szerkesztő 8 közbeeső változata nincs mutatva)
11. sor: 11. sor:
 
Aljas nyolcas,2015,Samuel L. Jackson<br>
 
Aljas nyolcas,2015,Samuel L. Jackson<br>
 
'''masodik.csv''':<br>
 
'''masodik.csv''':<br>
Csonkar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bence<br>
+
Csonka&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bence<br>
 
Kombinatorika<br>
 
Kombinatorika<br>
Ács&nbsp;Filozógus<br>
+
Ács&nbsp;Filozófus<br>
Segítség: A stringet a szokásos módszerekkel formázzátok és a write helyesen fogja kiírni a fájlba. Pl.: masodik="Pintér\tJózsef\nKombinatorika\nNyomozó\tKertész" <br>
+
Ha Jupyter Notebookot használtok, akkor egyből meg is találjátok a fájlt a mappában. Bár az nem biztos, hogy meg fogja tudni nyitni, de ne ijedjetek meg. Ha le akarjátok ellenőrizni, akkor keressétek meg a mappát amibe elmentette a fájlt és nyissátok meg mondjuk Notepad++-szal (vagy jegyzettömbbel).
+
  
 
== read_csv ==
 
== read_csv ==
23. sor: 21. sor:
 
A függvény adja vissza listák listáját, amiben a listák a soroknak felelnek meg, az elemek pedig a sorban található szavak megfelelően szétválasztva.
 
A függvény adja vissza listák listáját, amiben a listák a soroknak felelnek meg, az elemek pedig a sorban található szavak megfelelően szétválasztva.
  
== write_json ==  
+
== Parancssorból futtatás ==
Írjunk egy json fájlt, ami ugyanazokat az információkat tartalmazza, mint a két .csv fájlunk. <br>
+
A neve legyen elso_json.json, legyen benne két kulcs: elso és masodik. <br>
+
Mindkét kulcshoz tartozzon egy-egy lista, melyekben a .csv-kben megadott információk egy része szerepel valamilyen értelmes kulcs : érték pár formában.<br>
+
Például nálam: <br>
+
{'elso':{'Név' : 'Csonka Bence', 'Kedvenc filmem' : 'Aljas nyolcas'}, 'masodik':{'Név' : 'Csonka Bence', 'Milyen foglalkozást választanék' : ['Ács', 'Filozófus']}}
+
  
== read_json ==
+
Írjunk egy prim.py nevű programot, amit parancssorból tudunk futtatni, a bemenete tetszőlegesen sok pozitív egész szám és térjen vissza ezek legnagyobb közös osztójával. Emeljünk kivételt, ha valamelyik nem egy pozitív egész szám. <br>
Írjunk egy függvényt, aminek bemenete egy .json fájl, ami az általunk írttal megegyező formátumú. A kimenete pedig a .json fájlban szereplő embernek a kedvenc filmje.
+
Tipp: Ehhez használjuk a sys csomagot.
 +
 
 +
== Dinamikus programozás ==
 +
===Legnagyobb közös osztó===
 +
Implementáljuk a legnagyobb közös osztó függvényt (lnko) az [https://hu.wikipedia.org/wiki/Euklideszi_algoritmus euklideszi algoritm] segítségével rekurzívan!
 +
 
 +
===Zárt terület kifestése===
 +
Olvassuk be a [http://sandbox.hlt.bme.hu/~gaebor/ea_anyag/Info2/picture.txt picture.txt] fájlt listák listájába (minden karakter egy elem)! Írjunk egy fill(x,y) függvényt, ami ugyanazt csinálja, mint a Paint kitöltő funkciója! Az (x,y) pontból kiindulva a . helyére # jelet tesz, amíg a # jel által jelölt falba nem ütközik! A módszer rekurzív: kifestjük az (x,y) pontot, majd a szomszédait, ha azok nem # jelek. Hívjuk meg a szomszédokra (akik nem # jelek) a függvényt rekurzívan. Ha nincs kit kiszínezni, akkor álljunk meg!
 +
.....................................
 +
...#######################...........
 +
...#.....................#...........
 +
...#.....................#...........
 +
...#.....................#...........
 +
...#.....................#...........
 +
...#.....................#...........
 +
...#.....................#######.....
 +
...###.................##......#.....
 +
...#..##.............##........#.....
 +
...#....##.........##..........#.....
 +
...#......##.....##............#.....
 +
...#........#####..............#.....
 +
...#........#..................#.....
 +
...#.......##..................#.....
 +
...#.....##....................#.....
 +
...#...##......................#.....
 +
...#############################.....
 +
.....................................
 +
.....................................
 +
.....................................
 +
.....................................

A lap jelenlegi, 2021. április 21., 12:05-kori változata

Tartalomjegyzék

Feladatok

write_csv

Az előadáson tanultak alapján írjunk elso.csv és második.csv fájlokat.
Az elso.csv-be írjátok bele vesszővel elválasztva az első sorba a vezeték- és keresztneveteket.
A második sorba pedig vesszővel elválasztva a kedvenc filmetek címet, hogy mikor készült és a filmből 1 színésznek a nevét, illetve a rendezőt.
A masodik.csv fájl legyen hasonló az elso.csv-hez: Első sorba írjátok bele tabulátorral elválasztva a vezeték- és keresztneveteket.
A második sorba írjátok bele, hogy a matematika mely területe érdekel titeket a legjobban.
A harmadik sorban pedig az szerepeljen, hogy mit dolgoznátok szívesen a jövőben. (Több dolgot is fel lehet sorolni.)
Például az én esetemben így néznének ki ezek a fájlok:
elso.csv:
Csonka,Bence
Aljas nyolcas,2015,Samuel L. Jackson
masodik.csv:
Csonka      Bence
Kombinatorika
Ács Filozófus

read_csv

Írjunk egy függvényt, ami beolvas egy .csv fájlt.
A függvénynek legyen egy opcionális delimiter paramétere, aminek a default értéke legyen ','.
Írjuk meg úgy, hogy működjön a függvény akkor is, ha nem ','-vel vannak elválasztva az értékek a fájlban, hanem tabulátorral. (Ebben az esetben a bemenetben indikálja ezt delimiter='\t'paraméter is, nem kell, hogy automatikusan felismerje.)
A függvény adja vissza listák listáját, amiben a listák a soroknak felelnek meg, az elemek pedig a sorban található szavak megfelelően szétválasztva.

Parancssorból futtatás

Írjunk egy prim.py nevű programot, amit parancssorból tudunk futtatni, a bemenete tetszőlegesen sok pozitív egész szám és térjen vissza ezek legnagyobb közös osztójával. Emeljünk kivételt, ha valamelyik nem egy pozitív egész szám.
Tipp: Ehhez használjuk a sys csomagot.

Dinamikus programozás

Legnagyobb közös osztó

Implementáljuk a legnagyobb közös osztó függvényt (lnko) az euklideszi algoritm segítségével rekurzívan!

Zárt terület kifestése

Olvassuk be a picture.txt fájlt listák listájába (minden karakter egy elem)! Írjunk egy fill(x,y) függvényt, ami ugyanazt csinálja, mint a Paint kitöltő funkciója! Az (x,y) pontból kiindulva a . helyére # jelet tesz, amíg a # jel által jelölt falba nem ütközik! A módszer rekurzív: kifestjük az (x,y) pontot, majd a szomszédait, ha azok nem # jelek. Hívjuk meg a szomszédokra (akik nem # jelek) a függvényt rekurzívan. Ha nincs kit kiszínezni, akkor álljunk meg!

.....................................
...#######################...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#######.....
...###.................##......#.....
...#..##.............##........#.....
...#....##.........##..........#.....
...#......##.....##............#.....
...#........#####..............#.....
...#........#..................#.....
...#.......##..................#.....
...#.....##....................#.....
...#...##......................#.....
...#############################.....
.....................................
.....................................
.....................................
.....................................
Személyes eszközök