Решение 6 задачи ( второй способ )
Primary tabs
Предыдущий вариант здесь: http://fkn.ktu10.com/?q=comment/3963#comment-3963
<?php class Point { public $x; public $y; function __construct($x, $y) { $this->x = $x; $this->y = $y; } function distance(Point $point) { return sqrt ( pow($this-> x - $point-> x,2 ) + pow( $this-> y - $point-> y, 2) ); } } class Trapezoid { public $A; public $B; public $C; public $D; public $perimetr; public $s; function isEquilateral() { if ( $c == true ) { echo "Equilateral <BR>"; } else { echo "NonEquilateral <BR>"; } } function getSquare($s) { echo "Square: ",$s,"<BR>" ; } function getPerimeter($perimetr) { echo "Perimetr: ",$perimetr,"<BR>" ; } } $summaploshad=0; $N=3; for ( $i = 0; $i < $N; $i++) { echo "*********************************<BR>"; $A = new Point (rand(5,20),rand(5,20)); $B = new Point (rand(5,20),rand(5,20)); $C = new Point (rand(5,20),rand(5,20)); $D = new Point (rand(5,20),rand(5,20)); echo "AB: ", $A -> distance ($B),"<BR>" ; echo "BC: ", $B -> distance ($C),"<BR>" ; echo "DC: ", $C -> distance ($D) ,"<BR>"; echo "DA: ",$D -> distance ($A) ,"<BR>"; $s[$i] = (($D->distance($A)+$B->distance ($C))/2)*sqrt(pow($A ->distance ($B),2)-pow(($D -> distance ($A)-$B -> distance ($C) )/2,2)) ; $perimetr =$A->distance ($B)+$B->distance($C)+$C->distance($D)+$D->distance($A); $b [$i] = new Trapezoid (); $b [$i]-> isEquilateral($A -> distance ($B) == $C -> distance ($D)); $b [$i]->getPerimeter($perimetr); $b [$i]->getSquare($s[$i]); $sumsquare += $s[$i]; } $Averagearea = $sumsquare/$N; $k=0; for ( $i = 0; $i < $N; $i++) { if ( $s[$i] > $Averagearea) { $k =$k +1; } } echo "<BR> <BR> <BR> Summa ploshad: ", $sumsquare, "<BR>"; echo $sumsquare, "/",$N, " Srednya ploshad: ", $Averagearea, "<BR>" ; echo "Kolichtstvo trapecii ploshad bolshe srednei: ", $k; ?>
- Log in to post comments
- 1852 reads
math2
Sun, 06/21/2020 - 20:46
Permalink
Этот скрипт выполняется с
Этот скрипт выполняется с ошибками.
Предлагаю задачу: реализовать метод getLengthOfLineSegment в классе Trapeziod.
getLengthOfLineSegment должен принимать строку -- название отрезка (например AB', 'CD', 'AC')
и возвращать длину этого отрезка. Ниже в коде пояснение, как это сделать.