retour cours prog et BD

Licence Physique et Applications

Parcours Ingénierie (L3S6 / UE62)

TP n° 3 2007

Programmation et bases de données

Lors de ce TP, nous allons étudier la programmation en PHP. Vous travaillerez sous Linux. Quand je propose des liens, ce n'est pas nécessairement la seule adresse intéressante.

Comme nous l'avons vu en cours, le langage PHP est nécessairement écrit dans une page HTML, et sera interprété par un serveur Web. Coup de chance, vous avez accès à un serveur Web installé sur ipst-sv. En fait, il vous suffit de mettre vos fichiers (.html ou .php) dans le répertoire "public_html" qui est dans votre répertoire de travail. Si vous vous appelez Jean Dupont, vous accéderez directement à cette page dans un navigateur par l'adresse ipst-sv/~dupontj (partout à l'IPST, notre parefeux ne permet pas d'échange avec l'extérieur).

Petit rappel : dans une page HTML statique, tout ce qui a été écrit à l'origine est envoyé tel quel au client. Par contre, si une partie de la page est écrite en PHP (zone délimitée par "<?php" et "?>" ), ce que le programmeur à écrit est interprété par le serveur web qui exécute les calculs qu'on lui demande, et n'envoie au client que ce qui derrière un ordre "echo".

1) Préparez une page HTML très simple, avec toute la structure de base d'une page (head, body...), avec, dans le corps, unique un titre (votre nom par exemple), centré. Elle évitera de devoir tout réécrire à chaque question.

2) Vous allez désormais faire un programme séquentiel : à partir de 4 arguments nommés a, b, c, et x, votre programme calcule (et affiche) ax2+bx+c. Je vous rappelle que dans du PHP, on récupère les valeurs des arguments par $_GET["nom"] (attention aux majuscules). Si votre page s'appelle p1.php (le nom n'a pas d'importance, mais l'extension .php est obligatoire), testez par exemple : ipst-sv/~dupontj/p1.php?a=2&b=-1&c=2&x=2

3) Vous allez désormais utiliser des tests IF. Supposons qu'un problème physique se modélise par l'équation ax2+bx+c=0. Trouvez toutes les solutions (réelles), quelles que soient les valeurs a,b,c proposées par l'utilisateur (par exemple a=quantité de patates, b=fromage, c=vin, x nb d'amis que je peux inviter pour une tartiflette, plusieurs solutions suivant le type d'invités). sqrt($v) donne la racine de $v. Essayez 1,-3,2 / 1,-2,1 / 1,0,2 / 0,1,2

4) Vous allez désormais rechercher la première racine positive de ax3+bx2+cx+d=0. Attention, vous n'utiliserez pas la meilleure méthode, ce problème est uniquement posé pour vous faire travailler les boucles. Vous chercherez d'abord à encadrer la première racine positive (quand f(x) change de signe) par pas de 1 (si on arrive à 10000 on abandonne). Puis (si vous êtes bien avancé) dans un second temps on restreint l'encadrement de moitié jusqu'à ce qu'on ait une précision de 10-3 (cette méthode s'appelle la dichotomie).

5) Le but est d'approfondir le transfert d'arguments. Le premier point vous permettra d'en tester le principe, la suite d'aborder une application complète : le jeu du plus ou moins. L'ordinateur va nous faire jouer : il va choisir un nombre, nous allons tenter de le découvrir.

Vous avez une semaine au maximum pour me transmettre votre rapport de TP


retour cours prog et BD

P. TRAU, ULP-IPST, 2007