Jste programátorem simulace života dinosaurů. V libovolném programovacím jazyce vytvořte třídu Dinosaurus. Každý dinosaurus má věk, výšku a metodu: sezer(co). Chování této metody je upřesněno podtřídami dinosaura: Velociraptor a Brontosaurus.
Brontosaurus má navíc vlastnost váha a při zavolání metody sezer(co) se váha zvýší o jedna. Brontosaurus žere pouze řetězce „trava“.
Velociraptor má navíc vlastnost obsah žaludku a při zavolání sezer(co) přidá do svého žaludku svoji oběť.
class Dinosaurus
def initialize(vek, vyska)
@vek = vek
@vyska = vyska
end
end
class Velociraptor < Dinosaurus
def initialize(vek, vyska)
super(vek, vyska)
@zaludek = []
end
def sezer(co)
@zaludek.push(co)
end
end
class Brontosaurus < Dinosaurus
def initialize(vek, vyska, vaha)
super(vek, vyska)
@vaha = vaha
end
def sezer(co)
if co != "trava" then
raise ArgumentError, "Brontosaurus žere jenom trávu"
end
@vaha += 1
end
end
karel = Brontosaurus.new(30, 5, 9000)
for i in 1..1000
karel.sezer("trava")
end
alois = Velociraptor.new(25, 3)
begin
karel.sezer(alois)
rescue ArgumentError => err
puts "Chyba: " + err
end
alois.sezer(karel)
#include <string>
#include <vector>
#include <iostream>
using namespace std;
class Dinosaurus {
int vek, vyska;
public:
Dinosaurus(int zadany_vek, int zadana_vyska) {
vek = zadany_vek;
vyska = zadana_vyska;
}
};
class Brontosaurus:Dinosaurus {
int vaha;
public:
Brontosaurus(int zadany_vek, int zadana_vyska, int zadana_vaha):
Dinosaurus(zadana_vyska, zadana_vaha) {
vaha = zadana_vaha;
}
void sezer(string co) {
if (co == "trava") {
vaha += 1;
}
else {
throw 1;
}
}
};
class Velociraptor:Dinosaurus {
vector<string> zaludek; //vector<libovolný typ> se chová jako pole proměnlivé velikosti libovolného typu
public:
Velociraptor(int zadany_vek, int zadana_vyska):
Dinosaurus(zadany_vek, zadana_vyska) {
zaludek = vector<string>();
}
void sezer(string co) {
zaludek.push_back(co);
}
};
int main() {
Brontosaurus karel = Brontosaurus(30, 5, 9000);
for (int i=0; i<1000; i++){
karel.sezer("trava");
}
try {
karel.sezer("punčový dort");
}
catch (int err) {
cout << "Brontosaurus nerad sladké" << endl;
}
Velociraptor alois = Velociraptor(25, 3);
alois.sezer("zajíc");
alois.sezer("vlk");
alois.sezer("medvěd");
alois.sezer("koblížek");
return 0
}