Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <cmath>
- #include <cstdio>
- class figura {
- protected:
- double pole, obwod;
- public:
- void show_pole();
- void show_obwod();
- double return_obwod();
- double return_pole();
- virtual void wyswietl(){
- std::cout << "0\n";
- }
- virtual void oblicz_pole() {
- pole = 0;
- }
- virtual void oblicz_obwod() {
- obwod = 0;
- }
- };
- void figura::show_pole() {
- std::cout << "Pole figury wynosi : " << pole << std::endl;
- }
- void figura::show_obwod() {
- std::cout << "Obwod fiury wynosi : " << obwod << std::endl;
- }
- double figura::return_pole() {
- return pole;
- }
- double figura::return_obwod() {
- return obwod;
- }
- class kwadrat:public figura {
- protected:
- double bok;
- public:
- kwadrat();
- kwadrat(double a);
- kwadrat(kwadrat &k);
- void oblicz_pole();
- void oblicz_obwod();
- double return_bok();
- void wyswietl();
- };
- void kwadrat::oblicz_pole() {
- pole = bok * bok;
- }
- void kwadrat::oblicz_obwod() {
- obwod = 4 * bok;
- }
- double kwadrat::return_bok() {
- return bok;
- }
- void kwadrat::wyswietl() {
- std::cout << "figura jest kwadratem o polu : " << pole << " i obwodzie : " << obwod << std::endl;
- }
- kwadrat::kwadrat() {
- bok = (rand() % 10) + 1;
- oblicz_pole();
- oblicz_obwod();
- }
- kwadrat::kwadrat(double a) {
- bok = a;
- oblicz_pole();
- oblicz_obwod();
- }
- kwadrat::kwadrat(kwadrat &k) {
- bok = k.bok;
- oblicz_pole();
- oblicz_obwod();
- }
- class prostokat:public kwadrat {
- private:
- double wysokosc, szerokosc;
- public:
- prostokat();
- prostokat(double a);
- prostokat(double a, double b);
- void oblicz_pole();
- void oblicz_obwod();
- void wyswietl();
- };
- void prostokat::oblicz_pole() {
- pole = wysokosc * szerokosc;
- }
- void prostokat::oblicz_obwod() {
- obwod = (2 * szerokosc) + (2 * wysokosc);
- }
- void prostokat::wyswietl() {
- std::cout << "figura jest prostokatem o polu : " << pole << " i obwodzie : " << obwod << std::endl;
- }
- prostokat::prostokat() {
- szerokosc = (rand() % 10) + 1;
- wysokosc = (rand() % 10) + 1;
- oblicz_pole();
- oblicz_obwod();
- }
- prostokat::prostokat(double a) {
- szerokosc = a;
- wysokosc = a;
- bok = a;
- kwadrat::oblicz_pole();
- kwadrat::oblicz_obwod();
- }
- prostokat::prostokat(double a, double b) {
- szerokosc = a;
- wysokosc = b;
- oblicz_pole();
- oblicz_obwod();
- }
- class kolo :public figura {
- private:
- double promien;
- double pi = 3.14;
- public:
- kolo();
- kolo(double r);
- void oblicz_pole();
- void oblicz_obwod();
- void wyswietl();
- };
- void kolo::oblicz_pole() {
- pole = pi * (pow(promien, 2));
- }
- void kolo::oblicz_obwod() {
- obwod = 2 * pi*promien;
- }
- void kolo::wyswietl() {
- std::cout << "figura jest kolem o polu : " << pole << " i obwodzie : " << obwod << std::endl;
- }
- kolo::kolo() {
- promien = (rand() % 10) + 1;
- oblicz_pole();
- oblicz_obwod();
- }
- kolo::kolo(double r) {
- promien = r;
- oblicz_pole();
- oblicz_obwod();
- }
- class trojkat:public figura {
- private:
- double wysokosc, podstawa, przeciw_prostokatna;
- public:
- trojkat();
- trojkat(double a, double h);
- void oblicz_pole();
- void oblicz_obwod();
- void wyswietl();
- };
- void trojkat::oblicz_pole() {
- pole = (podstawa*wysokosc) / 2;
- }
- void trojkat::oblicz_obwod() {
- obwod = podstawa + wysokosc + przeciw_prostokatna;
- }
- void trojkat::wyswietl() {
- std::cout << "figura jest trojkatem o polu : " << pole << " i obwodzie : " << obwod << std::endl;
- }
- trojkat::trojkat() {
- podstawa = (rand() % 10) + 1;
- wysokosc = (rand() % 10) + 1;
- przeciw_prostokatna = sqrt((pow(podstawa, 2)) + (pow(wysokosc, 2)));
- oblicz_pole();
- oblicz_obwod();
- }
- trojkat::trojkat(double a, double h) {
- podstawa = a;
- wysokosc = h;
- przeciw_prostokatna = sqrt((pow(podstawa, 2)) + (pow(wysokosc, 2)));
- oblicz_pole();
- oblicz_obwod();
- }
- int main()
- {
- const int size = 8;
- srand(time(NULL));
- prostokat *w_pr_1 = new prostokat();
- prostokat *w_pr_2 = new prostokat(6);
- prostokat *w_pr_3 = new prostokat(4, 7);
- w_pr_1->show_pole();
- w_pr_2->show_pole();
- w_pr_3->show_pole();
- kwadrat *w_k_1 = new kwadrat(7);
- kwadrat *w_k_2 = new kwadrat(*w_k_1);
- trojkat *w_t_1 = new trojkat();
- trojkat *w_t_2 = new trojkat(3, 4);
- figura *w_o_1 = new kolo();
- figura *tab[size];
- figura tab2[size];
- tab[0] = w_pr_1;
- tab[1] = w_pr_2;
- tab[2] = w_pr_3;
- tab[3] = w_k_1;
- tab[4] = w_k_2;
- tab[5] = w_t_1;
- tab[6] = w_t_2;
- tab[7] = w_o_1;
- tab2[0] = *w_pr_1;
- tab2[1] = *w_pr_2;
- tab2[2] = *w_pr_3;
- tab2[3] = *w_k_1;
- tab2[4] = *w_k_2;
- tab2[5] = *w_t_1;
- tab2[6] = *w_t_2;
- tab2[7] = *w_o_1;
- for (int i = 0; i < size; i++)
- {
- for (int j = 0; j < size - 1; j++)
- {
- if (tab[j]->return_pole() > tab[j + 1]->return_pole()) std::swap(tab[j], tab[j + 1]);
- }
- }
- for (int i = 0; i < size; i++)
- {
- for (int j = 0; j < size - 1; j++)
- {
- if (tab2[j].return_pole() > tab2[j + 1].return_pole()) std::swap(tab2[j], tab2[j + 1]);
- }
- }
- for (int i = 0; i < size; i++)
- tab[i]->wyswietl();
- for (int i = 0; i < size; i++)
- tab2[i].wyswietl();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement