Rattrapage Prog.Web 2015-2016

Problème 1 :

Soit les classes Point et Segment vues précédemment :

class Point

{ public $abs, $ord ; 

  public   function __construct ($x, $y)  

  { $this->abs = $x ;  $this->ord   = $y ; }

  public   function affiche () 

  { echo "Ceci est un point de coordonnées ",   

    $this->abs, " ", $this->ord, "<br>" ; 

  }

}

class Segment extends Point
{ public function __construct( Point $A, Point $B)
{ $this->debut = $A;
$this->fin = $B; }
public function longueur()
{ $L= sqrt( pow( ($this->fin->abs - $this->debut->abs),2) +
pow( ($this->fin->ord - $this->debut->ord),2) ) ;
return $L; }
public function affiche ()
{ echo "<br>Ceci est un Coté :<br>",
" - l'extrémité de Début : ", $this->debut->affiche(), "<br>" ,
" - l'extrémité de Fin : ", $this->fin->affiche(), "<br>"; }
public $debut, $fin;
}
1) Donner la définition de la classe Cercle qui étend la classe Segment et qui est caractérisée comme suit:

2) Donner la définition de la classe Triangle qui étend la classe Segment et qui est caractérisée comme suit:

3) Donner le script PHP (sans reprendre les définitions des classes ci-dessus) qui permet de :

[Voir la solution (script php complet)]

Problème 2 :

Soit la structure XML suivante :

Niveau 0 <Root>

Niveau 1 <Noeud1   att1="..." att2="...">

Niveau 2  <Noeud11>

Niveau 3    <Noeud11_f1 att1="..." att2="..."/>

          </Noeud11>

Niveau 2  <Noeud12> 

Niveau 3    <Noeud12_f1   att1="..."> 

Niveau 4       <Noeud12_f1_f1  att1="...">

Niveau 5          <Noeud12_f1_f1_f1> val </Noeud12_f1_f1_f1>

               </Noeud12_f1_f1>

             </Noeud12_f1>

           </Noeud12>

          </Noeud1>

         </Root>

Root (Noeud de niveau 0) peut contenir plusieurs noeuds de niveau 1 (Noeud1, Noeud2, etc.).
Un noeud de niveau i peut contenir plusieurs noeuds de niveau i+1 et ainsi de suite...

A. Donnez un script PHP qui permet d'afficher les attributs de tous les noeuds de différents niveaux existant dans le fichier XML.

[Voir la solution (script php complet)]

B. Donnez un script PHP qui permet d'afficher les valeurs val des noeuds de niveau 5

[Voir la solution (script php complet)]

C. Donner un script PHP qui permet d'ajouter un nouveau noeud de niveau 1.

[Voir la solution (script php complet)]