fork download
  1. <?php
  2.  
  3.  
  4. class Iron
  5. {
  6. // Свойства
  7. public $powerSupply; // Питание
  8. public $toggle; // Тумблер
  9. public $water; // Вода
  10. public $temp = 24; // Температура
  11.  
  12. // Методы
  13. public function __construct($powerSupply, $water)
  14. {
  15. $this->powerSupply = $powerSupply;
  16. $this->water = $water;
  17. }
  18.  
  19. public function turnOn() // Включить
  20. {
  21.  
  22. if ($this->powerSupply) {
  23.  
  24. if (!$this->toggle) {
  25.  
  26. $this->toggle = 1;
  27. echo "Утюг включён\n\n";
  28. $this->warmUp();
  29.  
  30. } else {
  31. echo "Утюг уже был включён\n\n";
  32. }
  33.  
  34. } else {
  35. echo "Отсутствует питание\n\n";
  36. }
  37.  
  38. }
  39.  
  40. public function warmUp() // Разогреть
  41. {
  42.  
  43. if ($this->toggle) {
  44.  
  45. if ($this->temp <= 60) {
  46.  
  47. echo "Начался разогрев:\n";
  48. echo "{$this->temp} °C\n...\n";
  49.  
  50. while ($this->temp < 90) {
  51. $this->temp++;
  52. }
  53.  
  54. echo "{$this->temp} °C\n";
  55. echo "Разогрев завершен, можно гладить\n\n";
  56.  
  57. } else {
  58. echo "Разогрев не требуется\n\n";
  59. }
  60.  
  61. } else {
  62. echo "Утюг не включен\n\n";
  63. }
  64.  
  65. }
  66.  
  67. public function iron($water = 0) // Гладить
  68. {
  69.  
  70. // Добавляем воды
  71. if (isset($water)) {
  72. $this->water += $water;
  73. }
  74.  
  75. if ($this->toggle) {
  76.  
  77. if ($this->water >= 100) {
  78.  
  79. if ($this->temp <= 60) {
  80. echo "Требуется разогрев\n\n";
  81. $this->warmUp();
  82. }
  83.  
  84. echo "Гладим белье\n...\n";
  85. $this->water -= 100;
  86. $this->temp -= 10;
  87. echo "Белье поглажено\n\n";
  88.  
  89. } else {
  90. echo "Недостаточно воды\n\n";
  91. }
  92.  
  93. } else {
  94. echo "Утюг не включен\n\n";
  95. }
  96.  
  97. }
  98.  
  99. public function standIdle() // Ожидать
  100. {
  101.  
  102. echo "Утюг в режиме ожидания\n\n";
  103. // Со временем остывает
  104. while ($this->temp >= 60) {
  105. $this->temp--;
  106. }
  107. $this->warmUp();
  108.  
  109. }
  110.  
  111. public function switchOff() { // Выключить
  112.  
  113. if ($this->toggle) {
  114. $this->toggle = 0;
  115. $this->temp = 24;
  116. echo "Утюг выключен\n\n";
  117. } else {
  118. echo "Утюг не был включен\n\n";
  119. }
  120.  
  121. }
  122.  
  123. }
  124.  
  125. $iron = new Iron(1, 300);
  126. $iron->turnOn();
  127. $iron->iron();
  128. $iron->iron();
  129. $iron->standIdle();
  130. $iron->iron();
  131. $iron->iron(100);
  132. $iron->switchOff();
Success #stdin #stdout 0.04s 82560KB
stdin
Standard input is empty
stdout
Утюг включён

Начался разогрев:
24 °C
...
90 °C
Разогрев завершен, можно гладить

Гладим белье
...
Белье поглажено

Гладим белье
...
Белье поглажено

Утюг в режиме ожидания

Начался разогрев:
59 °C
...
90 °C
Разогрев завершен, можно гладить

Гладим белье
...
Белье поглажено

Гладим белье
...
Белье поглажено

Утюг выключен