Informatika2-2013/Osszefoglalas8 11

A MathWikiből
(Változatok közti eltérés)
71. sor: 71. sor:
  
 
'''Telefonkönyvbõl olvasás ''': [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas.py alap], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_kommentezve.py komment], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_minkommentezve.py minkomment], [http://math.bme.hu/~kkovacs/info2/gyak9/telefonkonyv.txt bemenet]
 
'''Telefonkönyvbõl olvasás ''': [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas.py alap], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_kommentezve.py komment], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_minkommentezve.py minkomment], [http://math.bme.hu/~kkovacs/info2/gyak9/telefonkonyv.txt bemenet]
 
 
<!-- Az olvasasnal nem zartam be a file-t -->
 
<!-- Az olvasasnal nem zartam be a file-t -->
  
 
=== Megjegyzés ===
 
=== Megjegyzés ===
 +
 +
Egy tanulsága az volt a gyakorlatnak, hogy stringeket raw_input-al olvasunk be, míg minden mást input-al. Mivel az input python szintaktikának megfelelõ bemenetet vár, szóval ha string-et akarnánk adni neki, akkor "-k közé kellene tenni.
 +
 +
Továbbá azt is megtanultuk, hogy nem csak listákat és szótárakat lehet bejárni for ciklussal, hanem akár file-okat is.
 +
 +
 +
== 10. Gyakorlat ==
 +
 +
=== Összefoglalás ===
 +
 +
Ezen a gyakorlaton kezdtünk el osztályokkal foglalkozni. Az osztályokról van [http://wiki.math.bme.hu/view/Informatika2-2013/Gyakorlat10#Oszt.C3.A1lyok itt] egy leírás, valamint az elõadásokon is meg lehet találni. Csak pár szóban foglalnám össze õket:
 +
 +
* Osztályokat tekinthetjük úgy, mintha egy új típust hoznánk létre, mondjuk a komplex számok típust.
 +
* Amikor létrehozunk egy adott osztályba tartozó (adott osztály típusú) változót, azt objektumnak hívjuk.
 +
* Az objektumoknak lehetnek adattagjaik, ezek változók, melyek az objektumhoz tartoznak. Valamint lehetnek metódusai, melyek függvények és az osztályában vannak definiálva.
 +
* Léteznek beépített metódusok, melyek adott parancsokra futnak le, ilyen például az __init__ mely akkor fut le amikor létrehozunk egy objektumot.
 +
* Az osztályok metódusainak elsõ paramétere mindig a '''self''', ami azt az objektumot tárolja amin meghívtuk a metódust.
 +
 +
=== Feladatok ===
 +
 +
A gyakorlat elsõ feladata azt mutatta be, hogy mi a különbség az osztály szintû és az objektum szintû adattagok között. Amikor '''A.v1'''-nek adunk értéket, azzal létrehozunk egy osztály szintû adattagot '''v1''' néven. Mikor egy '''A''' típusú objektumnak kérjük le a v1 adattagját, de neki nincs ilyenje, akkor megnézi hogy létezik-e ilyen néven osztály szintû adattag, ezt írja ki ilyenkor. Viszont ha adunk az objektumnak objektum szintû adattagot, akkor már ezt fogja használni és nem az osztály szintût.
 +
 +
A második feladatról a 11. gyakorlat összefoglalásában írok.

A lap 2013. május 7., 20:32-kori változata

Tartalomjegyzék

Megjegyzések

Az összefoglalást a gyakorlatokból írom, csak az elõadáson tanult elmélet nem igazán fog megjelenni benne.

Minden feladathoz 3 letölthetõ file van: egy komment nélküli, egy kommentezett, és egy kevésbé szájbarágósan kommentezett.

8. Gyakorlat

Összefoglalás

A gyakorlat célja az emlékeztetõ volt az info1-ben tanult sage és python használatra. Az ismétlés részben összefoglaltam ezeket, ezt most nem írnám le itt mégegyszer.

Feladatok

A feladatok célja az volt, hogy felfrissítse az emlékezeteteket a listák, ciklusok, stringek és szótárakról. A feladatok tényleg nagyon egyszerûek, jó ujjgyakorlat, ha megnézitek és megértitek a megoldásokat, ezután átnézitek a 9. gyakot, majd megpróbáljátok megoldani magatoktól a megnézett feladatokat (hogy ne az legyen, hogy csak a rövidtávú memóriátokban maradtak meg a megoldások ötletei). Az utolsó két feladatot nem oldottuk meg.

Kiegészítés 1: alap, komment, minkomment

Lista 1: alap, komment, minkomment

Lista 2: alap, komment, minkomment

Kiegészítés 2: alap, komment, minkomment

String 1: alap, komment, minkomment

String 2: alap, komment, minkomment

Megjegyzés

Nagyon fontos volt az elõadásról, hogy vannak objektumok melyeket nem lehet csak úgy =-vel lemásolni, erre egy példa:

l = [1, 8, 5]
l2 = l
l2[1] = 7
print l # [1, 7, 5]

Amint látjátok az l lista is megváltozott, pedig csak az l2 elemét változtattuk meg, ez azért van, mert az = jellel igazából azt mondtuk, hogy l2-vel érhessük el az l listát is.

A következõképpen lehet pl helyesen másolni egy listát (egy szintig).

l = [1, 8, 5]
l2 = l[:]
l2[1] = 7
print l # [1, 8, 5]

Az l[:]-al lekérem az l azon részlistáját, amely a 0. indexû elemtõl kezd, és az utolsóig tart, tehát a teljes listát. DE ez egy másolat, nem maga az l lista, tehát nem lesz vele gond.


9. Gyakorlat

Összefoglalás

A gyakorlat mindenféle input / output dolgokról szólt. Ezeket szerintem elég jól leírtam a gyakorlaton, így megint nem ismételném meg: link

Az osztályokról nem igazán volt idõm beszélni a 9. gyakorlatokon, a következõ résznél kezdem.

Feladatok

A feladatok elég közvetlenek voltak:

Hatványok kiírása : alap, komment, minkomment

Telefonkönyv : alap, komment, minkomment

Telefonkönyv file: alap, komment, minkomment

Telefonkönyvbõl olvasás : alap, komment, minkomment, bemenet

Megjegyzés

Egy tanulsága az volt a gyakorlatnak, hogy stringeket raw_input-al olvasunk be, míg minden mást input-al. Mivel az input python szintaktikának megfelelõ bemenetet vár, szóval ha string-et akarnánk adni neki, akkor "-k közé kellene tenni.

Továbbá azt is megtanultuk, hogy nem csak listákat és szótárakat lehet bejárni for ciklussal, hanem akár file-okat is.


10. Gyakorlat

Összefoglalás

Ezen a gyakorlaton kezdtünk el osztályokkal foglalkozni. Az osztályokról van itt egy leírás, valamint az elõadásokon is meg lehet találni. Csak pár szóban foglalnám össze õket:

  • Osztályokat tekinthetjük úgy, mintha egy új típust hoznánk létre, mondjuk a komplex számok típust.
  • Amikor létrehozunk egy adott osztályba tartozó (adott osztály típusú) változót, azt objektumnak hívjuk.
  • Az objektumoknak lehetnek adattagjaik, ezek változók, melyek az objektumhoz tartoznak. Valamint lehetnek metódusai, melyek függvények és az osztályában vannak definiálva.
  • Léteznek beépített metódusok, melyek adott parancsokra futnak le, ilyen például az __init__ mely akkor fut le amikor létrehozunk egy objektumot.
  • Az osztályok metódusainak elsõ paramétere mindig a self, ami azt az objektumot tárolja amin meghívtuk a metódust.

Feladatok

A gyakorlat elsõ feladata azt mutatta be, hogy mi a különbség az osztály szintû és az objektum szintû adattagok között. Amikor A.v1-nek adunk értéket, azzal létrehozunk egy osztály szintû adattagot v1 néven. Mikor egy A típusú objektumnak kérjük le a v1 adattagját, de neki nincs ilyenje, akkor megnézi hogy létezik-e ilyen néven osztály szintû adattag, ezt írja ki ilyenkor. Viszont ha adunk az objektumnak objektum szintû adattagot, akkor már ezt fogja használni és nem az osztály szintût.

A második feladatról a 11. gyakorlat összefoglalásában írok.

Személyes eszközök