M1202 - Algorithmique et programmation

publicité
M1202 - Algorithmique et programmation
Les bases du langage PHP
J. Landré
URCA
2016–2017
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
1 / 34
Table des matières
1
2
3
Introduction
Organisation
Objectifs
Quelques règles bien utiles
Notion d’algorithme
Algorithmes célèbres
Un peu de cuisine
J. Landré (URCA)
4
5
6
Algorithme du gâteau au yaourt
Données
Actions/instructions
Structures de contrôle
Un petit historique...
Deux algorithmes simples avec
Algobox
PHP
M1202 - Algorithmique et programmation
2016–2017
2 / 34
M1202 Algorithmique et programmation
Organisation
4 cours magistraux (CM 1h30),
5 travaux dirigés (TD 1h30),
5 travaux pratiques (TP 1h30).
Trois intervenants :
J. Landré,
A. Haraoubia,
D. Thiroine.
Deux (ou plus) évaluations :
Une évaluation de TP (40% de la note finale),
une évaluation écrite (60% de la note finale).
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
3 / 34
M1202 Algorithmique et programmation
Organisation
4 cours magistraux (CM 1h30),
5 travaux dirigés (TD 1h30),
5 travaux pratiques (TP 1h30).
Trois intervenants :
J. Landré,
A. Haraoubia,
D. Thiroine.
Deux (ou plus) évaluations :
Une évaluation de TP (40% de la note finale),
une évaluation écrite (60% de la note finale).
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
3 / 34
M1202 Algorithmique et programmation
Organisation
4 cours magistraux (CM 1h30),
5 travaux dirigés (TD 1h30),
5 travaux pratiques (TP 1h30).
Trois intervenants :
J. Landré,
A. Haraoubia,
D. Thiroine.
Deux (ou plus) évaluations :
Une évaluation de TP (40% de la note finale),
une évaluation écrite (60% de la note finale).
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
3 / 34
Objectifs
Connaître :
Les techniques de base de l’algorithmique,
la notion de variable,
la notion de type de donnée,
le séquencement des instructions,
les structures de contrôle.
Être capable de :
Lire un algorithme simple,
comprendre son fonctionnement,
donner son résultat,
concevoir des algorithmes simples,
écrire et traduire des algorithmes simples en PHP.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
4 / 34
Objectifs
Connaître :
Les techniques de base de l’algorithmique,
la notion de variable,
la notion de type de donnée,
le séquencement des instructions,
les structures de contrôle.
Être capable de :
Lire un algorithme simple,
comprendre son fonctionnement,
donner son résultat,
concevoir des algorithmes simples,
écrire et traduire des algorithmes simples en PHP.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
4 / 34
Pour en savoir plus
Sources d’information :
Wikipedia http://fr.wikipedia.org
Comment ça marche ? - http://www.commentcamarche.net
Tout sur PHP : http://www.php.net
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
5 / 34
Quelques règles bien utiles
Travail attendu
Lire le CM avant d’arriver en TD/TP
Préparer les exercices de TD à l’avance
Apprendre par coeur la syntaxe des instructions PHP
En CM, TD et TP :
Pas de téléphone, pas de musique (donc pas d’écouteurs)
On ne parle pas, on chuchote – On fait le travail demandé
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
6 / 34
Algorithmes célèbres :
Maths :
Algorithme d’Euclide d’Alexandrie (325–265 av. J.-C.) : calcul du plus grand
commun diviseur (P.G.C.D.) de deux nombres.
Algorithme de Madhava de Sangamagrama (1350–1425) : calcul du nombre
π par une série mathématique :
π = 4.
∞
X
(−1)k
2k + 1
k=0
Algorithme du simplexe de Georges Dantzig (1914–2005) : résolution de
problèmes d’optimisation avec contraintes.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
7 / 34
Algorithmes célèbres :
Informatique :
Algorithme de tracé de segment de Bresenham : dessiner une ligne sur un
espace discret à partir de coordonnées continues (dessin d’une ligne sur un
écran d’ordinateur).
Algorithme Lempel-Ziv-Welch (LZW) : compression de données utilisé dans le
format zip.
Algorithmes de tri (tri à bulle, tri fusion, tri rapide, …) : trier les éléments
d’un tableau dans l’ordre croissant ou décroissant.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
8 / 34
Notion d’algorithme
Définition (dictionnaire Larousse) :
Algorithme : nom masculin (latin médiéval algorithmus, latinisation du nom d’un
mathématicien de langue arabe, avec influence du grec arithmos, nombre)
Ensemble de règles opératoires dont l’application permet de résoudre un problème
énoncé au moyen d’un nombre fini d’opérations. Un algorithme peut être traduit,
grâce à un langage de programmation, en un programme exécutable par un
ordinateur.
Problème : définition un peu ”lourde” et pas forcément claire.
On va chercher à trouver des exemples d’algorithmes de la vie courante.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
9 / 34
Notion d’algorithme
Définition (dictionnaire Larousse) :
Algorithme : nom masculin (latin médiéval algorithmus, latinisation du nom d’un
mathématicien de langue arabe, avec influence du grec arithmos, nombre)
Ensemble de règles opératoires dont l’application permet de résoudre un problème
énoncé au moyen d’un nombre fini d’opérations. Un algorithme peut être traduit,
grâce à un langage de programmation, en un programme exécutable par un
ordinateur.
Problème : définition un peu ”lourde” et pas forcément claire.
On va chercher à trouver des exemples d’algorithmes de la vie courante.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
9 / 34
Notion d’algorithme
Définition (dictionnaire Larousse) :
Algorithme : nom masculin (latin médiéval algorithmus, latinisation du nom d’un
mathématicien de langue arabe, avec influence du grec arithmos, nombre)
Ensemble de règles opératoires dont l’application permet de résoudre un problème
énoncé au moyen d’un nombre fini d’opérations. Un algorithme peut être traduit,
grâce à un langage de programmation, en un programme exécutable par un
ordinateur.
Problème : définition un peu ”lourde” et pas forcément claire.
On va chercher à trouver des exemples d’algorithmes de la vie courante.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
9 / 34
Notion d’algorithme
Définition (dictionnaire Larousse) :
Algorithme : nom masculin (latin médiéval algorithmus, latinisation du nom d’un
mathématicien de langue arabe, avec influence du grec arithmos, nombre)
Ensemble de règles opératoires dont l’application permet de résoudre un problème
énoncé au moyen d’un nombre fini d’opérations. Un algorithme peut être traduit,
grâce à un langage de programmation, en un programme exécutable par un
ordinateur.
Problème : définition un peu ”lourde” et pas forcément claire.
On va chercher à trouver des exemples d’algorithmes de la vie courante.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
9 / 34
Gâteau au yaourt (d’après marmiton.org)
15 min. de préparation et 30 min. de cuisson
Ingrédients (pour 4 personnes) : 1/2 paquet de levure, 1 pot de yaourt (= 20 cl),
1/2 pot d’huile (= 10 cl), 2 pots de sucre, 3 pots de farine, 2 œufs, 1 zeste de
citron
Préparation de la recette :
Mélanger tout simplement les ingrédients un à un, dans l’ordre ci-dessus.
Verser la pâte dans un moule à gâteau.
Puis, faire cuire à 180 degrés (thermostat 6) pendant 30 min. environ.
Vérifier la cuisson avec la pointe d’un couteau, qui doit ressortir sèche.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
10 / 34
Gâteau au yaourt (d’après marmiton.org)
15 min. de préparation et 30 min. de cuisson
Ingrédients (pour 4 personnes) : 1/2 paquet de levure, 1 pot de yaourt (= 20
cl), 1/2 pot d’huile (= 10 cl), 2 pots de sucre, 3 pots de farine, 2 œufs, 1
zeste de citron
Préparation de la recette :
Mélanger tout simplement les ingrédients un à un, dans l’ordre ci-dessus.
Verser la pâte dans un moule à gâteau.
Puis, faire cuire à 180 degrés (thermostat 6) pendant 30 min. environ
jusqu’à ce que la pointe d’un couteau ressorte sèche du gâteau.
LES DONNÉES
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
11 / 34
Gâteau au yaourt (d’après marmiton.org)
15 min. de préparation et 30 min. de cuisson
Ingrédients (pour 4 personnes) : 1/2 paquet de levure, 1 pot de yaourt (= 20 cl),
1/2 pot d’huile (= 10 cl), 2 pots de sucre, 3 pots de farine, 2 œufs, 1 zeste de
citron
Préparation de la recette :
Mélanger tout simplement les ingrédients un à un, dans l’ordre ci-dessus.
Verser la pâte dans un moule à gâteau.
Puis, faire cuire à 180 degrés (thermostat 6) pendant 30 min. environ
jusqu’à ce que la pointe d’un couteau ressorte sèche du gâteau.
LES ACTIONS
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
12 / 34
Gâteau au yaourt (d’après marmiton.org)
15 min. de préparation et 30 min. de cuisson
Ingrédients (pour 4 personnes) : 1/2 paquet de levure, 1 pot de yaourt (= 20 cl),
1/2 pot d’huile (= 10 cl), 2 pots de sucre, 3 pots de farine, 2 œufs, 1 zeste de
citron
Préparation de la recette :
Mélanger tout simplement les ingrédients un à un, dans l’ordre ci-dessus.
Verser la pâte dans un moule à gâteau.
Puis, faire cuire à 180 degrés (thermostat 6) pendant 30 min. environ
jusqu’à ce que la pointe d’un couteau ressorte sèche du gâteau.
LES STRUCTURES DE CONTRÔLE
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
13 / 34
Algorithme de cuisine
Un algorithme est une recette de cuisine sur un ordinateur.
Il contient :
des données,
des actions,
des structures de contrôle.
Il donne des résultats.
Le but de l’algorithme est d’arriver au résultat en effectuant des actions sur les
données soumises à des structures de contrôle.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
14 / 34
Algorithme de cuisine
Un algorithme est une recette de cuisine sur un ordinateur.
Il contient :
des données,
des actions,
des structures de contrôle.
Il donne des résultats.
Le but de l’algorithme est d’arriver au résultat en effectuant des actions sur les
données soumises à des structures de contrôle.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
14 / 34
Algorithme de cuisine
Un algorithme est une recette de cuisine sur un ordinateur.
Il contient :
des données,
des actions,
des structures de contrôle.
Il donne des résultats.
Le but de l’algorithme est d’arriver au résultat en effectuant des actions sur les
données soumises à des structures de contrôle.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
14 / 34
Algorithme de cuisine
Un algorithme est une recette de cuisine sur un ordinateur.
Il contient :
des données,
des actions,
des structures de contrôle.
Il donne des résultats.
Le but de l’algorithme est d’arriver au résultat en effectuant des actions sur les
données soumises à des structures de contrôle.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
14 / 34
Algorithme de cuisine
Un algorithme est une recette de cuisine sur un ordinateur.
Il contient :
des données,
des actions,
des structures de contrôle.
Il donne des résultats.
Le but de l’algorithme est d’arriver au résultat en effectuant des actions sur les
données soumises à des structures de contrôle.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
14 / 34
Algorithme de cuisine
Un algorithme est une recette de cuisine sur un ordinateur.
Il contient :
des données,
des actions,
des structures de contrôle.
Il donne des résultats.
Le but de l’algorithme est d’arriver au résultat en effectuant des actions sur les
données soumises à des structures de contrôle.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
14 / 34
Un autre exemple d’algorithme
On peut suivre une notice de montage qui précise les actions à faire pour monter
un meuble (correctement normalement).
C’est un algorithme visuel, plus simple à lire que trois pages d’explications sans
schéma.
Figure 1 – Notice de montage d’une célèbre marque d’oeufs en chocolat pour les
enfants.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
15 / 34
Un autre exemple d’algorithme
On peut suivre une notice de montage qui précise les actions à faire pour monter
un meuble (correctement normalement).
C’est un algorithme visuel, plus simple à lire que trois pages d’explications sans
schéma.
Figure 2 – Notice de montage d’un meuble, c’est un algorithme visuel.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
16 / 34
Un autre exemple d’algorithme
On peut suivre une notice de montage qui précise les actions à faire pour monter
un meuble (correctement normalement).
C’est un algorithme visuel, plus simple à lire que trois pages d’explications sans
schéma.
Figure 3 – Ce qui arrive quand on ne suit pas la notice (donc l’algorithme).
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
17 / 34
Historique
Vers -250 : Le livre “Les
éléments” d’Euclide d’Alexandrie
pose les bases de l’arithmétique
et de la géométrie
Vers 820 : Travaux du
mathématicien perse
Al-Khuwarizmi (né vers 780 –
mort vers 850) en
mathématiques
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
18 / 34
Historique
En 1833, Charles Babbage
(1791–1871) et Ada Lovelace
(1815–1852) inventent la
machine analytique composée
d’un moulin (unité de calcul),
d’un magasin (mémoire) et d’un
dispositif de contrôle. Cet
ensemble était utilisé avec des
cartes opérations, des cartes
variables et des cartes nombres.
mathématicien Al-Khuwarizmi,
elle appelle algorithme le
processus logique permettant
l’exécution d’un programme.
L’histoire retiendra que Ada
Lovelace (née Augusta Ada
King) fut l’inventeur de la
programmation. En l’honneur du
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
19 / 34
Historique
En 1854, Georges Boole introduit le calcul binaire qui structure la logique
avec deux états 1/0, oui/non, vrai/faux.
En 1934, Johannes Von Neumann définit l’architecture qui porte son nom
et qui est à l’origine de l’ordinateur actuel.
En 1936, Alan Türing définit la notion formelle d’algorithme et de
complexité.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
20 / 34
Algobox 1
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
21 / 34
Algobox 1
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
22 / 34
Algobox 1
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
23 / 34
Algobox 2
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
24 / 34
Algobox 2
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
25 / 34
Algobox 2
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
26 / 34
C’est quoi PHP ?
Langage de programmation
Orienté web
Côté serveur
Créé en 1994 par Rasmus Lerdorf
Personal HomePage / Hypertext PreProcessor
Site officiel : http://www.php.net
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
27 / 34
Site officiel de PHP
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
28 / 34
Pourquoi apprendre PHP ?
PHP est le langage de développement des CMS (Content Management System)
les plus connus :
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
29 / 34
Pour quoi faire ?
PHP permet :
De générer des pages web dynamiques sur le serveur avant de les envoyer au
client
De traiter des formulaires HTML dynamiquement
D’accéder aux bases de données d’un serveur
De générer des documents HTML, PDF, Office, zip, images…
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
30 / 34
Comment ça marche PHP ?
On va injecter un fichier source PHP dans le moteur PHP et on va récupérer un
fichier à la sortie du moteur.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
31 / 34
Utiliser PHP
Il existe trois manières d’utiliser PHP :
En ligne de commandes (en local sur son ordinateur), pour tester un
algorithme ou une fonctionnalité
En local avec un serveur Web local (EasyPHP, WAMP, MAMP, LAMP...)
A distance sur un serveur (pour accéder à une base de données...)
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
32 / 34
Logiciels nécessaires pour PHP
Pour programmer avec PHP, il faut :
Un éditeur de textes (notepad++, atom, SublimeText...), ne pas oublier
d’encoder ses fichiers en utf-8 !
Un moteur PHP local (php.exe, php) ou distant (serveur web avec moteur
PHP installé)
Un client ftp (filezilla)
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
33 / 34
Premier programme en PHP
Traditionnellement, on commence l’apprentissage d’un langage de programmation
par le programme ’Hello World !’.
Ce premier programme affiche simplement la chaîne de caractères ’Hello World !’ à
l’écran.
J. Landré (URCA)
M1202 - Algorithmique et programmation
2016–2017
34 / 34
Téléchargement