Informatika2-2016/Gyakorlat8

A MathWikiből
(Változatok közti eltérés)
(Feladatok)
(Overload)
26. sor: 26. sor:
  
 
== Overload ==
 
== Overload ==
1 Definiáljunk egy '''szumma''' függvényt, ami tetszőlegesen sok bemeneti paraméterének összegével tér vissza.
+
# Definiáljunk egy '''szumma''' függvényt, ami tetszőlegesen sok bemeneti paraméterének összegével tér vissza!
1 Dd
+
# Írjunk meg a '''lists_order''' függvényt a következőképp: bemenetei listák, a kimenete pedig az összes lista összes eleméből álló lista, növekvő sorrendben. Ne használjuk sem a '''sort''', sem a '''sorted''' beépített függvényt/metódust!

A lap 2016. április 6., 19:14-kori változata

Tartalomjegyzék

Előadás

8. elõadás

Feladatok

Nyissuk meg a Sypdert.

Alakzatok a vásznon

Alakzatok

Írjunk egy Shape osztályt.

  • Legyen x és y változója, ezek tárolják az alakzat pozícióját a síkon.
  • Legyen egy move metódusa, aminek egyetlen v paramétere van, egy kételemű lista, a vektor, amivel el kell mozgatni az alakzatot.

Definiáljuk a Shape osztály leszármazottaiként az

  • Ellipse ellipszis, legyen meg a kis- és nagytengelye (a,b)
  • Rectangle téglalap, legyen meg az oldalak hossza (a,b)

osztályokat. Mindkét esetben a pozíciójuk a súlypontjukat jelentse. Írjunk mindkét osztályhoz egy area függvényt, ami kiszámítja az alakzat területét!

Definiáljuk az Ellipse osztály equation metódusát, ami kiírja az adott ellipszis egyenletét!

Vászon

Definiáljuk a Canvas (vászon) osztályt.

  • Egyetlen tagváltozója legyen a shapes, ami alakzatok listáját tárolja.
  • Oldjuk meg, hogy az osztályunk iterálható legyen! Ehhez definiáljuk az __iter__(self) metódust, valamit a next(self) metódust, ahogy az előadáson láttuk.
  • Definiáljuk a crop metódust a következőképp: a bemeneti paraméter két pont koordinátája, ezek egy téglalap bal felső és jobb alsó pontjai. A függvény térjen vissza azon alakzatok listájával, amelyek a vásznon vannak és teljesen beleférnek az így definiált téglalapba. Ehhez a feladathoz az Ellipse és a Rectangle osztálynak is szüksége lesz egy box() metódusra, ami a legkisebb tartalmazó doboz bal felső és jobb alsó sarkait adja vissza.

Overload

  1. Definiáljunk egy szumma függvényt, ami tetszőlegesen sok bemeneti paraméterének összegével tér vissza!
  2. Írjunk meg a lists_order függvényt a következőképp: bemenetei listák, a kimenete pedig az összes lista összes eleméből álló lista, növekvő sorrendben. Ne használjuk sem a sort, sem a sorted beépített függvényt/metódust!
Személyes eszközök