You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
2.1 KiB

<?php
/*
Fichier qui définit des chose mais ne fait rien,
au sens informatique ceci peut être considéré comme un librairie
*/
abstract class forme
{
abstract function surface();
abstract function perimetre();
function type()
{
return ucfirst(get_class($this));
}
}
class cercle extends forme
{
private $rayon;
function __construct($rayon)
{
$this->rayon = $rayon;
}
function surface()
{
return M_PI * $this->rayon * $this->rayon;
}
function perimetre()
{
return M_PI * $this->rayon * 2;
}
}
class rectangle extends forme
{
protected $longeur;
protected $largeur;
function __construct($longeur, $largeur)
{
$this->longeur = $longeur;
$this->largeur = $largeur;
}
function surface()
{
return $this->longeur * $this->largeur;
}
function perimetre()
{
return 2 * $this->longeur + 2 * $this->largeur;
}
}
class carre extends rectangle
{
function __construct($cote)
{
$this->longeur = $cote;
$this->largeur = $cote;
}
function type()
{
return "Carré";
}
}
class triangle_rectangle extends forme
{
protected $hauteur;
protected $base;
function __construct($h, $b)
{
$this->hauteur = $h;
$this->base = $b;
}
function hypothenuse()
{
return sqrt($this->hauteur*$this->hauteur + $this->base*$this->base);
}
function surface()
{
return ($this->hauteur * $this->base) / 2;
}
function perimetre()
{
return $this->hauteur + $this->base + $this->hypothenuse();
}
function type()
{
return "Triangle Rectangle";
}
}