Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

70 satır
1.4KB

  1. #include<iostream>
  2. #include<cmath>
  3. const double pi = 3.1415926536;
  4. class Shape
  5. {
  6. public:
  7. virtual ~Shape () {};
  8. virtual double area () = 0;
  9. virtual double diameter () = 0;
  10. virtual double circumference () = 0;
  11. };
  12. // works on every shape
  13. double circumference_to_area (Shape &shape) {
  14. return shape.circumference()/shape.area();
  15. }
  16. class Circle : public Shape {
  17. public:
  18. Circle (double r) {radius = r;}
  19. virtual double area () {
  20. return pi*radius*radius;
  21. }
  22. virtual double diameter () {
  23. return 2*radius;
  24. }
  25. virtual double circumference () {
  26. return 2*pi*radius;
  27. }
  28. private:
  29. double radius;
  30. };
  31. class Rectangle : public Shape {
  32. public:
  33. Rectangle (double aa, double bb) {
  34. a = aa; b = bb;
  35. }
  36. virtual double area () {return a*b;}
  37. virtual double diameter () {
  38. return sqrt(a*a+b*b);
  39. }
  40. virtual double circumference () {
  41. return 2*(a+b);
  42. }
  43. private:
  44. double a, b;
  45. };
  46. int main ()
  47. {
  48. Rectangle unit_square(1.0, 1.0);
  49. Circle unit_circle(1.0);
  50. Circle unit_area_circle(1.0/sqrt(pi));
  51. std::cout << "Das Verhältnis von Umfang zu Fläche beträgt\n";
  52. std::cout << "Einheitsquadrat: "
  53. << circumference_to_area(unit_square)
  54. << std::endl;
  55. std::cout << "Kreis mit Fläche 1: "
  56. << circumference_to_area(unit_area_circle)
  57. << std::endl;
  58. std::cout << "Einheitskreis: "
  59. << circumference_to_area(unit_circle)
  60. << std::endl;
  61. return 0;
  62. }