• Aucun résultat trouvé

TP 01: Corrigé Programme n° 3 :

N/A
N/A
Protected

Academic year: 2022

Partager "TP 01: Corrigé Programme n° 3 :"

Copied!
6
0
0

Texte intégral

(1)

TP 01: Corrigé

Programme n° 3 :

Ecrivez l’algorithme puis le programme qui affiche l’âge de l’utilisateur en fonction des données qu’il devra saisir:

- année de naissance - année du jour en cours

Remarque : Il ne vous est pas demandé de tester le jour et le mois de naissance !

NB : Si vous êtes en avance, utilisez la fonction « date() » qui permet de récupérer l’année de la date système au lieu de la saisir.

Programme age Variables

anneeEnCours , anneerNaissance : Entiers Debut

Saisir anneeEnCours Saisir anneeNaissance

Afficher « Vous avez » , anneeEncours – anneeNaissance , « ans » Fin

<?php

$anneeEnCours=$_GET['annee']; // Facultatif selon paramétrage du serveur

$anneeNaissance=$_GET['naissance']; // Facultatif selon paramétrage du serveur echo "Vous êtes nés en $anneeNaissance .<br />";

echo "Vous avez ".($anneeEnCours - $anneeNaissance)." ans.<br />";

?>

Programme n° 4 :

Ecrivez l’algorithme puis le programme (n° 4) qui affiche pour 2 chiffres le résultat des différentes opérations mathématiques

Exemple:

Programme calcul Variables

Nb1 , nb2 : Entiers Resultat : réel Debut

Saisir nb1 Saisir nb2

Resultat <- nb1 * nb2

Afficher nb1,« * »,nb2, « = », resultat Resultat <- nb1 / nb2

Afficher nb1,« / »,nb2, « = », resultat Resultat <- nb1 - nb2

Afficher nb1,« - »,nb2, « = », resultat Resultat <- nb1 + nb2

Afficher nb1,« + »,nb2, « = », resultat Fin

6 * 3 = 18 6 / 3 = 2 6 – 3 = 3 6 + 3 = 9

(2)

Programme n° 5 :

Ecrivez l’algorithme puis le programme (n° 5) qui réponde au problème suivant : Vous effectuez une dépense de santé d’un montant MT à saisir.

La Sécurité sociale vous rembourse 70% de (MT moins 1 euro) Votre mutuelle vous rembourse 30 % de (MT moins 1 euro) Vous payez le montant restant.

Affichez ce que paie la Sécurité sociale, ce que paye la mutuelle, ce que vous payez.

Programme mutuelle Variables

Mt , rbtSecu , rbtMut , aPayer : réels Debut

Saisir mt

rbtSecu=(mt-1)*70/100 rbtMut=(mt-1)*30/100 aPayer=mt-rbtSecu-rbtMut

Afficher "Montant dépensé:", mt Afficher "Rbt Sécu :", rbtSecu Afficher "Rbt Mutuelle :", rbtMut Afficher "Vous devez payer :" ; aPayer Fin

<?php

$mt=$_GET['mt'];

$rbtSecu=($mt-1)*70/100;

$rbtMut=($mt-1)*30/100;

$aPayer=$mt-$rbtSecu-$rbtMut;

echo "Montant dépensé: $mt <br />";

echo "Rbt Sécu $rbtSecu <br />";

echo "Rbt Mutuelle $rbtMut <br />";

echo "Vous devez payer $aPayer <br />";

?>

(3)

Programme n° 6 :

Ecrivez l’algorithme puis le programme (n° 6) qui calcule le prix d’une commande pour une société.

L’utilisateur devra renseigner:

le prix unitaire du produit et la quantité commandée

En retour, le programme affichera le montant de la commande, la remise de 5% , les frais de port ( 2% montant de la commande) et le montant final.

Programme commande Variables

Prix, total , remise, port , totalFinal : Réels Qte : entier

Debut

Saisir prix Saisir qte

total =prix * qte remise = 0.05 * total port = 0.02 * total

totalFinal= total + port - remise

afficher "Montant : ",total

affichert "Frais de port : ", port afficher "Remise : " , remise

afficher "Montant final: " ,totalFinal Fin

<?php

$prix=$_GET['prix'];

$qte=$_GET['qte'];

$total =$prix * $qte;

$remise = 0.05 * $total;

$port = 0.02 *$total;

$totalFinal= $total + $port - $remise;

print ("Montant ".$total."€ <br/>\n");

print ("Frais de port ".$port."€ <br/>\n");

print ("Remise ".$remise."€ <br/>\n");

print ("Montant final: ".$totalFinal."€ <br/>\n");

?>

(4)

Programme n° 7 :

Ecrivez l’algorithme puis le programme (n° 7) qui transforme une durée exprimée en heures, minutes et secondes en une durée exprimée uniquement en secondes. Les heures, minutes et secondes doivent être saisies par l’utilisateur 30 min 10 sec 1810

2h 25 min 30sec 8730

Programme hmsEnSecondes Variables

Heures, minutes, secondes, resultat : entier Debut

Saisir heures Saisir minutes Saisir secondes

resultat=3600*heures+60*minutes+secondes

afficher "Temps exprimé en secondes : " ,resultat Fin

<?php

$h=$_GET['h'];

$m=$_GET['m'];

$s=$_GET['s'];

print ("$h heures $m minutes $s secondes -> ".(3600*$h + 60*$m +$s)."

secondes.<br/>\n");

?>

Exercice 8: Constante

En créant une constante de valeur pi, créer un programme constante.php qui affiche le périmètre d'un cercle en fonction du rayon fourni par l'utilisateur

Pour définir une constante en PHP, on utilise la fonction DEFINE.

Exemple : On veut nommer une constante UMLV qui a pour valeur "Université de Marne la Vallée", Il faut écrire : -

Programme Constante Constantes

PI <- 3.14 Variables

Rayon, perimetre : reels Debut

Saisir rayon

Perimetre=2*PI*rayon

afficher "perimetre : " ,perimetre Fin

define ("UMLV" , "Université de Marne la Vallée") ;

(5)

Les programmes qui suivent ne sont pas à faire… ou alors uniquement pour le plaisir !!!

Programme n° 9 :

Ecrivez le programme inverse (n° 8): Il affiche un temps en heures, minutes, secondes à partir d’un nombre de secondes saisi par l’utilisateur (utilisez le /et le %: reste de la division entière 8%3 = 2).

Exemples:

1810 30 min 10 sec 8730 2h 25 min 30 sec

Remarque : vous aurez certainement besoin d’utiliser la fonction mathématique floor (qui arrondit un nombre à l’entier inférieur).

Vous trouverez de l’aide sur Internet (critères de recherche : « php floor ».

Programme SecondesEnHMS Variables

Heures, minutes, secondes, secondesRestantes : entier Debut

Saisir secondes

Heures=secondes DIV 3600

secondesRestantes=secondes MOD 3600 minutes=secondesRestantes DIV 60 secondesRestantes=secondes MOD 60

afficher "Resultat :",heures, " heures ",minutes, " minutes et " , secondesRestantes , " secondes."

Fin

<?php

$secondes=$_GET['secondes'];

$h=floor($secondes/3600);

$secondesRestantes=$secondes%3600;

$m=floor($secondesRestantes/60);

$s=$secondesRestantes%60;

print ("$secondes secondes -> $h heures $m minutes et $s secondes.<br/>\n");

?>

Programme n° 10 :

Ecrivez un programme (n° 9) qui affiche la date du jour suivant 2 formats à l’aide de la fonction date.

Recherchez les possibilités du format date.

Programme n° 11 :

Ecrivez un programme (n° 10) qui compte le nombre de caractères de la phrase suivante :

« Le TP est presque termine »

<?php

$phrase=$_GET['phrase'];

echo 'la phrase "'.$phrase.'" a '.strlen($phrase)." caractères.";

?>

Nous sommes le : 06 09 05

tue 06 sept 2005

(6)

Programme n° 12 :

Ecrivez un programme qui génère login et mot de passe pour un utilisateur en fonction de son nom et de son prénom. Observez l’exemple pour comprendre les règles de création des logins et mots de passe:

Remarque : Le mot de passé fera obligatoirement 8 caractères.

Exemple: olivier debout > login : olDEBOUT mot de Passe: 76toubed

Cherchez les fonctions utiles dans l’aide en ligne PHP dans la rubrique : chaînes de caractères(String)

<?php

$prenom=$_GET['prenom'];

$nom=$_GET['nom'];

$lgNom=strlen($nom);

$lgPrenom=strlen($prenom);

$passe=strval(strlen($prenom)).strval(strlen($nom));

$passe.=substr($nom,strlen($nom)-1,1);

$passe.=substr($nom,strlen($nom)-2,1);

$passe.=substr($nom,strlen($nom)-3,1);

$passe.=substr($nom,strlen($nom)-4,1);

$passe.=substr($nom,strlen($nom)-5,1);

$passe.=substr($nom,strlen($nom)-6,1);

echo 'mot de passe: '.$passe;

?>

Références

Documents relatifs

This hypothesis was justified for previous magnetospheric missions (Peder- sen, 1995), showing that the potential difference between the spacecraft body and a floating probe (i.e.

Après 4, 5 ou 6 jours de culture, le nombre des cellules germinales est toujours plus élevé dans les ovaires cultivés dans du milieu supplémenté en thymuline, ou en présence. de

Below, we employ these radar measurements of the convection flow, in conjunction with our knowledge of the motion of the OCB, to estimate the dayside reconnection voltage during

Here we report measurements of a suite of nine elemental ratios (Li/Ca, B/Ca, Na/Ca, Mg/Ca, Zn/Ca, Sr/Ca, Cd/Ca, Ba/Ca, and U/Ca) in 18 species of benthic marine invertebrates

We model atmospheric and non-tidal oceanic loading effects on surface gravity variations, us- ing global surface pressure field provided by the European Centre for Medium-range

1.5d, Figure 10b), the averaged TC-driven flux anomaly is negative in the North West Atlantic, North West Pacific, North East Pacific, Arabian Sea and South West Indian, and is

margin require that either (1) significant strike-slip in the upper plate remains undetected, (2) strike-slip occurs on the plate interface, (3) the rates of margin-parallel motion

En conséquence, la grandeur présente sous une fonction trigonométrique est nécessairement sans unité (ce ne peut être ni une longueur ni un temps, mais un rapport de longueurs ou