Programmation PHP. François Rioult

Dimension: px
Commencer à balayer dès la page:

Download "Programmation PHP. François Rioult"

Transcription

1 Programmation PHP François Rioult 3 décembre 2007

2 Table des matières 1 Notion de programme, instructions Premier exemple : lire un message et l afficher Entrée / sortie Suite de l exemple Séquencement Variable Structures de contrôle Instruction conditionnelle Itérations Bilan TD Découvrir Programmes et exercices (TD) Afficher le double d un nombre choisi par l utilisateur Afficher le nombre de lettres et le nombre de "a" que contient un mot choisi par l utilisateur Exercice Comparer deux nombres saisis par l utilisateur - différentes écritures Répondre des messages différents en fonction du nom de l utilisateur Exercice Répeter un traitement jusqu à ce que l utilisateur veuille s arrêter Amélioration : compter le nombre de traitements faits Jeu du nombre mystérieux Vote Version 1 : saisie des noms au clavier Version 2 : les noms sont stockés dans un fichier Fichier texte et algorithmes sur les fichiers Notion de fichier texte Définition Principe d utilisation des fichiers textes Algorithmes élémentaires sur les fichiers Lecture d un fichier Création et écriture d un fichier

3 4 TP 2 - Calcul de moyenne de notes Exercice 1 : moyenne de notes par personne Les tableaux Les tableaux simples Les chaînes de caractères Les tableaux associatifs Fonctions pour les tableaux TD Exercice Manipulations Exercice TP Exercice Exercice Version élémentaire Vérification des balises Vérification avancée Les fonctions Exemples Portée des variables Génie logiciel Récursivité Passage par référence TD Exercice Exercice TP Exercice Exercice Exercice Exercice Formulaires GET et POST Bouclage sur un formulaire TD Exercice Exercice Exercice TP Les bases de données Instruction PHP

4 15 Enchaînement de scripts Librairie Mise en forme HTML Insertion des fragments HTML Champ caché TD Exercice Exercice Exercice TP Préliminaires Formulaire client Formulaire produits Facturation Programmation objet Introduction Conception orientée objet Passage d objet Exemple Documentation TD Exercice TP Préliminaires Classe client Classe produits Documentation Héritage Session PHP Classe des formulaires TD Exercice Exercice TP Préliminaires Classe produits Documentation Application objet Curl Conception Réalisation

5 25 TD Classe Cddb Classe Client TP Préliminaires Classe disques Classe clients Images dynamiques - file upload Méthodes statiques File upload - scripts CGI Images dynamiques Taquin Classe Vignette Classe Image Classe Case Classe Grille TD TP Préliminaires Classe Grille Introduction à la complexité Géodésie Complexité Comparaison de fonctions classiques Exemple simple Exemple amélioré Problème de recherche Recherche de plus court chemin Graphe Solution simple Algorithme de DIJKSTRA Conseils Généricité Sources TD TP A Séquence A.1 TD A.2 TP

6 Chapitre 1 Notion de programme, instructions 1.1 Premier exemple : lire un message et l afficher Programme : description précise d actions à exécuter sur un ordinateur pour réaliser une tâche. Les programmes ne se rencontrent pas seulement en informatique. Exemples : partition musicale, recette de cuisine, méthode pour calculer la longueur moyenne et le poids moyen d un ensemble de personnes. Traitement automatique : signifie que le traitement, une fois défini, ne dépend que des données fournies en entrée et non de choses extérieures. L ordinateur n est pas l unique type de machine à effectuer des traitements automatiques (ou programmés) : un orgue de barbarie, un métier à tisser automatique, une machine à laver sont aussi des machines programmées. Exemple de programme PHP : afficher un message à l écran Voici ce premier programme : <?php echo "Bonjour à tous\n" ;?> Remarquer les balises <?php et?> pour indiquer au système qu il s agit d un script PHP. Ces balises doivent obligatoirement être présentes. Le texte entre " " est une chaine de caractères. \n est le saut de ligne dans un contexte de chaîne. Pour exécuter le programme (stocké dans le fichier de nom test1.php), taper la ligne de commande : bruno@pc159:~$ php test1.php Entrée / sortie On souhaite maintenant modifier le programme pour que celui-ci demande à l utilisateur son nom et l affiche. De quoi avons-nous besoin? entrée / sortie : saisie du nom (entrée) et affichage (sortie), 5

7 variable : pour stocker et retrouver le nom. Les notions d entrée / sortie (encore appelées lecture / écriture) sont à considérer du point de vue de l ordinateur (cf. figure 1.1). écrire humain lire FIG. 1.1 lecture / écriture entrée : l utilisateur fournit des informations à l ordinateur (i.e. lecture d information de la part de l ordinateur) : l instruction lire() collecte une ligne de saisie (fin de la saisie terminée par <RETOUR>). sortie : l ordinateur donne des informations à l utilisateur (i.e. écriture (affichage) d information de la part de l ordinateur) : la fonction echo envoie ses arguments sur le périphérique de sortie standard. Remarque : La fonction lire utilisée dans les programmes qui suivent pour lire une chaine de caractères tapée au clavier par l utilisateur, n est pas une fonction prédéfinie dans PHP. La suite d instructions permettant de réaliser ce travail n est pas détaillée ici cer elle est un peu complexe pour démarrer. Le code de cette fonction est rangé dans le fichier fonctions1.inc que vous devez recopier dans votre répertoire de travail. Pour pouvoir l utiliser dans un programme rajouter en tête du programme l instruction : require("fonctions1.inc") Suite de l exemple Voici le programme qui permet de réaliser cette version améliorée de l exemple. <?php require("fonctions1.inc"); echo "Bonjour à tous\n" ; echo "Quel est ton nom : " ; $NomPersonne = lire() ; print "Bonjour ", $NomPersonne ;?> Voici maintenant un exemple de résultat d exécution de ce programme. Bonjour à tous Quel est ton nom : fanny Bonjour fanny En fait dans un premier temps il y a eu seulement affichage de : 6

8 Bonjour à tous Quel est ton nom : Le programme s arrête, et reprend son exécution lorsque l utilisateur a fini de taper une chaine de caractères terminée par un retour-chariot. Le reste du texte est alors affiché Séquencement Séquencement. Les instructions d un programme sont exécutées séquentiellement. Cela signifie : les instructions sont traitées les unes après les autres, chaque instruction est traitée une fois, aucune n est répétée ni omise, les instructions sont traitées de la première à la dernière, le programme est alors fini, l état final (par exemple, les variables et leurs valeurs) d une instruction devient l état initial de l instruction qui la suit. Marque de séquencement séparant deux instructions : " ;" Variable $Nompersonne est ce que l on appelle une variable. En informatique, une variable est un objet permettant de stocker et de retrouver une information en mémoire (cf. figure 1.2). <nom> <valeur> $Utilisateur Pierre FIG. 1.2 schématisation d une variable Une variable est caractérisée par : nom : choisi par le programmeur, désigne la variable sans ambiguïté (ici : $NomPersonne). valeur : contenu de la variable (ici : fanny après que l utilisateur ait fini de taper ce texte au clavier. Remarque : une variable peut être "accessible" de certains points d un programme et pas d autres. C est ce que l on appelle la portée d une variable. Cette question sera vue avec la modularité. Pas de véritable notion de type en PHP (contrairement à d autres langages). Un nom de variable commence par $ Choisir des noms significatifs pour les variables. PHP distingue majuscules / minuscules. Convention possible : faire ressortir les différentes parties d un nom par une majuscule. Initialisation de variables par défaut par PHP. Cette initialisation dépend du contexte (la notion de contexte sera ultérieurement détaillée). Si la variable considérée est : 7

9 nombre : valeur 0, chaîne : chaîne vide, valeur booléenne attendue : valeur "faux" (codée FALSE) Attention : une chaîne ayant la valeur 0 est considérée dans un contexte booléen comme ayant la valeur faux. Exemple (cet exemple sera détaillé à la section 1.2.1). <?php if ($A) { echo "vrai \n" ; else { echo "faux \n" ;?> faux affiche si $A n est pas initialisé. faux est aussi affiché si $A a la valeur 0 mais vrai est affiché si $A a (par exemple) la valeur 1 Autre exemple : echo "Somme = ", 30 + $A + 10 ; echo "\n" ; echo "Chaine = ", "30". $A. "10" affiche : Somme = 40 Chaine = 3010 Affectation. Assignation d une valeur à une variable : symbole = (à ne pas confondre avec la notion d égalité!). $N1 = $N2 ; $N1 est le receveur, $N2 le donneur Le donneur peut être n importe quelle expression, le receveur doit être un emplacement valide de stockage (variable, élément de tableau). $N1 = $N1 + $N2 ; $N1 est ici d abord donneur puis receveur. Dans le texte ci-dessus lire() est ce que l on appelle une fonction. Quand l instruction $NomPersonne = lire(), est rencontrée, il y a successivement exécution de la fonction lire() : le programme s arrète et ne reprend qu après que l utilisateur ait tapé un retour chariot. la chaine de caractère qu a tapé l utilisateur est considérée comme le résultat de la fonction lire(). On dit que lire() retourne cette chaine de caractères. cette valeur retournée est affectée à la variable $NomPersonne Quand le programme passe à l instruction suivante echo "Bonjour", $NomPersonne, c est alors la valeur de cette variable qui est utilisée pour exécuter l instruction et produire l affichage. 8

10 1.2 Structures de contrôle Instruction conditionnelle Imaginons qu on veuille personnaliser la réponse : si l utilisateur est Pierre, on affiche bonjour mon cher Pierre, sinon bonjour <Nom de l utilisateur>. Pour cela, il faut utiliser une instruction conditionnelle. if (expression) { instruction1 ; instruction2 ; else { instruction3 ; instruction4 ; Dans le contexte d une instruction conditionnelle, <expression>, (aussi appelée test ), est évaluée à une valeur booléenne (TRUE ou FALSE). Ne pas oublier les () autour de <expression>. Les délimiteurs de blocs sont impératifs dès que il y au moins deux instructions à exécuter dans une alternative. Le else et les instructions qui le suivent peuvent être absents. <?php require("fonctions1.inc"); echo "Bonjour à tous\n" ; echo "Quel est ton nom : " ; $NomPersonne = lire() ; if ($NomPersonne == "Pierre") { echo "Bonjour mon cher Pierre"\n" ; else { echo "Bonjour ", $NomPersonne,"\n" ;?> Remarques : Ici les { auraient pu être omises puisque dans chaque alternative il n y a qu une seule instruction à exécuter. Observer l indentation du texte du programme. Elle n est pas significative pour PHP. Le texte pourait être écrit entièrement sur une seule ligne. Mais une bonne disposition facilite la lecture et la compréhension de la structuration du programme pour le programmeur. Une partie entre accolades s appelle un bloc. Le ; qui suit un bloc peut-être omis. S il y a plus de deux alternatives on peut utiliser une "cascade" de elseif : <?php require("fonctions1.inc") ; echo "Bonjour à tous\n" ; 9

11 echo "Quel est ton nom : " ; $NomPersonne = lire() ;?> if ($NomPersonne == "Pierre") { echo "Bonjour mon cher Pierre \n" ; elseif ($NomPersonne == "Marie") { echo "Bonjour ma chère Marie\n" ; elseif ($NomPersonne == "Clara") { echo "Bonjour ma très chère Clara\n" ; else { echo "Bonjour ", $NomPersonne,"\n" ; Remarquez que les différentes alternatives sont disjointes : si on passe dans une, les suivantes sont ignorées même si une ou plusieurs conditions sont vérifiées. Comme dit précédemment, l évaluation de l expression qui suit le if doit produire vrai ou faux. Par extension on considèrera qu une chaine de caractères qui n est pas vide ou un nombre non nul à la valeur TRUE. La chaine vide et 0 sont considérés comme ayant la valeur booléenne FALSE. Exemple : <?php if ($A) { print "vrai \n" ; else { print "faux \n" ;?> Dans le programme ci-dessus $A n a jamais reçu d affectation. Il est considéré comme étant la chaine vide ou le nombre 0 et dans le test l évaluation booléenne sera donc faux. Ce programme affichera donc le mot faux Itérations On souhaite répéter l affichage du message tant que la chaîne fin n est pas tapée. Pour cela, on utilise une itération : while (expression) { instruction1 ; instruction 2 ; L itération est répétée tant que expression a la valeur vrai. Dans le contexte d une itération, <expression>, (i.e. test ), est évaluée à une valeur booléenne. Ne pas oublier les () autour <expression>. Le bloc entre accolades qui suit le while s appelle le corps de la boucle. (expression) exprime la "condition d arrêt". 10

12 <?php require("fonctions1.inc"); echo "Bonjour à tous\n" ; echo "Quel est ton nom : " ; $NomPersonne = lire() ; while ($NomPersonne!= "fin") { if ($NomPersonne == "Pierre") { echo "Bonjour mon cher Pierre\n"; elseif ($NomPersonne == "Marie") { echo "Bonjour ma chère Marie\n"; else { echo "Bonjour ", $NomPersonne,"\n" ; ; echo "Quel est le nom suivant : " ; $NomPersonne = lire() ; ; Remarques : ($NomPersonne!= "fin") est un test qui prend la valeur vrai si la valeur de $NomPersonne est différente de fin Observer le == pour tester l égalité entre la valeur reçue par $NomPersonne et les chaines Pierre ou Marie suivant le cas. Observer que l instruction $NomPersonne = lire() ; apparaît deux fois. Une première fois avant le while pour saisir le nom de la première personne. Une deuxième fois en fin de boucle, afin d avoir une nouvelle valeur de $NomPersonne avant de refaire le test. Il existe plusieurs structures de contrôle permettant de réaliser des boucles, et souvent plusieurs manières différentes d écrire des traitement identiques ou voisins. Nous y reviendrons ultérieurement. Reprenons le programme précédent. On veut en outre compter le nombre de personnes à qui le programme dit bonjour. Quel va être le principe? L expliciter en langage courant. Quelles variables et traitement sont à introduire? Voici une solution : <?php /*commentaire Saluer des personnes. Ce programme permet de montrer les briques élémentaires d un programme. */ require("fonctions1.inc"); echo "Bonjour à tous\n" ; $NbPersonne = 0 ; // initialisation facultative echo "Quel est ton nom : " ; 11

13 $NomPersonne = lire() ; while ($NomPersonne!= "fin") { $NbPersonne = $NbPersonne + 1 ; if ($NomPersonne == "Pierre") { echo "Bonjour mon cher Pierre\n"; elseif ($NomPersonne == "Marie") { echo "Bonjour ma chère Marie\n"; else { echo "Bonjour ", $NomPersonne,"\n"; ; echo "Quel est le nom suivant : " ; $NomPersonne = lire() ; ;?> echo "J ai dit bonjour à ", $NbPersonne, " personne (s).\n" ; /*... */ encadrent un texte que l on appelle commentaire, qui peut tenir sur plusieurs lignes. // précède également un commentaire mais qui occuppe uniquement la fin de la ligne. Les commentaires sont ignorés par PHP. Ils sont très utiles au programmeur et autres lecteurs du programme pour comprendre celui-ci. Remarquer ici l instruction $NbPersonne = $NbPersonne + 1 ; L exécution de cette instruction se déroule selon un mécanisme analogue à celui décrit un peu plus haut pour l affectation $NomPersonne = lire() ; $NbPersonne + 1 est exécuté ou plus exactement calculé. le résultat de ce calcul est rangé dans la variable à gauche du signe = cette instruction a donc pour effet d augmenter de 1, la valeur connue par le système pour la variable $NbPersonne 1.3 Bilan Effectuons le bilan de chapitre : Un programme se compose d instructions, celles-ci sont ordonnées et exécutées séquentiellement. Deux types d instructions : instruction élémentaire : instruction directement comprise par PHP : affectation, lecture, fonctions (echo, log,...). instruction non élémentaire et écrite par le programmeur : (lire()... Une telle instruction est écrite pour réaliser une tâche et finit toujours par se décomposer en termes d instructions élémentaires (cf. fonctions et cours sur la modularité). On distingue : mots réservés : mots et symboles appartenant à PHP : echo, print, if, $, ;,... 12

14 mots ou instructions librement choisis par le programmeur en respectant les conventions du langage : $NbPersonne = 0 ;... Commentaire : texte facilitant la lecture du programme par un humain mais non exploité par la machine. Remarquez la notation différente entre commentaire uniligne et multiligne. Présentation : PHP est un langage de format libre : en général, les espaces entre éléments sont optionnels. Remarquez l indentation, elle est importante pour la lisibilité du programme par le programmeur. Principe de déroulement d un programme (cf. figure 1.3). état initial données programme FIG. 1.3 déroulement d un programme état final résultats Les instructions manipulent des objets portant l information : les variables. Les variables sont consultées ou modifiées. Analogie avec les langues naturelles : nom : variable, comme endroit pour conserver quelque chose, un endroit qui a un nom. verbe : commande. Une instruction commençant par un verbe est en général impérative et est évaluée pour ses effets secondaires. Ces verbes sont souvent appelés procédures (la commande echo est un tel verbe, la sortie est l effet secondaire désirée). D autres verbes traduisent leurs paramètres d entrée en valeurs de retour (fonctions). 13

15 Chapitre 2 TD1 2.1 Découvrir gérez vos répertoires et vos fichiers : créez un répertoire pour le module d analyse / programmation en PHP, des sous-répertoires par séquence ou thème. suffixez vos scripts PHP par.php travaillez par analogie : sachez récupérer un programme et le transformer pour vos propres besoins. récupérez les programmes vus en cours, copiez-les dans votre répertoire de travail, exécutez-les, modifiez-les à votre guise pour observer les différences, jusqu à ce que vous ayez bien compris le rôle de chaque instruction. 2.2 Programmes et exercices (TD) Afficher le double d un nombre choisi par l utilisateur Programme doublelog.php <?php //ce programme affiche le double et le logarithme d un nombre choisi // par l utilisateur?> require("fonctions1.inc"); // Pour pouvoir utiliser la fonction lire echo "Voici notre premier exemple \n"; echo "Donnez moi un nombre : \n"; $nombre = lire(); echo "le double de ce nombre est ",$nombre+$nombre,"\n"; //on aurait aussi pu écrire : // $double = $nombre + $nombre; // echo "le double de ce nombre est $double"; 14

16 2.2.2 Afficher le nombre de lettres et le nombre de "a" que contient un mot choisi par l utilisateur Programme nblettres.php <?php /* Affiche le nombre de lettres et le nombre de a d un mot choisi par l utilisateur */ require("fonctions1.inc"); echo "Voici notre deuxieme exemple \n"; echo "Donnez moi un mot : \n"; $mot = lire(); $longueur = strlen($mot); $nba = substr_count($mot,"a");?> echo "ce mot est composé de $longueur lettres \n"; echo "il contient $nba fois la lettre a \n"; Exercice En vous inspirant des deux exemples qui précèdent écrire les deux programmes ci-dessous : 1. On demande deux nombres à l utilisateur, afficher leur somme et leur produit. 2. On demande un mot à l utilisateur, afficher le nombre de voyelles de chaque type et le nombre total de voyelles Comparer deux nombres saisis par l utilisateur - différentes écritures Programme comparenombres1.php <?php // Comparaison de deux nombres require("fonctions1.inc"); // Saisie des nombres ============================= echo "Donnez-moi un nombre \n "; $Nombre1 = lire(); echo "Donnez-moi un autre nombre \n"; $Nombre2 = lire(); // Comparaison ==================================== if ($Nombre1 < $Nombre2) { echo "le premier nombre est plus petit que le deuxième \n" ; 15

17 ?> else {echo "le premier nombre est supérieur ou égal au deuxième \n" ;; Version un peu améliorée : Programme comparenombres2.php <?php Comparaison de deux nombres avec test d égalité require("fonctions1.inc"); // Saisie des nombres ============================= echo "Donnez-moi un nombre \n "; $Nombre1 = lire(); echo "Donnez-moi un autre nombre \n"; $Nombre2 = lire();?> // Comparaison ==================================== if ($Nombre1 < $Nombre2) { echo "le premier nombre est plus petit que le deuxième \n" ; elseif ($Nombre2 < $Nombre1) {echo "le deuxième nombre est inférieur au premier \n" ; else { echo "Les deux nombres sont egaux \n"; Ou encore Programme comparenombres3.php <?php Comparaison de deux nombres avec test d égalité require("fonctions1.inc"); // Saisie des nombres ============================= echo "Donnez-moi un nombre \n "; $Nombre1 = lire(); echo "Donnez-moi un autre nombre \n"; $Nombre2 = lire();?> // Comparaison ==================================== if ($Nombre1 == $Nombre2) { echo "Les deux nombres sont égaux \n" ; elseif ($Nombre2 < $Nombre1) {echo "le deuxième nombre est inférieur au premier \n" ; else { echo "Le premier nombre est inférieur au second \n"; 16

18 2.2.5 Répondre des messages différents en fonction du nom de l utilisateur Programme nom.php <?php require("fonctions1.inc");?> echo "quel est votre nom \n"; $NomPersonne = lire(); if ($NomPersonne == "fanny") { print "Bonjour ma chère fanny"; else {print "Bonjour $NomPersonne"; Exercice Ecrire un programme qui compare le nombre de voyelles de deux mots donnés par l utilisateur Répeter un traitement jusqu à ce que l utilisateur veuille s arrêter On reprend le programme qui répond des messages différents à l utilisateurs Programme nomiter1.php <?php require("fonctions1.inc"); echo "quel est votre nom \n"; $NomPersonne = lire();?> while ($NomPersonne!= "fin") { if ($NomPersonne == "fanny") print "Bonjour ma chère fanny\n"; else print "Bonjour $NomPersonne\n"; echo "quel est votre nom \n"; $NomPersonne = lire(); Amélioration : compter le nombre de traitements faits Le même en comptant le nombre de personnes saluées. Programme nomiter2.php 17

19 <?php require("fonctions1.inc"); echo "quel est votre nom \n"; $NomPersonne = lire(); $NbPersonne = 0;?> while ($NomPersonne!= "fin") {$NbPersonne = $NbPersonne +1 ; if ($NomPersonne == "fanny") print "Bonjour ma chère fanny\n"; else print "Bonjour $NomPersonne echo "quel est votre nom \n"; $NomPersonne = lire(); echo \n"; "j ai salué $Nbpersonnes \n"; 18

20 2.3 Jeu du nombre mystérieux Dans le jeu du nombre mystérieux, l ordinateur tire au hasard un nombre que l utilisateur doit deviner. Pour cela, l utilisateur propose un nombre : s il est trop petit, l ordinateur répond trop petit, s il est trop grand, l ordinateur répond trop grand, sinon, c est que le nombre proposé par l utilisateur est celui choisi par l ordinateur : l utilisateur a alors gagné. Le but de cet exercice est d écrire en procédant par étapes un programme de jeu du nombre mystérieux. Dans cet exercice, les étapes sont proposés et chaque étape complète la précédente. 1. Dans un premier temps, on triche : le nombre mystérieux n est pas tiré au hasard : il est fixé (par le programmeur) dans une variable. Cela permettra de faire plus facilement les tests! Ecrivez le programme qui initialise cette variable et demande un nombre à l utilisateur. 2. Indiquez au joueur si le nombre qu il a proposé est plus petit, plus grand ou s il a gagné. 3. Répétez les tours de jeu jusqu à ce que le joueur ait deviné. 4. Indiquez en combien de tours le jour a deviné. On pourra adresser un message de félicitations si le joueur a deviné (par exemple) en moins de 8 tours. 5. Maintenant c est l ordinateur qui choisit le nombre. En phase de test, vous pouvez en début de partie faire afficher le nombre choisi. Evidemment en version finale cet affichage disparaitra. Indication : Le fichier fonctions1.inc contient une fonction choix() qui retourne un nombre compris entre 0 et Bien sûr, d autres améliorations sont possibles : Enchaîner les parties : à la fin d une partie, le programme demande à l utilisateur s il souhaite enchaîner une nouvelle partie. Indroduisez une condition d arrêt supplémentaire : si au bout d un certain nombre d essais (fixé par l utilisateur ou le programme) l utilisateur n a pas trouvé le nombre mystérieux, le programme s arrête automatiquement. Ajoutez un message de d accueil pour souhaiter la bienvenue à l utilisateur, un message d adieu. Le programme peut demander au début le nom de l utilisateur et le message d adieu peut ainsi être personnalisé à l utilisateur. Modifiez le programme pour qu il compte le nombre d essais de l utilisateur et qu il affiche, à chaque proposition de l utilisateur, le nombre d essais effectués. 19

21 2.4 Vote Version 1 : saisie des noms au clavier Dans une petite commune, les électeurs, lors d une élection partielle, ont le choix entre deux candidats, mais peuvent aussi voter pour une personne de leur choix. On souhaite connaître le nombre et le pourcentage de votes pour les deux candidats officiels. Scénario : les électeurs saisissent au clavier (l anonymat et la validité du vote sont garantis!), chacun leur tour le nom de la personne pour laquelle ils désirent voter. A la clôture du bureau, le responsable tape fin pour terminer la saisie et afficher le résultat (partiel) de l élection. 1. Ecrivez d abord un programme qui accepte des noms désignant les élus potentiels (par exemple, pierre, marie,...) saisis au clavier et affiche, après chaque saisie : Vous avez voté pour XXX. La chaîne fin indique la fin de saisie. fin ne doit pas être affiché comme un vote. 2. Modifiez le programme pour que celui-ci connaisse les noms des deux candidats déclarés saisis au clavier et indique : le nombre de voix obtenu par chacun de ces candidats lequel de ces deux candidats a obtenu le plus de le plus de voix. 3. Indiquez le pourcentage de voix de chacun des candidats par rapport au nombre total de votants. Avant de vous lancer dans les modifications du programme, réfléchissez aux questions suivantes : comment s obtient (se calcule) un pourcentage? quelle variable faut-il introduire? Que se passe-t-il si personne ne vient voter? Version 2 : les noms sont stockés dans un fichier On suppose maintenant que les noms ne sont plus saisis au clavier mais qu ils ont été rangés dans un fichier au fur et à mesure du vote et qu un traitement de ce fichier est ensuite fait pour calculer les résultats. Ecrire un fichier texte contenant les votes (1 nom par ligne). Modifiez le programme précédent, pour qu il lise ce fichier et affiche les résultats du vote. Modifier le programme pour que le nom du fichier texte contenant les votes soit saisi au clavier et qu un message d erreur s affiche si le fichier n est pas trouvé. 20

22 Chapitre 3 Fichier texte et algorithmes sur les fichiers 3.1 Notion de fichier texte Définition Définition d un fichier. Un fichier est un ensemble d informations identifié par un nom et enregistré sur un support magnétique. Un fichier texte est une suite de caractères ASCII. Ces caractères sont organisés en lignes. Chaque ligne est terminée par le caractère <RETOUR> (facultatif pour la dernière ligne). Les différentes lignes ne sont pas nécessairement de même longueur. Historiquement, une ligne (ou fiche) d un fichier correspondait à un élément (par exemple, les fiches signalétiques des livres d une bibliothèque, des caractéristiques d individus d une même population,...). La figure 3.1 représente un fichier texte. fin de ligne fin de fichier FIG. 3.1 schématisation d un fichier Intérêts des fichiers : stockage sur un support permanent (disque dur, disquette) autorisant l archivage et non pas en mémoire vive, 21

23 stockage d informations nécessaires à plusieurs programmes (cela évite de devoir maintenir une information commune à plusieurs programmes, cette idée débouchant sur les systèmes de gestion de bases de données). La contiguïté est l ordre implicite des éléments du fichier : la correspondance entre une position et un élément est implicite (on est sur le 3ème élément uniquement parce que celui-ci a deux prédécesseurs). Les fichiers textes standards ne permettent pas d accéder directement à une ligne : pour accéder à la ième ligne, il faut parcourir les (i-1)ème premières Principe d utilisation des fichiers textes Un fichier texte peut être édité et manipulé avec un éditeur de texte. Dans certains cas, c est le moyen le plus aisé pour le modifier (par exemple, remplacer une ligne). Dans d autres cas, un programme effectuera plus aisément la tâche (par exemple remplacer une chaîne de caractères par une autre pour les lignes impaires du programme). Il peut être aussi nécessaire d accéder à un fichier par le biais d un programme pour, par exemple, accéder à des données ou enregistrer des résultats. La manipulation d un fichier texte par un programme nécessite les 3 étapes suivantes : 1. Ouverture du fichier. Cette étape comprend 2 opérations : (a) effectuer le lien entre le nom du fichier dans le programme) et le nom physique du fichier (nom du fichier en mémoire secondaire) : canal d entrée / sortie. (b) indiquer le mode d utilisation du fichier : lecture, écriture ou ajout de données (en fait, d autres modes sont possibles). 2. Traitement des éléments du fichier. Exemple : lecture des lignes, écriture d information. Pour un fichier séquentiel, l accès se fait élément par élément sans possibilité de retour en arrière (si on souhaite revenir en arrière, il est nécessaire de fermer le fichier, puis de le ré-ouvrir et d avancer jusqu à atteindre l élément désiré). Le caractère de fin de fichier permet d arrêter l itération. En général, les algorithmes ont la forme indiquée à la figure 3.2. ouverture en lecture : ouverture en écriture lire fichier : <FICHIER> traiter ligne traiter ligne écrire fichier : print FICHIER...; FIG. 3.2 principe des algorithmes usuels sur les fichiers 3. Fermeture du fichier. En PHP, l ouverture du fichier est effectuée par la fonction fopen qui possède deux arguments. Par exemple : $FichPers = fopen("fpers1.txt","r") ; 22

24 fopen renvoie un pointeur (ou descripteur ou handle) de fichier (sauf en cas d échec ou false est retourné). Le fichier fpers1.txt (qui est dans le répertoire courant) est ouvert en lecture. Le mode d utilisation du handle de fichier est désigné par le deuxième argument de fopen : r (comme dans l exemple ci-dessus) : le fichier est ouvert en lecture seule. Le programme est prêt à lire le premier élément, mais celui-ci n est pas encore lu. w : ouverture en écriture seule. Si le fichier n existe pas, il est créé (et son contenu est vide), s il existe déjà, cette opération le vide de son contenu (cela permet de réinitialiser un fichier). a : ouverture en ajout. Si le fichier n existe pas, il est créé. Dans tous les cas, on est positionné à la fin du fichier, prêt à écrire un nouvel élément après le dernier élément. Exemples d échec : tentative d ouverture en lecture d un fichier qui n existe pas ou pour lequel on ne dispose pas des autorisations, tentative d ouverture en écriture sur un fichier protégé en écriture, à un répertoire inaccessible. Aussi, il est judicieux de vérifier les valeurs de retour des fonctions fopen et fclose (cf. exemple ci-dessous). Un appel à fclose peut échouer en cas de disque plein, si le serveur contenant le fichier devient inaccessible, etc. la fermeture du fichier s effectue avec fclose avec comme argument un pointeur de fichier. Par exemple : fclose($fichpers) ; test de fin de fichier : feof avec comme argument un pointeur de fichier. lecture dans un fichier. Il existe plusieurs fonctions (pf désigne un pointeur de fichier) : fgetc(pf) : lecture d un caractère fgets(pf,nbmax) : lecture d une chaîne (terminée par \n ou la fin de fichier) ayant au plus nbmax - 1 caractères. fgetss(pf,nbmax) : comme fgets mais exclut les balises HTML et PHP lors de l affichage (mais celles-ci sont comptées pour nbmax). fread(pf,nbmax) fscanf(pf,chaine) file(nomphysiquedufichier) : chaque ligne du fichier est placée dans un élément d un tableau. écriture dans un fichier : fwrite(pf,chaîne) : écrit chaîne dans le fichier pointé par pf. Un troisième argument optionnel indique le nombre de caractères de la chaîne à écrire. fputs est un alias de fwrite file_exists(nomphysiquedufichier) teste si le fichier existe (renvoie true si il existe, false sinon). filesize(nomphysiquedufichier) donne la taille du fichier en argument. 23

25 3.2 Algorithmes élémentaires sur les fichiers Lecture d un fichier Affichage des lignes d un fichier On suppose que le fichier existe. Exemple : fichier de personnes, chaque ligne du fichier contient le nom d une personne, son âge et sa taille, ces caractéristiques étant séparées deux à deux par un espace. Le but du programme est d afficher chaque ligne, telle qu elle se présente dans le fichier. Attention : si le nom de la variable indiquant le nombre de caractères lus dans le fgets (ici, $NbCarMaxLigne) a la valeur 0 (par exemple, parce qu elle a mal été orthographiée et a donc par défaut la valeur 0), alors aucun caractère n est lu à chaque itération et on boucle. <?php $NbCarMaxLigne = 1000 ; $FichPers = fopen("fpers1.txt","r") ; $Num = 0 ; while (! feof($fichpers)) { $Ligne = fgets($fichpers, $NbCarMaxLigne) ; $Num = $Num + 1 ; echo "Ligne numéro $Num : $Ligne" ; fclose($fichpers) ;?> Remarque : Il est possible d utiliser une constante : define (NbCarMaxLigne, 1000) ;... $Ligne = fgets($fichpers, NbCarMaxLigne) ; Pour le fichier fpers1.txt suivant : Pierre Noémie Julie Barthélemy le programme affiche : Ligne numéro 1 : Pierre Ligne numéro 2 : Noémie Ligne numéro 3 : Julie Ligne numéro 4 : Barthélemy

26 Chaque ligne du fichier (y compris le caractère \n) est lue une à une lors de l itération et est successivement stockée dans $Ligne. En contrôlant les valeurs de retour d open et close : <?php $NbCarMaxLigne = 1000 ; $FichPers = fopen("fpers1.txt","r") ; if (! $FichPers) { echo "Impossible d ouvrir fpers1.txt\n" ; exit ; $Num = 0 ; while (! feof($fichpers)) { $Ligne = fgets($fichpers, $NbCarMaxLigne) ; $Num = $Num + 1 ; echo "Ligne numéro $Num : $Ligne" ; $Res = fclose($fichpers) ; if (! $Res) { echo "Impossible de fermer fpers1.txt\n" ;?> Affichage des caractéristiques des lignes d un fichier Idem que précédemment, mais on souhaite un affichage séparé des caractéristiques de chaque ligne. Pour cela, il est nécessaire de connaître la structure d une ligne : quelles sont les caractéristiques d une ligne, comment ces caractéristiques sont-elles séparées La structure d une ligne de cet exemple est précisée au paragraphe Les différentes caractéristiques d une ligne s obtiennent grâce à la fonction split. Le constructeur list est utilisé pour affecter en rafale une liste de variables, chacune d entre elles correspondant à un élément du tableau renvoyé par split <?php $NbCarMaxLigne = 1000 ; $FichPers = fopen("fpers1.txt","r") ; if (! $FichPers) { echo "Impossible d ouvrir fpers1.txt\n" ; exit ; $Num = 0 ; while (! feof($fichpers)) { $Ligne = fgets($fichpers, $NbCarMaxLigne) ; list($nom, $Taille, $Age) = split(" ", $Ligne) ; $Num = $Num + 1 ; echo "Ligne numéro $Num - Nom : $Nom Taille : $Taille Age : $Age" ; 25

27 $Res = fclose($fichpers) ; if (! $Res) { echo "Impossible de fermer fpers1.txt\n" ;?> affiche : Ligne numéro 1 - Nom : Pierre Taille : 1.70 Age : 17 Ligne numéro 2 - Nom : Noémie Taille : 1.61 Age : 25 Ligne numéro 3 - Nom : Julie Taille : 1.66 Age : 18 Ligne numéro 4 - Nom : Barthélemy Taille : 1.79 Age : 21 Remarquez que le passage à la ligne ne s effectue pas par le biais du echo du programme, mais à cause de la caractéristique $Age qui contient un \n. Moyenne des caractéristiques lues dans un fichier Calcul et affichage de l âge moyen et de la taille moyenne des personnes du fichier. <?php $NbCarMaxLigne = 1000 ; $FichPers = fopen("fpers1.txt","r") ; if (! $FichPers) { echo "Impossible d ouvrir fpers1.txt\n" ; exit ; $NbPers = 0 ; $SomTaille = 0 ; $SomAge = 0 ; while (! feof($fichpers)) { $Ligne = fgets($fichpers, $NbCarMaxLigne) ; $Ligne = rtrim($ligne) ; list($nom, $Taille, $Age) = split(" ", $Ligne) ; $NbPers = $NbPers + 1 ; $SomTaille = $SomTaille +$Taille ; $SomAge = $SomAge + $Age ; $Res = fclose($fichpers) ; if (! $Res) { echo "Impossible de fermer fpers1.txt\n" ; $AgeMoy = $SomAge / $NbPers ; $AgeMoyAnnees = intval($agemoy) ; $NbMois = round(($agemoy - $AgeMoyAnnees) * 12) ; echo "Taille moyenne : ", number_format($somtaille/$nbpers, 2), " age moyen $AgeMoyAnnees et $NbMois mois\n" ;?> 26

28 affiche, toujours pour notre fichier usuel : Taille moyenne : 1.69 Age moyen : 20 ans et 3 mois Remarquez qu à chaque itération $Age contient la valeur numérique de l âge, suivi du caractère \n. La somme des âges est cependant correctement calculée car la chaîne age\n est convertie dans le contexte arithmétique de $SomAge += $Age ; en valeur numérique de age Création et écriture d un fichier Lecture d un fichier de personnes et création d un fichier contenant les noms et les tailles des personnes supérieures à une certaine taille. <?php require("fonctions1.inc") ; $NbCarMaxLigne = 1000 ; $FichPers = fopen("fpers1.txt","r") ; if (! $FichPers) { echo "Impossible d ouvrir fpers1.txt\n" ; exit ; $FichPersOut = fopen("fpers2.txt","w") ; if (! $FichPersOut) { echo "Impossible d ouvrir fpers2.txt\n" ; exit ; echo "Taille? : " ; $SeuilTaille = lire() ; while (! feof($fichpers)) { $Ligne = fgets($fichpers, $NbCarMaxLigne) ; list($nom, $Taille, $Age) = split(" ", $Ligne) ; if ($Taille >= $SeuilTaille) { fwrite($fichpersout, "$Nom $Taille\n") ; $Res = fclose($fichpers) ; if (! $Res) { echo "Impossible de fermer fpers1.txt\n" ; $Res = fclose($fichpersout) ; if (! $Res) { echo "Impossible de fermer fpers2.txt\n" ;?> 27

29 Chapitre 4 TP 2 - Calcul de moyenne de notes 4.1 Exercice 1 : moyenne de notes par personne On considère des fichiers structurés comme le fichier fnotes1.txt (_ est le caractère souligné) : sport_math_français_histoire_anglais paul:12_7_8_3_4 marie:7_2_5_19_11 albert:0_0_0_0_0 jean:15_9_10_7_20 julie:7_18_20_0_20 clara:13_7_15_10_9 La première ligne du fichier contient une liste de matières, chaque matière est séparée par le caractère _. Chaque ligne contient le nom d une personne, puis le caractère : puis une série de notes, les notes étant séparées par l_. 1. Écrivez une procédure qui reçoit en paramètre d entrée une chaîne de caractères contenant des nombres séparés par _ et qui retourne la moyenne de ces nombres. Écrivez le script php minimal qui teste cette fonction (indication : le test peut être effectué en utilisant une chaîne comme par exemple 9_11_8_14 ). 2. Écrivez un script php affichant le nom de chaque personne contenue dans un fichier structuré comme fnotes1.txt La première ligne du fichier est donc à ignorer (i.e. à sauter). 3. Écrivez un script php affichant pour chaque personne sa moyenne. Pour fnotes1.txt, le résultat est : paul : 6.80 marie : 8.80 albert : 0.00 jean : julie : clara :

30 4. Écrivez une procédure qui affiche les éléments (clé et valeur) d un tableau dont les clés sont des chaînes de caractères. Écrivez le script php minimal qui teste cette fonction. En utilisant la fonction asort(tableau), les éléments de Tableau sont triés suivant l ordre de leurs valeurs. 5. Modifiez le script php écrit à la question 3 pour que celui-ci range la moyenne de chaque personne dans un tableau dont les clés sont les noms des personnes. 6. Modifiez le script php écrit à la question précédente pour que la première ligne du fichier (i.e. les matières) soit traitée (c est-à-dire, la liste des matières est affichée avant les noms et les moyennes). Plusieurs techniques sont possibles pour traiter la première ligne. Sur fnotes1.txt, ce script produit : Les matières sont : sport math français histoire anglais Cle : albert - valeur : 0.00 Cle : paul - valeur : 6.80 Cle : marie - valeur : 8.80 Cle : clara - valeur : Cle : jean - valeur : Cle : julie - valeur : Remarques : On rappelle que pour écrire l ensemble d un programme deux démarches sont possibles : (a) démarche ascendante : soit commencer par écrire et tester les fonctions les plus élémentaires. Ensuite, remonter jusqu au programme principal. (b) démarche descendante : soit commencer par écrire le programme principal avec une version simplifiée des fonctions nécessaires et tester l ensemble. Ensuite, descendre jusqu à l écriture complète des fonctions élémentaires. En fait, ces deux démarches sont concomitantes et complémentaires et, dans la pratique, on passe souvent de l une à l autre. Dans les questions précédentes, vous pouvez distinguer celles relevant d une démarche ascendante et celle d une démarche descendante. 29

31 Chapitre 5 Les tableaux 5.1 Les tableaux simples Les tableaux permettent un premier niveau de structuration des données en PHP. Il s agit de collectionner des éléments qui ont un rapport entre eux, en utilisant un nom de variable générique. Par exemple, dans le fichier ci-dessous, on décide de stocker les noms des mois de l année dans un tableau $annee. Ainsi $annee[0] sera janvier, $annee[1] sera février, etc. 5 <?php // mois.php // manipulation d un tableau de mois // création d un tableau 10 $annee = array( "janvier", "fevrier", "mars", "avril"); // affichage formaté print_r($annee); /*Array 15 ( [0] => janvier [1] => fevrier [2] => mars [3] => avril 20 )*/ // affichage avec un compteur for($i = 0; $i < sizeof($annee); $i ++) echo "le mois ". ($i + 1). " de l annee est $annee[$i].\n"; 25 /*le mois 1 de l annee est janvier. le mois 2 de l annee est fevrier. le mois 3 de l annee est mars. le mois 4 de l annee est avril. */ 30 30

32 // affichage avec foreach foreach($annee as $mois) // pas d indice echo "$mois\n"; /*janvier 35 fevrier mars avril */ 40 // ajout d un mois supplémentaire à la fin array_push($annee, "mai"); $annee[] = "juin"; $annee[sizeof($annee)] = "juillet"; print_r($annee); 45 /*Array ( [0] => janvier [1] => fevrier [2] => mars 50 [3] => avril [4] => mai [5] => juin [6] => juillet )*/ 55 // retrait de la fin echo "dernière valeur : ". array_pop($annee). "\n"; /*dernière valeur : juillet*/ 60 print_r($annee); /*Array ( [0] => janvier [1] => fevrier 65 [2] => mars [3] => avril [4] => mai [5] => juin )*/ 70 // ajout d un mois supplémentaire au début array_unshift($annee, "decembre"); print_r($annee); /*Array 75 ( [0] => decembre [1] => janvier [2] => fevrier [3] => mars 80 [4] => avril 31

33 )*/ [5] => mai [6] => juin 85 // retrait du début echo "première valeur : ". array_shift($annee). "\n"; // première valeur : decembre print_r($annee); 90 /*Array ( [0] => janvier [1] => fevrier [2] => mars 95 [3] => avril [4] => mai [5] => juin )*/ 100?> 5.2 Les chaînes de caractères Les chaînes de caractère peuvent être considérées comme des tableaux de caractères. Dans l exemple suivant, $chaine[$i] est le caractère de rang $i dans la chaîne. 5 <?php $chaine = "Bonjour à tous!"; for($i = 0; $i < strlen($chaine); $i ++) 10 echo "caractère $i : $chaine[$i]\n"; /* caractère 0 : B caractère 1 : o 15 caractère 2 : n caractère 3 : j caractère 4 : o caractère 5 : u caractère 6 : r 20 caractère 7 : caractère 8 : à caractère 9 : caractère 10 : t caractère 11 : o 25 caractère 12 : u 32

34 caractère 13 : s caractère 14 : caractère 15 :! */ 30?> On peut créer un tableau en découpant une chaîne de caractère suivant un délimiteur grâce à l instruction split : 5 <?php $mots = split(" ","Bonjour à tous!"); print_r($mots); 10 /* Array ( [0] => Bonjour [1] => à 15 [2] => tous [3] =>! ) */?> 5.3 Les tableaux associatifs Jusqu ici, nous avons vu des tableaux où les valeurs correspondent à des indices entiers, appelés également des clés. Les tableaux associatifs permettent d associer une clé de type chaîne de caractère à une valeur. Les usages sont multiples : associer sa traduction en Anglais à un mot français, liste de caractéristiques d un ensemble de personnes, indiquer pour chaque immatriculation le nom du propriétaire,... Dans l exemple ci-dessous, on associe à un nom d artiste son score de vente. 5 <?php // définition du tableau de classement, qui associe un artiste à son score de $classement = array("georges" => 1000, "jacques" => 500, 10 "lucienne" => 750, "edith" => 800); 15 // affichage du tableau print_r($classement); /* Résultat : Array ( 33

35 20 [georges] => 1000 [jacques] => 500 [lucienne] => 750 [edith] => 800 ) 25 */?> 5 <?php // exo2.php // parcours de tableau 10 require("definition.inc"); // affichage du tableau foreach($classement as $artiste => $score) echo "l artiste $artiste a un score de $score\n"; 15 echo "\n"; // affichage avec un while reset($classement); while(list($artiste, $score) = each($classement)) 20 echo "l artiste $artiste a un score de $score\n"; echo "\n"; // affichage avec un itérateur 25 if(sizeof($classement)){ end($classement); $fin = key($classement); reset($classement); while(true){ echo "l artiste ". key($classement); 30 echo " a un score de ". current($classement). "\n"; if(key($classement) == $fin) break; next($classement); 35 exit(0); /* Résultat : 40 l artiste georges a un score de 1000 l artiste jacques a un score de 500 l artiste lucienne a un score de 750 l artiste edith a un score de 800 */ 34

36 45?> 5.4 Fonctions pour les tableaux Nom array_pop($variable) ; array_push($variable, $val) ; array_unshift($variable, $val) ; arsort($tableau) asort($variable) valeur = current($variable) $tableau = each($variable) end($variable) ; true false = in_array($valeur, $tableau) clé false = array_search($valeur, $tableau) clé = key($variable) nombre = krsort($variable) nombre = ksort($tableau) list($variable,..., $variablen) valeur false = next($variable) valeur false = prev($variable) valeur = reset($variable) nombre = sizeof($variable) Signification supprime le dernier élément d un tableau tout en le retournant. ajoute une valeur à la fin un tableau. ajoute une valeur au début d un tableau. trie un tableau dans un ordre inverse en conservant le couple clé/valeur. trie les valeurs d un tableau en conservant le couple clé/valeur. retourne l élément courant désigné par le pointeur d un tableau. retourne chacune des paires clé/valeur dans un tableau à quatre éléments (0 => clé, 1 => valeur, key => clé, value => valeur ) et avance le pointeur de tableau. place le pointeur sur le dernier élément du tableau. recherche la valeur spécifiée dans un tableau. retourne la clé associée en cas de réussite de la recherche de la valeur spécifiée. retourne la clé en cours dans le tableau. trie les clés d un tableau dans l ordre inverse en conservant les paires clé/valeur. trie les clés d un tableau en conservant les paires clé/valeur. affecte une série de variables en une seule opération. avance le pointeur au prochain élément et retourne la valeur correspondante. déplace le pointeur sur l élément précédent et retourne la valeur. déplace le pointeur sur le premier élément d un tableau et retourne sa valeur. retourne le nombre d éléments d un tableau. 35

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

1 Lecture de fichiers

1 Lecture de fichiers Programmation 1 Cours n 6 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot 1 Lecture de fichiers Un fichier est une suite de caractères mémorisés sur le disque dur de la machine dans un endroit

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2 Initiation Matlab 2 1 Chaînes de caractères (string) Une chaîne de caractères (string en anglais) est une suite ordonnée de caractères (du texte, par exemple). Sous matlab, les chaînes de caractères sont

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

Installation de Windows 2003 Serveur

Installation de Windows 2003 Serveur Installation de Windows 2003 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Module http MMS AllMySMS.com Manuel d intégration

Module http MMS AllMySMS.com Manuel d intégration Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Algorithmique et structures de données I

Algorithmique et structures de données I Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

MANUEL DE L UTILISATEUR

MANUEL DE L UTILISATEUR MANUEL DE L UTILISATEUR COMPAS DYNAMIQUE Page 1 / 81 Page 2 / 81 SOMMAIRE PREAMBULE... 7 CHAPITRE 1 :... 9 PRESENTATION DU COMPAS DYNAMIQUE... 9 1 INTRODUCTION... 11 1.1 QU EST-CE QUE LE COMPAS DYNAMIQUE?...

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Les fichiers. Chapitre 4

Les fichiers. Chapitre 4 Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

A.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Source : http://amcubat.be/docpmb/import-de-lecteurs

A.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Source : http://amcubat.be/docpmb/import-de-lecteurs A.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Diverses méthodes d import de lecteurs Les données (noms, prénoms, adresses. des lecteurs) proviennent en général du secrétariat, et se trouvent

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Dans l'article précédent, vous avez appris

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte? Avant-propos... V CHAPITRE 1 Scripting Windows, pour quoi faire?... 1 Dans quel contexte?.................................................. 1 La mauvaise réputation............................................

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Stocker des données sur Amazon S3

Stocker des données sur Amazon S3 4 Stocker des données sur Amazon S3 Dans ce chapitre, nous plongeons la tête la première dans Amazon S3, Simple Storage Service (service simple de stockage). Après un aperçu rapide des concepts de S3 les

Plus en détail

TUTORIEL Qualit Eval. Introduction :

TUTORIEL Qualit Eval. Introduction : TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement

Plus en détail

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra

Plus en détail

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05 EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA

Plus en détail

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières : INITIATION A L INFORMATIQUE MODULE : Initiation à l'environnement Windows XP Table des matières : INTRODUCTION Les outils de l Interface Graphique : CONFIGURER VOTRE POSTE DE TRAVAIL Paramétrer la barre

Plus en détail

TP 1 Prise en main de l environnement Unix

TP 1 Prise en main de l environnement Unix Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session

Plus en détail

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 modalisa Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 8 Fonctionnalités de mise en ligne de questionnaires Vous trouverez dans cet opuscule les informations nécessaires

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

DM 1 : Montre Autoquartz ETA

DM 1 : Montre Autoquartz ETA Lycée Masséna DM 1 : Montre Autoquartz ETA 1 Présentation de la montre L essor de l électronique nomade s accompagne d un besoin accru de sources d énergies miniaturisées. Les contraintes imposées à ces

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40 MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40 Description des actes en série sur le Baladeur Santé TABLE DES MATIERES 1. Généralités 5 1.1. Fonctionnement général du

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29 FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29 FOIRE AUX QUESTIONS Confidentiel Titre du document : Monetico

Plus en détail