Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Chapitre annexe. Récursivité
Initiation à la programmation et algorithmique cours 2
Portée des variables VBA & Excel
Algorithmique Résume.
Les Structures de contrôles itératives
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Le publipostage La fonction de fusion permet de créer des documents identiques dans les grandes lignes que l’on personnalise automatiquement à chaque destinataires.
5. Les structures répétitives
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Firebug Dévermineur Debugger.
Les bases de l’Algorithmique
Principes de programmation (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
CPI/BTS 2 Programmation Web Introduction au PHP
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Algorithmique et Programmation
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Python La structure itérative
Les instructions PHP pour l'accès à une base de données MySql
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Manipulation de formulaires en Javascript
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
Répéter dans un programme avec une Instruction itérative
Plan cours La notion de pointeur et d’adresse mémoire.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Animateur : Med HAIJOUBI
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
Les structures répétitives en PHP Réfs : manuel p 317.
Algorithmes de tri et de recherche
Créer des packages.
Méthodes de tri.
 Syntaxe du langage PHP
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Introduction au langage C Fonctions et Procédures
Les types composés Les enregistrements.
Variables et environnement utilisateur W. Barhoumi.
Cours LCS N°4 Présenté par Mr: LALLALI
 Formulaires HTML : traiter les entrées utilisateur
Tutorat en bio-informatique Le 12 octobre Exercices 3 et 4 (MAT1400) - solutions La série du binôme (chap. 8.8) –Trouver la série entière et le.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Permet de simplifier la maintenance d’un site
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
Tutorat en bio-informatique Le 31 octobre Exercice 3 et 4 (MAT1400) Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
La pile de crêpes.
Scripts et fonctions Instructions de contrôle
Une aide pour débutant éclairé
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Algorithmique Tableaux de données
Introduction à l’utilitaire
CPI/BTS 2 Programmation Web Tableaux Prog Web CPI/BTS2 – M. Dravet – 16/10/2003 Dernière modification: 16/10/2003.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmique Boucles et Itérations
Philippe Gandy – 13 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales

Les Fonctions

Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code que lon peut insérer comme sil sagissait de petit programme indépendant Moins de code à écrire, moins à vérifier Mieux penser la structure du programme Définir une fonction : lui donner un nom : mot clé « function » suivi du nom que lon veut donner à la fonction les paramètres sont listés entre parenthèses function nomfonction (paramètres) { Le code de la fonction est inséré ici…. }

Définir une fonction (suite) La fonction peut contenir autant de ligne de code que lon souhaite Pour renvoyer une valeur, placer « return » sur la dernière ligne de la fonction montre que lon a fini et que la fonction sarrête là. Pour afficher la valeur renvoyée par la fonction, on utilise linstruction « echo ». « Return » naffiche pas la valeur, mais transmet le résultat à la fonction Une fonction peut être appelée aussi souvent quon le souhaite. Ex : $Prix = 1600 ; echo (reduction($Prix)) ; si on veut donner plusieurs paramètres à une fonction, les séparer par une virgule Ex : function reduction ($Prix, $Reduction) { $Prix = $Prix – $Reduction ; return $Prix ; } dans ce cas, pour appeler la fonction, on doit faire appel à deux valeurs Cf. Ex1

Ordre des éléments au sein dune fonction La position de la définition de la fonction, de son exécution et de son appel peut varier. Cependant, la fonction nest pas utilisée tant quelle nest pas appelée dans la dernière ligne avec « echo ». Ex: <?php $Salaire=1600; Lexécution commence ici $TauxCharges=25; echo (charges($Salaire, $TauxCharges)); La fonction est appelée ici function charges($Salaire, $TauxCharges) La fonction est définie ici { $Salaire = $Salaire – (($Salaire/100)*$TauxCharges); return; } ?> <?php function charges($Salaire, $TauxCharges) La fonction est définie ici { $Salaire = $Salaire – (($Salaire/100)*$TauxCharges); return; } $Salaire=1600; Lexécution commence ici $TauxCharges=25; echo (charges($Salaire, $TauxCharges)); La fonction est appelée ici ?>

Noms des variables On est pas obligé de donner aux variables hors de la fonction le même nom que celui des paramètres. Ex : $Blabla = 1600 ; $Lalala = 500 ; echo (reduction($blabla, $Lalala) function reduction ($Prix, $Reduction) { $Prix = $Prix – $Reduction ; return $Prix ; } Dans ce cas-ci, la variable utilisée comme paramètre $Prix prend la valeur de $Blabla et la variable $Reduction, celle de la variable $Lalala. Faire des essais : - créer une fonction en utilisant les éléments décrits plus haut - modifier la position des éléments

Autres applications ou méthodes Hormis la méthode de transmission de valeur qui vient de vous être présentée, il existe également une méthode qui permet de passer les arguments de fonctions « par référence », cest-à-dire qui implique que la valeur passée soit modifiée à lintérieur de la fonction. Mais nous ne la verrons pas ici.

Structures de contrôle

Introduction Les structures de contrôle (boucles) permettent deffectuer des tâches répétitives. Cependant, ce ne sont pas des structures conditionnelles dans la mesure où elles peuvent être exécutées indéfiniment. Pour résumer en deux mots le fonctionnement dune boucle, nous dirons quelle fonctionne ainsi: - Une condition est testée et le code de la boucle est exécuté, si la condition est satisfaite. - Ensuite, la condition est retestée et si elle est toujours « true », elle est re-exécutée. - Et ainsi de suite. Chaque passage de la boucle est appelée une itération. Il existe plusieurs types de boucles, chacun adapté à une situation différente. Nous allons les passer en revue ici: La boucle while La boucle do while La boucle for La boucle foreach (que nous verrons dans le chapitre des tableaux)

La boucle while La boucle while est la plus simple des boucles. Elle présente des ressemblances avec linstruction « if » La boucle while vérifie le résultat dune condition. Selon que la condition est « true » ou « false », la portion de code placée entre accolades (après linstruction conditionnelle) est exécutée. while (la condition est « true ») { Exécuter le contenu des accolades } Une fois le contenu entre accolades exécuté, la condition située juste au dessus est revérifiée. Dans le cas où cest à nouveau « true », le contenu de laccolade est ré-exécuté. Dans le cas où la condition est « false », le code entre accolades est ignoré et lon passe directement à la première ligne de code qui suit les accolades.

La boucle do while La boucle do while est environ similaire à la boucle « while » si ce nest que linstruction conditionnelle est testée à la fin de la boucle et non au début. Cela implique donc que le contenu des accolades sera appliqué au moins une fois, même si la condition est « false » Ex : do { Exécuter le contenu des accolades } while (la condition est « true ») ; retourner et recommencer ou do { Exécuter le contenu des accolades } while (la condition est « false ») ; sortir de la boucle et passer à la ligne de code suivante Cf. Exemple des nombres premiers Cf. Ex verifier_do_while.php

La boucle for La boucle for est idéale pour répéter une section de code un certain nombre de fois. Elle offre la possibilité de spécifier le nombre de fois que lon souhaite parcourir la boucle. Cette boucle est plus complexe que la boucle « while » Ex : for (définir le compteur de boucles ; tester le compteur de boucles ; ajouter ou soustraire au compteur) { exécuter le contenu des accolades } Le concept de compteur de boucles est introduit ici. Ex : for ($compteur=1 ; $compteur<=10 ; $compteur++) { echo « Mon nom est Bob ! » ; } La boucle for va : - compter combien de fois la boucle a été parcourue = itérations - puis finir la boucle une fois le nombre défini dépassé. - sassurer que la valeur du compteur se modifie à chaque itération, doù lapparition de « ++ » qui représente lincrémentation du compteur Faire des essais Cf. Ex for.php

Structures de données

Introduction Les tableaux sont constitués de variables dindice qui, surtout si elles sont associées à une boucle, peuvent être très efficace. Un tableau est composé dune série de valeurs qui ont toutes le même nom Chacune de ces valeurs ayant un indice différent Chaque constituant dun tableau est appelé « élément » On peut créer des tableaux de la même façon quon crée des variables, tant que lon oublie pas de mettre des crochets pour signaler lindice. Ex : $ PaysEurope[1] = "France" ; $ PaysEurope[2] = "Espagne" ; Lordre des n° nest pas important et lon peut même utiliser des caractères Ex : $ PaysEurope["F"] = "France" ; $ PaysEurope["E"] = "Espagne" ; $ PaysEurope["Ch"] = "Suisse" ; On peut également attribuer des valeurs mélangées aux indices des tableaux, à savoir valeur numériques ou caractères.

Initialisation Linitialisation est la définition des valeurs initiales des variables des tableaux $Pays[] = « France » $Pays[] = « Suisse » Sans les crochets, la valeur de la première variable serait automatiquement remplacée par la seconde dans la suite du programme. Labsence de valeur dindice fait que PHP va décider lui-même de stocker les valeurs dans $Pays[0] et $Pays[1]. Pas besoin de prédéfinir les types de données du tableau en indiquant sil sagit de données textuelles ou numériques. Pas besoin de spécifier la taille du tableau avant de le créer

La construction « array » $Pays = array ( " France ", " Espagne ", " Suisse " ) ; PHP génère automatiquement les valeurs dindice. Elles commencent à zéro. Les nouvelles valeurs sont insérées dans un élément vide avec la valeur dindice la plus petite. Ex : echo $Pays[2] ; afficherait " Suisse " Ex: $PaysEurope = array (1 => " France ", " Espagne ", " Suisse ", "Hollande", "Belgique", "Portugal", "Angleterre", "Danemark", "Allemagne", "Italie") ; Cf. Ex pays.php

Les itérations dans un tableau Les boucles sont utilisées dans les tableaux, afin déviter un travail laborieux qui consisterait à récupérer individuellement chaque élément du tableau afin de lafficher par exemple. La boucle for : Exemple afficher tous les pays recensés dans notre tableau : for ($compteur=1 ; $compteur<11 ; $compteur++) { echo " $Pays[$compteur] " ; } Commencer à 1 et aller jusquà 10, en augmentant à chaque fois le compteur de 1. Cela donnerait : echo " $Pays[1] " ; echo " $Pays[2] " ; echo " $Pays[3] " ; echo " $Pays[4] " ; echo " $Pays[5] " ; echo " $Pays[6] " ; echo " $Pays[7] " ; echo " $Pays[8] " ; echo " $Pays[9] " ; echo " $Pays[10] " ; Cf. Ex pays.php

Les itérations dans un tableau (suite) Les boucles while ou do while : Ces boucles nous obligent à définir un compteur nous-mêmes $compteur=1; while ($compteur<11) { echo « $Pays[$compteur] » ; $compteur=$compteur+1 ; } Le résultat sera semblable à lexemple précédent. Cf. Ex pays_while.php

La boucle foreach Cette boucle est utilisée lorsque nous avons un tableau avec un nombre déléments inconnu. Elle effectue des itérations jusquà la fin du tableau Pour chaque élément du tableau, on effectue une itération à travers la boucle foreach. foreach ($PaysEurope As $IndicePays => $Pays) { echo " $IndicePays - $Pays "; } $PaysEurope = nom du tableau $IndicePays = nom de variables que lon crée nous-mêmes qui contient les valeurs dindice. $Pays = nom de variables que lon crée nous-mêmes qui contient lélément correspondant Lavantage de cette boucle est que nous navons pas besoin deffectuer le décompte du nombre déléments du tableau, puisquelle la découvre toute seule. En ajoutant un nouvel élément qui ne suit pas les élément déjà présents dans le tableau, la boucle va le prendre en compte et lafficher, sans avoir à vérifier les éléments vides présents entre. Faire des essais: - Créer un tableau du même genre de « Pays » et tester les différentes boucles pour lafficher Cf. Ex foreach.php

Les tableaux non séquentiels Les tableaux non-séquentiels sont des tableaux qui ne sont pas remplis dans lordre croissant de leur indice, mais dans un ordre aléatoire. Ex: $Taille[1234]= " Enorme "; $Taille[1]= " Minuscule "; $Taille[654]= " Très grand "; Le problème avec une vérification séquentielle de ce genre de tableau est quil risque de ne contenir que très peu de valeur en réalité et comporter des espaces vide Fonctions current() et key() Ces fonctions sont des pointeurs pour conserver la trace dun élément donné lors des déplacements dans un tableau. La fonction current() permet de voir quel élément est en train dêtre utilisé par PHP La fonction key() permet de rechercher la valeur dindice affectée à lélément key est synonyme «d indice » ici. Ex : $ValeurIndiceCourant = key($Realisateur) ; renvoie la valeur dindice du 1er élément placé dans le tableau echo ($ValeurIndiceCourant) ; $ContenuCourant = current($Realisateur) ; echo ($ContenuCourant) ; renvoie la valeur du premier élément.

Les tableaux non-séquentiels (suite) Fonctions next() et prev() Ces deux fonctions permettent de naviguer au sein des tableaux, ainsi que de trouver la valeur dun nouvel élément ajouté au tableau. Ex : $Realisateur[4]= "Orson Welles"; $Realisateur[1]= "Carol Reed"; $Realisateur[93]= "Fritz Lang"; $Realisateur[24]= "Jacques Tourneur"; $Realisateur[]= "Alfred Hitchcock"; next($Realisateur) $ValeurIndiceCourant = key($Realisateur) ; echo ($ValeurIndiceCourant) ; La valeur affichée est 1 et current() renvoie le nom « Carol Reed » Pour résumer: Pour naviguer dans le tableau, nous utilisons les fonctions next() et prev() Pour afficher la position courante, les fonctions current() et key() Cf. Ex next_prev.php

Les tableaux non-séquentiels (suite) Fonctions list() et each() Les fonctions list() et each() permettent de renvoyer uniquement les éléments du tableau contenant des données, au lieu de passer des données vides qui peuvent être nombreuses. Nous utiliserons la boucle while peut effectuer cela while (list(ValeurIndice,ContenuElement) = each(NomTableau)) ValeurIndice = à lindice de lélément ContenuElement = au contenu de lélément Exemple while (list(ValeurIndiceElement,ContenuElement) = each($Realisateur)) { echo " $ValeurIndiceElement - $ContenuElement "; } La fonction list() renvoie dabord la valeur de lindice, puis le contenu de lélément. Cf. Ex list_each.php

Array functions Pour découvrir les array fonctions : cf. Trier les tableaux Il y a plusieurs fonctions de tri de tableau. Passons-en en revue cinq ici. Fonction sort() Fonction qui trie les éléments dun tableau par ordre alphabétique : sort(NomTableau) Fonction asort() Fonction qui trie les éléments dun tableau par ordre alphabétique, mais en conservant les indices de chaîne : asort(NomTableau) Fonction rsort et arsort Tri inversé. Idem que les deux précédentes, mais par ordre décroissant. Fonction ksort Trie le contenu dun tableau associatif en fonction des indices de chaîne. Le principe est le même que pour les autres indices de tri.

Exemples darray functions (suite) Fonctions array_push() et array_pop() Permettent dajouter ou de supprimer un élément à un tableau : Ex : a) array_push($Pays, "Italie", "Suède") ; ajoute ces deux pays b) $Pays [2] = "Suisse" ; $Pays [1] = "France" ; $Pays [8] = "Espagne" ; $Pays [10] = "Angleterre" ; array_pop($Pays) ; supprime le dernier élément ajouté au tableau (ici « Angleterre »). Mais cette fonction ne supprime quun élément à la fois. Fonctions Implode et Explode Fonctions qui permettent de stocker tout le contenu dun tableau en tant que chaîne ou linverse. Implode concatène les éléments dun tableau et crée une chaîne séparée par un délimiteur. $NomChaine = implode ("délimiteur", $NomTableau) ; Ex : $Pays_separes = implode ("-", $Pays) ; echo ($Pays_separes) ; Cela va donner : Suisse-France-etc Explode produit linverse, cest-à-dire quelle sépare les éléments de la chaîne.

Les tableaux multidimensionnels Nous nen parlerons pas ici. Les tableaux multidimentionnels sont des tableaux de tableau. Ex: NomTableau = array (indice => array (Contenu du tableau)) Ex : annuaire téléphonique Lindice serait « Jessica Claude » et le contenu (« 10 ch. Rieu », « 022/----- »)

La portée des variables Les variables locales et globales

Variables locales vs globales Les variables à lintérieur dune fonction ont une portée locale. Elle nexistent quà lintérieur même dune fonction et donc uniquement pour la durée dappel de cette fonction. Les variables dont la durée de vie correspond à la durée de vie dune page ont une portée globale. Illustration: <php? $MessageBienvenue = « Hello world »; VARIABLE GLOBALE function traduire_message ( $MessageFrancais) { $MessageFrancais = « Bonjour à tout le monde »; VARIABLE LOCALE return $MessageFrancais; } traduire_message (); echo $MessageBienvenue; echo $MessageFrancais; ?> Ce morceau de code ne renvoie pas la valeur de $MessageFrancais, puisque la durée de la variable locale se termine quand la fonction renvoie une valeur. La valeur renvoyée par la fonction na donc pas deffet une fois que la fonction se termine Solution pour afficher Cf. Ex variables_locales_globale.php

Variables locales vs globales (suite) Utiliser les variables globales à lintérieur des fonctions Lexemple de $GLOBAL <?php $MessageBienvenue = " Hello world "; function traduire_message ( $MessageFrancais) { echo $GLOBAL [" MessageBienvenue "]; $MessageFrancais = " Bonjour à tout le monde "; return $MessageFrancais; } traduire_message (); echo $MessageBienvenue; echo (traduire_message($MessageFrancais)); ?>

Lexercice

Consignes Reprenez votre exercice STAF 14 de lannée passée et reproduisez-le à laide darray, de boucles et de fonctions, comme nous venons de le voir. Lidée est de ne plus utiliser une structure envahie de « if », « then ».