Třídy  13. ledna 2022

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

0.

Vytvoř třidu Ctverec s jedním atributem strana a metodami obvod(), obsah() a rozdil_obsahu(jiny_ctverec), která vrátí rozdíl obsahů dvou čtverců – zadaného a toho jehož metodu voláme.

1.

Vytvoř třídu 'Kruh' s atributem 'polomer' a stejnými metodami 'obvod()' a 'obsah()' jako měla třída 'Ctverec'.

2.

Vytvoř třídu 'Obdelnik' s atributy pro délky stran a opět stejnými metodami 'obvod()' a 'obsah()' jako měla minule třída 'Ctverec'.

3.

Zkus použít dědičnost tak, aby třídy 'Ctverec', 'Kruh' i 'Obdelnik' mohly používat společnou metodu 'rozdil_obsahu(jiny_objekt)' a aby tato metoda fungovala i mezi objekty různých tříd.

Takže bude například možné zjistit rozdíl obsahu čtverce a kruhu

4.

Vytvoř třídu Osoba, která bude reprezentovat osobu a její rodiče. Každá osoba bude mít své jméno a dva rodiče (každý rodič bude také instancí třídy Osoba). Vytvoř funkce, které budou zjišťovat příbuzenské vztahy mezi osobami:

def je_vlastni_sourozenec(a, b):
  """Vrátí True, pokud `a` a `b` jsou vlastní sourozenci.
  V opačném případě vrátí False."""
  pass

def je_sourozenec(a, b):
  """Vrátí True, pokud `a` a `b` jsou sourozenci (ať už vlastní nebo nevlastní).
  V opačném případě vrátí False."""
  pass

def je_prarodic(a, b):
  """Vrátí True, pokud osoba `a` je prarodičem osoby `b`.
  V opačném případě vrátí False."""
  pass

def je_potomek(a, b):
  """Vrátí True, pokud osoba `a` je (libovolným) potomkem osoby `b`.
  Tj. `a` může být synem/dcerou, vnukem/vnučkou, pravnukem/pravnučkou, atd.
  V opačném případě vrátí False."""
  pass