Vous êtes sur la page 1sur 3

Page 1/3

Unit dEnseignement en Informatique


Anne 2016-2017

2 anne ESTIA Etudiants


Examen de Systme dInformation Deuxime Session du 24 avril 2017
(dure 2h00, aucun document autoris)

Exercice 1 : Un service de calcul


Nous souhaitons proposer un service en ligne de calcul de matrices de rotation tridimensionnelle. Un
formulaire permettra de saisir la valeur de langle (en degr) ainsi que laxe de la rotation. Au
chargement de la page, langle et laxe par dfaut seront respectivement 0 et x.

Lutilisateur pourra choisir dautres valeurs, par exemple langle 45 et laxe y :

Pour crer des boutons radios dans le formulaire pour le choix de laxe, nous utiliserons les champs
de saisie de type radio . Par exemple, le code :
<input type="radio" name="choix" value="1" checked="checked" /> Choix 1 (par dfaut)
<input type="radio" name="choix" value="2" /> Choix 2

permettra dobtenir deux boutons dont le premier sera


slectionn par dfaut et dont les valeurs transmises au
script seront 1 et 2.

ESTIA 2 anne preuve dInformatique SI - N. Couture & G. Rivire - tudiants Estia 2018
Page 2/3
Pour faire le calcul, nous utiliserons un utils.inc.php
tableau PHP deux dimensions. Cela <?php
permettra de rutiliser la fonction /***
afficher_matrice3x3() qui affiche un * Cette fonction affiche une matrice 3x3,
* indexee a partir de 0, dans un tableau HTML
tableau deux dimensions avec un tableau */
HTML. function afficher_matrice3x3 ($mat) {
echo '<table>' ;
Pour accder aux cases des tableaux PHP for ($i = 0 ; $i < 3 ; $i++) {
deux dimensions il suffit de prciser les echo '<tr>' ;
for ($j = 0 ; $j < 3 ; $j++) {
indices successivement. echo '<td>'.$mat[$i][$j].'</td>' ;
Par exemple, pour initialiser la premire }
echo '</tr>' ;
case : }
$tab[0][0] = $val ; echo '</table>' ;
}
Ou encore, pour initialiser la troisime case
de la premire ligne : ?>
$tab[0][2] = $val ;

Question 1 : Daprs les exemples de lnonc, par quelle mthode langle et laxe de la rotation
sont-t-ils transmis au script rotation.php ?
Question 2 : crivez le code de la page de formulaire rotation.html.
Question 3 : crivez le code du script rotation.php.
Question subsidiaire : Nous souhaiterions maintenant changer ce service (manuel) en webservice
consultable par des programmes de smartphones (p.ex. : Android). Pour ce faire, quelles
modifications devrions-nous apporter au script rotation.php pour que les programmes
reoivent un flux facilement analysable ?

RAPPEL : Les matrices de rotation dun angle (en radians) autour des trois axes orthonorms
(x,y,z) dun espace euclidien tridimensionnel sont :
Axe x : Axe y : Axe z :
1 0 0 cos() 0 sin() cos() -sin() 0
0 cos() -sin() 0 1 0 sin() cos() 0
0 sin() cos() -sin() 0 cos() 0 0 1

MMENTO : Voici quelques lments de PHP pour vous aider mener bien ce travail
La constante M_PI dfinie la valeur du nombre Pi avec 20 dcimales.
La fonction cos permet de calculer le cosinus dun angle en radians. La valeur retourne est un
nombre rel compris entre -1 et 1.
float cos ( float $val ) ;

La fonction sin permet de calculer le sinus dun angle en radians. La valeur retourne est un nombre
rel compris entre -1 et 1.
float sin ( float $val ) ;
La fonction round permet de calculer la valeur arrondie selon la prcision choisie. La valeur
retourne est le nombre rel de la valeur arrondie.
float round ( float $val, int $precision ) ;

ESTIA 2 anne preuve dInformatique SI - N. Couture & G. Rivire - tudiants Estia 2018
Page 3/3
Exercice 2 : Complter le code manquant de ce fichier crit en Java
public class TheModele {

private Connection conn;

public (){
connectDatabase();
}

public void connectDatabase()


{
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();

String = "jdbc:mysql://localhost/tai_db";
setConn(DriverManager.getConnection(url, "root", ""));
}

[]
}

public void insertionDonnes(String prenom, String nom, String age){


try{

st = conn.createStatement();

st. ("INSERT INTO tai_db.employes


(Prenom, Nom, Age) VALUES ('"+ prenom + "', '"+ nom +"'," + age + ")");}

catch (SQLException ex) System.err.println(ex.getMessage());}


}

Exercice 3 : Complter le code manquant de ce fichier crit en Java


Compltez les parties manquantes de ce fichier nomm LeControler.java.
Il nest pas autoris de remplir une partie manquante par une toile * .

import java.util.ArrayList;
public class {
private TestTableView _testView;
private LeModel _leModel ;

public (){
_leModel = new ();
_testView = new (this);}

public void start(){


_testView.afficher(true);}

public void boutonQuoi(){


ArrayList<String[]> mesDonnees = new ArrayList<String[]>();
_leModel.insererDesDonnes();
mesDonnees = _leModel.getInfosLogin();
_testView.setTableData(mesDonnees);}
}

ESTIA 2 anne preuve dInformatique SI - N. Couture & G. Rivire - tudiants Estia 2018

Centres d'intérêt liés