<?php
class Rectangle
{
public $type , $a , $b ;
public $area = 0 ;
public function Calc_rect_area( )
{
$this -> area = $this -> a * $this -> b ;
}
}
class Circle
{
public $type , $radius ;
public $area = 0 ;
public function Calc_circle_area( )
{
$this -> area = $this -> radius * $this -> radius * 3.14 ;
}
}
class Pyramid
{
// длина основания, ширина основания, длина стороны
public $type , $a , $b , $c ;
public $area = 0 ;
public function Calc_pyram_area( )
{
$checkPyr = 2 * $this -> c - $this -> a - $this -> b ; //проверяем стороны пирамиды
if ( $checkPyr < 0 ) {
return 0 ; //пирамида не омжет существовать
} elseif ( $checkPyr == 0 ) {
return $this -> a * $this -> b ; //вершина пирамиды находится на плоскости основания, то есть получился прямоугольник
} else {
$firstTriangleArea = $this -> b / 4 * sqrt ( 4 * $this -> c * $this -> c - $this -> b * $this -> b ) ; $secondTriangleArea = $this -> a / 4 * sqrt ( 4 * $this -> c * $this -> c - $this -> a * $this -> a ) ; $this -> area = $this -> a * $this -> b + 2 * $firstTriangleArea + 2 * $secondTriangleArea ;
}
}
}
$figures = Create_figures( ) ; //запускаем функцию создания фигур \
//sort
Show_figures( $figures ) ; //выводим типы созданных фигур
//далее мы создаем 5 фигур с рандомнями полями, рандомных типов, считаем их площади
function Create_figures( )
{
$figures = [ ] ;
for ( $i = 0 ; $i < 5 ; $i ++ ) {
if ( $typeID == 0 ) {
$figure = new Rectangle( ) ;
$figure -> type = "Rectangle" ;
$figure -> Calc_rect_area ( ) ;
$figure -> area ;
} elseif ( $typeID == 1 ) {
$figure = new Circle( ) ;
$figure -> type = "Circle" ;
$figure -> radius = rand ( 1 , 10 ) ; $figure -> Calc_circle_area ( ) ;
$figure -> area ;
} else {
$figure = new Pyramid( ) ;
$figure -> type = "Pyramid" ;
$figure -> Calc_pyram_area ( ) ;
$figure -> area ;
}
$figures [ ] = $figure ;
}
return $figures ;
}
//далее функция для вывода типов фигур перебором
function Show_figures( $figures ) {
$number = 1 ;
foreach ( $figures as $figure ) {
if ( $figure -> type == "Rectangle" ) {
echo "{$number} .{$figure->type} , площадь фигуры {$figure->area} <br/>" ;
} elseif ( $figure -> type == "Circle" ) {
echo "{$number} .{$figure->type} , площадь фигуры {$figure->area} <br/>" ;
} else {
echo "{$number} .{$figure->type} , площадь фигуры {$figure->area} <br/>" ;
}
$number ++;
}
}
?>
PD9waHAKY2xhc3MgUmVjdGFuZ2xlCnsKICAgIHB1YmxpYyAkdHlwZSwgJGEsICRiOwogICAgcHVibGljICRhcmVhID0gMDsKICAgIHB1YmxpYyBmdW5jdGlvbiBDYWxjX3JlY3RfYXJlYSgpCiAgICB7CiAgICAgICAgJHRoaXMtPmFyZWE9ICR0aGlzLT5hICogJHRoaXMtPmI7CiAgICB9Cn0KCmNsYXNzIENpcmNsZQp7CiAgICBwdWJsaWMgJHR5cGUsICRyYWRpdXM7CiAgICBwdWJsaWMgJGFyZWEgPSAwOwogICAgcHVibGljIGZ1bmN0aW9uIENhbGNfY2lyY2xlX2FyZWEoKQogICAgewogICAgICAgICR0aGlzLT5hcmVhID0gJHRoaXMtPnJhZGl1cyAqICR0aGlzLT5yYWRpdXMgKiAzLjE0OwogICAgfQp9CgpjbGFzcyBQeXJhbWlkCnsKICAgIC8vINC00LvQuNC90LAg0L7RgdC90L7QstCw0L3QuNGPLCDRiNC40YDQuNC90LAg0L7RgdC90L7QstCw0L3QuNGPLCDQtNC70LjQvdCwINGB0YLQvtGA0L7QvdGLCiAgICBwdWJsaWMgJHR5cGUsJGEsICRiLCAkYzsKICAgIHB1YmxpYyAkYXJlYSA9IDA7CiAgICBwdWJsaWMgZnVuY3Rpb24gQ2FsY19weXJhbV9hcmVhKCkKICAgIHsKICAgICAgICAkY2hlY2tQeXIgPSAyICogJHRoaXMtPmMgLSAkdGhpcy0+YSAtICR0aGlzLT5iOyAvL9C/0YDQvtCy0LXRgNGP0LXQvCDRgdGC0L7RgNC+0L3RiyDQv9C40YDQsNC80LjQtNGLCiAgICAgICAgaWYgKCRjaGVja1B5ciA8IDApIHsKICAgICAgICAgICAgcmV0dXJuIDA7IC8v0L/QuNGA0LDQvNC40LTQsCDQvdC1INC+0LzQttC10YIg0YHRg9GJ0LXRgdGC0LLQvtCy0LDRgtGMCiAgICAgICAgfSBlbHNlaWYgKCRjaGVja1B5ciA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+YSAqICR0aGlzLT5iOyAvL9Cy0LXRgNGI0LjQvdCwINC/0LjRgNCw0LzQuNC00Ysg0L3QsNGF0L7QtNC40YLRgdGPINC90LAg0L/Qu9C+0YHQutC+0YHRgtC4INC+0YHQvdC+0LLQsNC90LjRjywg0YLQviDQtdGB0YLRjCDQv9C+0LvRg9GH0LjQu9GB0Y8g0L/RgNGP0LzQvtGD0LPQvtC70YzQvdC40LoKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZmlyc3RUcmlhbmdsZUFyZWEgPSAkdGhpcy0+YiAvIDQgKiBzcXJ0KDQgKiAkdGhpcy0+YyAqICR0aGlzLT5jIC0gJHRoaXMtPmIgKiAkdGhpcy0+Yik7CiAgICAgICAgICAgICRzZWNvbmRUcmlhbmdsZUFyZWEgPSAkdGhpcy0+YSAvIDQgKiBzcXJ0KDQgKiAkdGhpcy0+YyAqICR0aGlzLT5jIC0gJHRoaXMtPmEgKiAkdGhpcy0+YSk7CiAgICAgICAgICAgICR0aGlzLT5hcmVhID0gJHRoaXMtPmEgKiAkdGhpcy0+YiArIDIgKiAkZmlyc3RUcmlhbmdsZUFyZWEgKyAyICogJHNlY29uZFRyaWFuZ2xlQXJlYTsKICAgICAgICB9CiAgICB9Cn0KCiRmaWd1cmVzID0gQ3JlYXRlX2ZpZ3VyZXMoKTsvL9C30LDQv9GD0YHQutCw0LXQvCDRhNGD0L3QutGG0LjRjiDRgdC+0LfQtNCw0L3QuNGPINGE0LjQs9GD0YAgXAovL3NvcnQKU2hvd19maWd1cmVzKCRmaWd1cmVzKTsgICAgIC8v0LLRi9Cy0L7QtNC40Lwg0YLQuNC/0Ysg0YHQvtC30LTQsNC90L3Ri9GFINGE0LjQs9GD0YAKCi8v0LTQsNC70LXQtSDQvNGLINGB0L7Qt9C00LDQtdC8IDUg0YTQuNCz0YPRgCDRgSDRgNCw0L3QtNC+0LzQvdGP0LzQuCDQv9C+0LvRj9C80LgsINGA0LDQvdC00L7QvNC90YvRhSDRgtC40L/QvtCyLCDRgdGH0LjRgtCw0LXQvCDQuNGFINC/0LvQvtGJ0LDQtNC4CmZ1bmN0aW9uIENyZWF0ZV9maWd1cmVzKCkKewogICAgJGZpZ3VyZXMgPSBbXTsKICAgIGZvciAoJGk9MDsgJGk8NTsgJGkrKyl7CiAgICAgICAgJHR5cGVJRCA9IHJhbmQoMCwzKTsKICAgICAgICBpZiAoJHR5cGVJRCA9PSAwKSB7CiAgICAgICAgICAgICRmaWd1cmUgPSBuZXcgUmVjdGFuZ2xlKCk7CiAgICAgICAgICAgICRmaWd1cmUtPnR5cGUgPSAiUmVjdGFuZ2xlIjsKICAgICAgICAgICAgJGZpZ3VyZS0+YSA9IHJhbmQoMSwxMCk7CiAgICAgICAgICAgICRmaWd1cmUtPmIgPSByYW5kKDEsMTApOwogICAgICAgICAgICAkZmlndXJlLT5DYWxjX3JlY3RfYXJlYSgpOwogICAgICAgICAgICAkZmlndXJlLT5hcmVhOwoKICAgICAgICB9IGVsc2VpZiAoICR0eXBlSUQgPT0gMSkgewogICAgICAgICAgICAkZmlndXJlID0gbmV3IENpcmNsZSgpOwogICAgICAgICAgICAkZmlndXJlLT50eXBlID0gIkNpcmNsZSI7CiAgICAgICAgICAgICRmaWd1cmUtPnJhZGl1cyA9IHJhbmQoMSwxMCk7CiAgICAgICAgICAgICRmaWd1cmUtPkNhbGNfY2lyY2xlX2FyZWEoKTsKICAgICAgICAgICAgJGZpZ3VyZS0+YXJlYTsKCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGZpZ3VyZSA9IG5ldyBQeXJhbWlkKCk7CiAgICAgICAgICAgICRmaWd1cmUtPnR5cGUgPSAiUHlyYW1pZCI7CiAgICAgICAgICAgICRmaWd1cmUtPmEgPSByYW5kKDEsMTApOwogICAgICAgICAgICAkZmlndXJlLT5iID0gcmFuZCgxLDEwKTsKICAgICAgICAgICAgJGZpZ3VyZS0+YyA9IHJhbmQoMSwxMCk7CiAgICAgICAgICAgICRmaWd1cmUtPkNhbGNfcHlyYW1fYXJlYSgpOwogICAgICAgICAgICAkZmlndXJlLT5hcmVhOwogICAgICAgIH0KICAgICAgICAkZmlndXJlc1tdID0gJGZpZ3VyZTsKCiAgICB9CiAgICByZXR1cm4gJGZpZ3VyZXM7Cn0KCi8v0LTQsNC70LXQtSDRhNGD0L3QutGG0LjRjyDQtNC70Y8g0LLRi9Cy0L7QtNCwINGC0LjQv9C+0LIg0YTQuNCz0YPRgCDQv9C10YDQtdCx0L7RgNC+0LwKZnVuY3Rpb24gU2hvd19maWd1cmVzKCRmaWd1cmVzKSB7CiAgICAkbnVtYmVyID0gMTsKICAgIGZvcmVhY2ggKCRmaWd1cmVzIGFzICRmaWd1cmUpIHsKICAgICAgICBpZiAoJGZpZ3VyZS0+dHlwZSA9PSAiUmVjdGFuZ2xlIikgewogICAgICAgICAgICBlY2hvICJ7JG51bWJlcn0ueyRmaWd1cmUtPnR5cGV9LCDQv9C70L7RidCw0LTRjCDRhNC40LPRg9GA0YsgeyRmaWd1cmUtPmFyZWF9PGJyLz4iOwogICAgICAgIH0gZWxzZWlmICgkZmlndXJlLT50eXBlID09ICJDaXJjbGUiKSB7CiAgICAgICAgICAgIGVjaG8gInskbnVtYmVyfS57JGZpZ3VyZS0+dHlwZX0sINC/0LvQvtGJ0LDQtNGMINGE0LjQs9GD0YDRiyB7JGZpZ3VyZS0+YXJlYX08YnIvPiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyAieyRudW1iZXJ9LnskZmlndXJlLT50eXBlfSwg0L/Qu9C+0YnQsNC00Ywg0YTQuNCz0YPRgNGLIHskZmlndXJlLT5hcmVhfTxici8+IjsKICAgICAgICB9CiAgICAgICAgJG51bWJlcisrOwogICAgfQp9Cgo/Pg==