Cours Algorithmie avec PHP
1 Ph. CHOCHOIS
L’ordinateur
Un ordinateur est une machine électronique programmable servant au traitement de l’information codée sous forme binaire.
Un ordinateur possède une mémoire centrale. La mémoire centrale est composée d’éléments ou cases qui possèdent chacun une adresse.
Chaque case peut contenir une information.
Un ordinateur possède une unité centrale qui exécute les instructions d’un programme dans un ordre précis. Les opérations possibles sont notamment :
Lire ou écrire des informations dans la mémoire centrale Envoyer ou recevoir de l’information via le clavier ou l’écran Exécuter des opérations simples (addition, soustraction…) Comparer des valeurs.
2
Le programme et l’algorithme
Un programmeest un assemblage et un enchaînement d’instructions élémentaires écrit dans un langage de programmation et exécuté par un ordinateur afin de traiter les données d’un problème et renvoyer un ou plusieurs résultats
Un algorithme représente l’enchaînement des actions nécessaires pour faire exécuter une tâche à un ordinateur et résoudre un problème.
Un algorithme peut s’écrire en pseudo langage de programmation (appelé langage algorithmique). Il existe une représentation graphique des algorithmes qui n’est pratiquement plus utilisé.
Problème Réflexion Algorithme Codage Programme
3
Résultats Données
Programme
Intérêts de l’algorithme
L’objectif de l’algorithme est de séparer la résolution du problème de son implémentation.
Si le problème est simple et que le langage dans lequel on implémente est maîtrisé, l’algorithme peut s’avérer une étape inutile.
Si le problème est compliqué, l’algorithme peut permettre de clarifier la résolution du problème en y faisant figurer les grandes lignes sans entrer dans le détail.
Un algorithme doit être clair et doit faire ressortir la logique d’action du programme. Un algorithme « trop précis » a l’effet inverse !
Si le langage n’est pas maîtrisé, l’algorithme permet au programmeur débutant d’ignorer dans un premier temps la syntaxe pour se focaliser sur la résolution du problème.
Lorsque l’algorithme est écrit, l’écriture du programme n’est qu’une simple traduction.
4
Exemples d’algorithmes
Problème 1 : Afficher « Bonjour » Programme AfficheBonjour Debut
Afficher “Bonjour“
Fin
Problème 2 : Saisir son prénom et l’afficher Programme AffichePrenom
Variables Prenom : chaine de caracteres
Debut
Afficher “Saisissez votre prenom :“
Saisir Prenom
Afficher “Votre prenom est“ , Prenom Fin
5
Les variables
Une variable est « un espace mémoire identifié par un nom, et
dans lequel on peut ranger des valeurs d’un certain type ».
La déclaration de la variable permet de réserver un espace mémoire pour y stocker une valeur.
La taille de l’espace mémoire dépend du type de la variable.
Les variables ont un type. Les différents types simples que nous allons utilisés dans un premier temps sont:
Les entiers
Les réels
Les caractères
Les chaînes de caractères
Les booléens
6
Les instructions
Les instructions simples que nous allons utiliser dans un premier temps sont:
La lecture
L’affichage (ou l’écriture)
L’affectation
7
Exemples d’algorithmes
Problème 3 : Calculer la somme de 2 nombres Programme Somme Variables
Total , nb1 , nb2 : entiers Debut
Afficher "Saisissez 2 nombres : "
Saisir nb1 Saisir nb2 Total nb1 + nb2
Afficher "Le total est :" , Total Fin
8
Exercice:
Ecrire un algorithme qui calcule et affiche la moyenne de 3 nombres.
Programme _ _ _ _ _ Variables
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Debut
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Fin
9
Exercice :
Indiquez les valeurs prises par les variables dans l’algorithme ci- dessous:
10 Programme Valeurs
VARIABLES a , b , c , d : entiers DEBUT
a <- 27 b <- 45 - a c <- b - 9 d <- c + a c <- d + c b <- b - 1
FIN
Exercice :
Indiquez les valeurs prises par les variables dans l’algorithme ci- dessous:
Remarques:
- DIV est la division entière - MOD est le reste de la division entière
Programme Operations VARIABLES
nb1 , nb2 , nb3 : entiers DEBUT
nb1 <- 12 nb2 <- 23 nb1 <- nb2 DIV 5 nb3 <- nb1 + nb2 nb2 <- nb3 MOD nb1
FIN
Exercice :
Relevez les erreurs dans l’algorithme ci-dessous:
Programme Erreurs VARIABLES
a , b , c , d : ENTIER e : CARACTERE
DEBUT a <- 10
b <- 5 d <- b a + b <- 15 e <- "d"
a <- e FIN
Exercice :
Complétez l’algorithme ci-dessous pour effectuer une permutation (a doit prendre la valeur de b ET b doit prendre la valeur de a) :
13 Programme Permutation
Variables _ _ _ _ _ _ _ _ _ _ _ // a et b doivent permuter Debut
// Affectation a <- 3 b <- 2 // Permutation _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Fin Programme
Exercices :
1) Ecrire un algorithme qui affiche le périmètre d’un cercle dont le rayon est donné par un utilisateur
14
2) Ecrire un algorithme qui demande à l’utilisateur de saisir le prix en euros d’une bouteille d’eau minérale de 1.5 l. Dans un deuxième temps, le programme affiche le prix au litre, le prix d’un pack d’eau, sachant qu’il y a 6 bouteilles dont une est offerte, ainsi que le prix d’une palette sachant qu’il y a 50 packs dont 5 offerts.
Langage de programmation
Les algorithmes sont traduits dans un langage qui pourra être compris par un ordinateur. On l’appelle le langage de programmation.
PHPest un langage de programmation.
Ce langage est adapté et facile à utiliser pour créer des pages WEB dynamiques.
Dans une phase d’apprentissage de l’algorithmie, nous utiliserons le langage PHP surtout en mode « ligne de commande » ou mode
« console ».
15
Langage de programmation
Mode console:
16
Langage de programmation
Mode Web:
Pour adapter nos algorithmes au langage PHP, nous prendrons les dispositions suivantes:
L’affichage des résultats d’un programme se fera sur une page web et donc visible à l’aide d’un navigateur
Comment saisir une information sur une page WEB ? En utilisant un formulaire html… Donc, pour saisir des informations en PHP nous utiliserons des formulaires html qui enverront des informations à un programme PHP.
17
PHP: Présentation de quelques instructions
Un script PHP doit : - comporter l'extension .php
- être imbriqué entre les délimiteurs <?PHP et ?> (ou
<? ?> )
<?PHP
instruction;
instruction;
...
?>
18
PHP: Présentation de quelques instructions
<?PHP
echo “Hello\nworld";
?>
echo permet d'afficher sur le navigateur la chaîne délimitée par les guillemets.
\n à l’intérieur de doubles
guillemets permet de faire un saut de ligne.
19
PHP: Présentation de quelques instructions
Un code PHP est un ensemble d'instructions se terminant chacune par un point-virgule.
Lorsque le code est interprété, les espaces, retours chariot et tabulation ne sont pas pris en compte par le serveur.
Leur utilisation rend le code plus lisible.
20
PHP: Présentation de quelques instructions
Variables en PHP:
- scalaires entiers, réels, chaînes de caractères - tableaux
- tableaux associatifs (table de hachage)
Le nom d’une variable doit être précédé du caractère dollar ($).
Les variables en PHP ne sont pas déclarées, et non typées.
21
PHP: Présentation de quelques instructions
Guillemets doubles et simples:
Les signes permettant de délimiterune chaîne de caractère en PHP sont ' ou " .
PHP examine le contenu d’une chaîne entre " mais pas celui d’une chaîne qui est entre ' qu'il affiche directement (héritage du shell Unix).
Les chaînes délimitées par ' sont donc affichées plus rapidement.
Lorsqu'une chaîne est spécifiée avec des guillemets doubles, les variables qu'elle contient sont remplacées par leur valeur (très intéressant).
$a= "rouge";
echo "la fleur est $a"; affiche la fleur est rouge echo 'la fleur est $a'; affiche la fleur est $a
22
PHP: Présentation de quelques instructions Concaténation de chaînes:
Le pointest utilisé pour concaténer des chaînes, variables, etc. Pour que php sache que le nom de la variable s'arrête à un endroit précis, nous utiliserons le point.
<?
$date = date("H:i");
echo "Il est $date "."gmt.";
?>
affiche Il est 19:05 gmt.
Le second point placé entre les doubles quotes sera interprété comme du texte simple et non comme une demande de concaténation.
Ce système de concaténation de chaines nous permettra notamment de fabriquer des requetes SQL comme un assemblage d'élements (la partie SELECT, puis la partie FROM, et la partie WHERE).
Attention : ne pas utiliser + comme opérateur de concaténation.
$res = 1 + "3 vélos" donne 4 pour $res
PHP: Présentation de quelques instructions Quote double et simple :
<?PHP
$nom = "Martin";
echo "Mon nom est $nom";
?>
<?PHP
$nom = "Martin";
// affichage avec des simples quotes echo 'Mon nom est $nom';
?>
<?PHP
$nom = "Martin";
// affichage avec des simples quotes echo 'Mon nom est '.$nom;
?>
// affiche Mon nom est Martin
// affiche Mon nom est $nom
// affiche Mon nom est Martin
PHP: Présentation de quelques instructions Définition de constantes :
Une constante a une valeur inchangeable lors de l'exécution d'un programme.
Les constantes sont définies grâce à la fonction
define().
define("NOM_DE_LA_CONSTANTE",Valeur);
Le nom d'une constante définie à l'aide de la fonction
define()
ne doit pas commencer par le caractère $ (de cette façon aucune affectation n'est possible). L'habitude est d'écrire les constantes en majuscules (héritage du C).
25
PHP: Présentation de quelques instructions La fonction echo :
echopermet d'envoyer sur la sortie la chaîne de caractères qui la suit (donc au navigateur si le script est lancé par une serveur web).
echo Expression;
L'expression peut être une chaîne de caractères ou une expression que l'interpréteur évalue
echo "Chaine de caracteres";
echo (1+2)*87;
$ a un rôle particulier car l'interpréteur le comprend comme une variable, l'interpréteur récupère le nom de la variable qui suit le caractère $ et le remplace par sa valeur. (héritage du shell)
<?PHP
// Récupération de la date et stockage dans une variable
$MaDate = date("Y");
echo "Nous sommes en $MaDate\n";
?>
26
PHP: Présentation de quelques instructions La fonction date :
Le code suivant
<?PHP
$date = date("d-m-Y");
$heure = date("H:i");
echo "Nous sommes le $date et il est $heure\n";
?>
affichera : Nous sommes le 19-01-2017 et il est 15:10 Dans le code ci-dessus la variable $dateest générée en lui donnant la valeur de ce que retourne la fonctiondate("d-m-Y")en l'occurrence :19-02-2008.
Les paramètres contenus entre les parenthèsesd-m-Ypeuvent être placés dans l'ordre désiré, ainsi la date au format US sera écritedate("Y-m-d") : 2008-02-19.
27
PHP: Présentation de quelques instructions La fonction date :
La fonction date() permet d'obtenir l'heure locale du serveur, mais l'heure locale est fonction de la situation géographique du serveur : un serveur situé au Canada vous donnera l'heure du Canada !
Afin d’obtenir l’heure locale, il faut définir en paramètre géographique pour déterminer l’heure:
Le code suivant
<?PHP
date_default_timezone_set('Europe/Paris');
$date = date("d-m-Y");
$heure = date("H:i");
echo "Nous sommes le $date et il est $heure\n";
?>
affichera : Nous sommes le 19-02-2008 et il est 15:10
28
PHP: Présentation de quelques instructions Les paramètres de la fonction date :
y- Année sur 2 chiffres (68)
Y- Année sur 4 chiffres (1968)
L- Booléen pour savoir si l'année est bissextile ("1") ou pas ("0") m- Mois sur 2 chiffres, de "01" à "12"
n- Mois sur 2 chiffres, sans les zéros initiaux, de "1" à "12"
F- Mois, textuel, version longue; en anglais
M- Mois, textuel, version courte sur 3 lettres en anglais : "Feb" (pour February) d- Jour du mois, sur deux chiffres : "01" à "31"
j- Jour du mois sans les zéros initiaux : "1" à "31"
l- ('L' minuscule) - Jour de la semaine, textuel, version longue; en anglais : "Friday"
D- Jour de la semaine, en trois lettres (et en anglais) : "Fri" (pour Friday) a- "am" (matin) ou "pm" (après-midi)
A- "AM" (matin) ou "PM" (après-midi)
g- Heure, au format 12h sans les zéros initiaux, de "1" à "12"
G- Heure, au format 24h sans les zéros initiaux, de "0" à "23"
h- Heure, au format 12h, de "01" à "12"
H- Heure, au format 24h, de "00" à "23"
i- Minutes; de "00" à "59"
s- Secondes; de "00" à "59"
S- Suffixe ordinal d'un nom
29
Exercices en PHP
Exercice 1: Ecrire un programme PHP qui affiche une information (par exemple: « Bonjour ».
Programme AfficheBonjour Debut
Afficher “Bonjour“
Fin
Traduction en PHP:
Ecrire dans un fichier texte à l’aide d’un éditeur de textes (exemple:
notepad++) et sauvegardez votre fichier sous le nom
«AfficheBonjour.php»
<?PHP
echo "Bonjour" ;
?>
30
Exercices en PHP
Principales commandes pour utiliser le terminal:
Nb: On utilise indifféremment le terme « répertoire » ou « dossier » cd .. permet de remonter au répertoire supérieur cd nomRepertoire permet d’aller dans le répertoire nomRepertoire dir permet de lister le contenu du répertoire H : permet de se déplacer sur le disque H
cd L:\Softs\Portable permet d’aller directement dans le répertoire
« Portable » qui se trouve dans le réperoire « Softs » qui se trouve sur le disque « L »ans le répertoire nomRepertoire
dir toto* permet de lister tous les fichiers ou répertoires commençant par « toto »
31
Exercices en PHP
Quelques manipulations à faire pour s’entraîner à naviguer via le terminal:
1) Aller sur le répertoire du disque L qui contient le fichier « php.exe » et vérifiez sa présence en tapant la commande « dir »
2) Revenez sur le disque M: et déplacez vous dans un répertoire où se trouvent vos fichiers html (cours du 1ersemestre)
3) Trouvez la lettre qui correspond à une clé USB installée et naviquer pour parcourir le contenu de votre clé USB
32
Exercices en PHP
Si vous souhaitez utiliser l’interpréteur PHP local disponible sur le réseau
« etudiant »
1) Afin de faire des exercices d’algorithmie, nous aurons besoin de travailler en mode « console » afin simplifier la partie « saisie d’informations » qui se fait à l’aide de formulaires.
Placez votre programme dans le répertoire de votre choix. A partir de ce répertoire, exécuter la commande:
L:\Softs\Portable\php-5.6.5\php monProgramme.php 2) Si vous vous trouvez dans un autre répertoire, vous pouvez lancer votre programme en indiquant le chemin absolu. Exemple:
L:\Softs\Portable\php-5.6.5\php D:\Desktop\monProgramme.php
33
<?PHP
echo “Bonjour" ;
?>
Exercices en PHP
Si vous souhaitez utiliser l’interpréteur PHP local disponible sur le réseau
« etudiant »
3) Si vous vous trouvez dans un autre répertoire, vous pouvez lancer votre programme en indiquant le chemin relatif. Exemple:
L:\Softs\Portable\php-5.6.5\php ..\Desktop\monProgramme.php
4) Si vous vous trouvez dans le répertoire qui contient php.exe sur le disque L:, vous pouvez lancer votre programme en indiquant le chemin absolu de votre fichier. Exemple:
php D:\Desktop\monProgramme.php
34
<?PHP
echo “Bonjour" ;
?>
Exercices en PHP
Si un raccourci ou un chemin par défaut (path) a été défini dans votre environnement de travail pour accéder au programme PHP, il n’est pas obligatoire de définir le chemin d’accès.
5) Placez une copie de votre programme dans le répertoire de votre choix. A partir de ce répertoire, exécuter la commande:
php monProgramme.php
<?PHP
echo “Bonjour" ;
?>
Exercices en PHP
1) Placer le fichier sur le serveur Etudiant (répertoire WWW) et ouvrer le dans un navigateur en prenant soin de passer par le protocole HTTP.
2) Après avoir installé un logiciel de type XAMPP (Cf. procédure d’installation), placer votre programme dans le répertoire adéquat puis ouvrez le dans un navigateur (Cf procédures d’utilisation).
3) Afin de faire des exercices d’algorithmie, nous aurons besoin de travailler en mode « console » afin simplifier la partie « saisie d’informations » qui se fait à l’aide de formulaire.
Placez une copie de votre programme dans le répertoire php de xampp ou UwAmp puis ouvrez une console (ou terminal) et naviguez dans les répertoires afin de trouver votre fichier et exécuter le à l’aide de la commande:
php monProgramme.php
<?PHP
echo “Bonjour" ;
?>
Exercices en PHP
Si vous avez installé un interpréteur PHP en local (XAMPP,UwAmp…)
1) Afin de faire des exercices d’algorithmie, nous aurons besoin de travailler en mode « console » afin simplifier la partie « saisie d’informations » qui se fait à l’aide de formulaire.
Placez une copie de votre programme dans le répertoire php de xampp ou UwAmp puis ouvrez une console (ou terminal) et naviguez dans les répertoires afin de trouver votre fichier et exécuter le à l’aide de la commande:
php monProgramme.php
37
<?PHP
echo “Bonjour" ;
?>
Exercices en PHP
Exercice 2: Ecrire un programme PHP qui effectue un calcul à partir de plusieurs informations et qui affiche le résultat
Programme Somme Variables
total , nb1 , nb2 : entiers Debut
nb1 4 nb2 3 Total nb1 + nb2
Afficher “Le total est :“ , total Fin
Ecrire dans un fichier texte à l’aide d’un éditeur de textes (exemple:
notepad++) et sauvegardez votre fichier sous le nom «Somme.php»
<?PHP
$nb1 = 4;
$nb2 = 3;
$total = $nb1 + $nb2;
echo "Le total est : ".$total;
?>
Exécutez votre programme
38
Exercices en PHP
Exercice 3: Créer un formulaire html permettant de saisir une ou plusieurs informations et de l’envoyer ou les envoyer à un programme PHP qui affichera la ou les informations que vous avez saisies Pour écrire le formulaire html, reportez vous à votre cours html/CSS en
prenant soin d’utiliser la méthode « get » et pour l’attribut « action », donnez lui comme valeur le nom du programme PHP à qui vous envoyez les informations
Votre programme PHP sera exécuté grâce à la soumission du formulaire html.
Vous testerez votre programme avec les 2 méthodes utilisant un navigateur.
39
Exercices en PHP
Exercice 3: Créer un formulaire html permettant de saisir une ou plusieurs informations et de l’envoyer à un programme PHP qui affichera la ou les informations que vous avez saisies
Programme AffichePrenom
Variables Prenom : chaine de caracteres
Debut
Saisir Prenom
Afficher “Votre prenom est“ , Prenom Fin
Ecrire dans un fichier texte à l’aide d’un éditeur de textes (exemple:
notepad++) et sauvegardez votre fichier sous le nom
«AffichePrenom.php»
<?PHP
$prenom = $_GET[‘prenom’];
echo “Votre prenom est “.$prenom;
?>
40
Exercices en PHP
Exercice 3: Les informations vont maintenant être saisies en mode « console ».
Téléchargez le fichier read.zip et placez le fichier read.php dans le répertoire dans lequel vous stockez vos programmes PHP.
Il nous suffira maintenant d’utiliser une fonction read() qui va permettre d’effectuer une saisie au clavier.
Ecrire dans un fichier texte à l’aide d’un éditeur de textes (exemple: notepad++) et sauvegardez votre fichier dans le répertoire php de xampp puis exécutez le.
Programme AffichePrenom
Variables Prenom : chaine de caracteres Debut
Saisir Prenom
Afficher “Votre prenom est“ , Prenom Fin
<?PHP
include("read.php");
echo "Veuillez saisir votre prenom:";
$prenom = read();
echo "Votre prenom est ".$prenom;
?>
41