18/05/05SE Info2 - S. L'haire UNIGE1 Lecture cha î ne caract è res Un document HTML est compos é de balises Une balise est compos é e de caract è res entre.

Slides:



Advertisements
Présentations similaires
Prmt For imbriqués.
Advertisements

Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Le mécanisme des exceptions
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
OTB Analog module: Input configuration with TSX PREMIUM (TSXCPP110)
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
1 Le mécanisme des exceptions Qu'est-ce qu'une exception? Comment définir et signaler des exceptions? Comment récupérer des exceptions?
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Faculté I&C, Claude Petitpierre, André Maurer 1 Systèmes multi-processus C. Petitpierre
Archivage et documentation des enquêtes Exemple: Enquête Nationale sur les Activit é s É conomiques ENAE.
La programmation objet Illustration de la POO en Pascal
TP : Fichiers et Tableaux Séance N°2 Avril Application de Gestion de stock Partie 1 : les fichiers 1 Création dun fichier de 20 articles.
TP Fichiers et Tableaux Avril Un fichier Permet le stockage de données sur des supports de mémoire externes (donc les données ne seront pas perdues.
TP Enregistrements Avril Un enregistrement permet de regrouper des éléments ayant des types différents au sein dune même structure de données (chose.
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
Algorithme et programmation
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
Staf2x - Tecfa - UniGE 1 Traitement XML avec DOM PHP 5 – XML – DOM Dajana Kapusova – TECFA - UNIGE.
27/04/05SE Info2 - S. L'haire UNIGE1 Pointeurs sur tableaux ouverts POINTER TO ARRAY OF CHAR Structure de tableaux à taille variable On a des types tableaux.
« Formation et NTIC : Un défi pour le 3 ème millénaire » Institut Régional d’Administration de Bastia Quelques enseignements de l’expérience Daniel.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
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.
Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)

PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Animateur : Med HAIJOUBI
LANGAGE PASCAL Introduction rapide….
23/03/05SE Info2 - S. L'haire UNIGE1 TP 7 PROCEDURE Inserer(VAR a, crt : AgendaPtr; j, h : INTEGER; IN s : Chaine); VAR nouveau, temp : AgendaPtr; BEGIN.
27/02/2006L3 MIAGE - GLO ADA1 Les Paquetages Permettent d’encapsuler un groupe d’entités logiquement reliées. Comme toute unité de programme, le paquetage.
Implémentation Ada Gestion de la mémoire. Put 20 L'affectation de Comptes (σ-modèle) La sémantique intuitive des comptes ne laisse guère de place à l'affectation.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Algorithmes de tri et de recherche
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Cours LCS N°4 Présenté par Mr: LALLALI
11/05/05SE Info2 - S. L'haire UNIGE1 TP 9 structure EmployeEltPtr* = POINTER TO ABSTRACT RECORD (LhaireInfo2Lists.DblListEltPtr) nom*, prenom* : Chaine;
20/04/05SE Info2 - S. L'haire UNIGE1 TP 8: Solution 1 AgendaPtr = POINTER TO RECORD jour, heure: INTEGER; sujet: Chaine; precedent, suivant: AgendaPtr.
Algorithmique Algorithmique  Pascal
AJOUTER OU ENLEVER MENTALEMENT 1 OU 2 Ajouter 1 Retirer 1 Ajouter 2 Entrainement : + 1 et - 1 Entrainement : + 1 et - 1 Retirer 2 Entrainement : + 2 et.
Introduction à la Programmation Orientée Objet H.GATI.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Cours de Langage C Les structures
Cours 08 SYSTÈME DE FICHIERS
UE2 - M22 Licence acoustique
Programmation en C++ Standard Library
Support et Maintenance SIAN : MDEL partenaires
Les Instructions Itératives (Les Boucles)
Version (S60) Lien entre le Document unique (DAU) et la banque de données des autorisations MASP pour la procédure de domiciliation et l’allégement.
Coloration de graphe, backtracking, branch and bound
LES TABLEAUX EN JAVA.
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Les Tableaux Mme DJEBOURI. D.
NOTES DE COURS Développement VB2010 Henri TSOUNGUI ISTV - UVHC 2016
Algorithmique demander jeu du pendu.
Ajouter le code dans une page html
Initiation aux bases de données et à la programmation événementielle
L’Instruction de Test Alternatif
1ers pas des utilisateurs migrés
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
PROGRAMMATION ET ENSEIGNEMENT
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Filière Génie Civil – 2018 Langage C Tableaux – Exercices de révision
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
PROGRAMMATION ET ENSEIGNEMENT
Le langage C# : Partie 1.
Introduction à L’Informatique
Python Nicolas THIBAULT
Type Tableau Partie 1 : Vecteurs
Transcription de la présentation:

18/05/05SE Info2 - S. L'haire UNIGE1 Lecture cha î ne caract è res Un document HTML est compos é de balises Une balise est compos é e de caract è res entre <> (ex: A chaque balise correspond une balise fermante (ex: Lire et valider un document HTML bien form é Si même nombre de balises ouvrantes et fermantes même niveau

18/05/05SE Info2 - S. L'haire UNIGE2 Un document à valider Je suis un document

18/05/05SE Info2 - S. L'haire UNIGE3 Technique des automates Automates à é tats finis: un algorithme simple de traitement de chaines Processus de traitement avec Un vocabulaire de symboles finis (p.ex. des caract è res ou groupes de caract è res) Un ensemble d' é tats (e0, e1 … en) Un ensemble de transitions d'un é tat à un autre é tant donn é la lecture d'un symbole transition(symbole, é tat) = nouvel é tat A chaque transition, on peut associer des actions Un é tat initial (par convention e0) Un ou plusieurs é tats finaux

18/05/05SE Info2 - S. L'haire UNIGE4 Automate simplifi é pour le HTML Vocabulaire: < > / espace autres (any car) Etats e0, e1, e2, e3, e4 Etat initial e0 Etat final e4 Je suis un document

18/05/05SE Info2 - S. L'haire UNIGE5 Transitions pour le HTML e0 e4 Je suis un document e1 e2 < any car espace e3 / > any car + espace <

18/05/05SE Info2 - S. L'haire UNIGE6 Actions But: placer la balise lue dans une cha î ne et changer de niveaux Actions li é es à l' é tat courant et é tat pr é c é dent Si e3 on ajoute un caract è re à la balise Si on é tait en e1 on ajoute un niveau Si on é tait en e2 on enl è ve un niveau Si e4 on ferme cha î ne balise, on met indice à 0 et on é crit Dans tous les autres cas on ne fait rien

18/05/05SE Info2 - S. L'haire UNIGE7 Objet automate TransitionsTab = POINTER TO ARRAY OF ARRAY OF INTEGER; Automate* = POINTER TO ABSTRACT RECORD tabTrans : TransitionsTab; etatPrecedent, etatCourant, nbEtats, nbSymboles, numSymbole : INTEGER; finalStates: SET; END; Pour plus de comodit é s, les diff é rents symboles re ç oivent un num é ro ( = 3; espace = 4; autres cars = 0) Un nombre é lev é (1000) fait office d' é tat d' é chec

18/05/05SE Info2 - S. L'haire UNIGE8 Objet (suite) Des m é thodes permettent d'acc é der aux propri é t é s priv é es (a: Automate) EtatFinal (): BOOLEAN, NEW; (a: Automate) GetCurrentState (): INTEGER, NEW; (a: Automate) GetEtatCourant (): INTEGER, NEW; (a: Automate) GetNbEtats (): INTEGER, NEW; (a: Automate) GetNbSymboles (): INTEGER, NEW; (a: Automate) GetNumSymbole (): INTEGER, NEW; (a: Automate) GetPrevState (): INTEGER, NEW; (a: Automate) SetNumSymbole (num: INTEGER), NEW; (a: Automate) SetTrans (state, sym, newstate: INTEGER), NEW

18/05/05SE Info2 - S. L'haire UNIGE9 Initialisation Au niveau objet g é n é rique PROCEDURE (a: Automate)Initialiser*(nbEtats, nbSymboles : INTEGER; finis : SET), NEW; VAR i, j : INTEGER; BEGIN ASSERT(finis # {}); ASSERT(nbEtats > 1); ASSERT(nbSymboles > 1); a.finalStates := finis; a.nbEtats := nbEtats; a.nbSymboles := nbSymboles; a.etatCourant := 0; a.etatPrecedent := 0; NEW(a.tabTrans, nbEtats, nbSymboles); FOR i := 0 TO nbEtats -1 DO FOR j := 0 TO nbSymboles -1 DO a.tabTrans[i,j] := errorTrans; END; END Initialiser;

18/05/05SE Info2 - S. L'haire UNIGE10 Effectuer une transition Niveau g é n é rique PROCEDURE (a: Automate) EffectuerTransition*(symbole : CHAR): BOOLEAN, NEW; VAR numSymbole : INTEGER; BEGIN a.SetNumSymbole(a.LireSymbole(symbole)); a.etatPrecedent := a.etatCourant; a.etatCourant := a.tabTrans[a.etatCourant, a.numSymbole]; IF (a.etatCourant # errorTrans) THEN RETURN TRUE ELSE RETURN FALSE END; END EffectuerTransition;

18/05/05SE Info2 - S. L'haire UNIGE11 Au niveau sp é cifique AutomateHTML* = POINTER TO RECORD (LhaireInfo2Automates.Automate) niveau : INTEGER; indBalise : INTEGER; balise* : ARRAY 100 OF CHAR; END;

18/05/05SE Info2 - S. L'haire UNIGE12 Lecture d'un symbole Niveau sp é cifique PROCEDURE (a: AutomateHTML)LireSymbole*(s: CHAR):INTEGER; BEGIN CASE s OF '<' : RETURN 1; | '/' : RETURN 2; | '>' : RETURN 3; | ' ' : RETURN 4; ELSE RETURN 0 END; END LireSymbole;

18/05/05SE Info2 - S. L'haire UNIGE13 Initialiser les transitions Au niveau sp é cifique Le tableau des transitions est initialis é à l' é tat "erreur" à la construction de l'objet (niveau g é n é rique) Il n'y a plus qu' à initialiser les é tats corrects au niveau sp é cifique PROCEDURE (a: AutomateHTML)InitialiserTrans*; BEGIN a.SetTrans(0, 0, 0); a.SetTrans(0, 1,1); a.SetTrans(0,4,0); …

18/05/05SE Info2 - S. L'haire UNIGE14 Effectuer une action Niveau sp é cifique PROCEDURE (a: AutomateHTML) EffectuerAction* (symbole: CHAR): BOOLEAN; BEGIN CASE a.GetCurrentState() OF 0 : RETURN TRUE; | 1 : RETURN TRUE; | 2 :RETURN TRUE; | 3 : a.balise[a.indBalise] := symbole; INC(a.indBalise); IF a.GetPrevState() = 1 THENINC(a.niveau); ELSIF a.GetPrevState() = 2 THEN DEC(a.niveau); END; RETURN TRUE; | 4: a.balise[a.indBalise] := 0X; a.indBalise := 0; …

18/05/05SE Info2 - S. L'haire UNIGE15 Lecture de cha î ne PROCEDURE (a: AutomateHTML) LireChaine(IN chaine : ARRAY OF CHAR), NEW; VAR i : INTEGER; BEGIN i:= 0; WHILE (chaine[i] # 0X) & (a.EffectuerTransition(chaine[i])) DO IF a.EffectuerAction(chaine[i]) THEN é crire log … INC(i); END END; IF (a.EtatFinal()) & (a.niveau =0) THEN StdLog.String("Succ è s lecture"); StdLog.Ln ELSE HALT(33) END; END LireChaine;

18/05/05SE Info2 - S. L'haire UNIGE16 Pour le TP 10 Plus simple de construire un é l é ment du graphe par un automate Le vocabulaire des automates est espace d é limiteurs: ! " ( ),.- : ; [ ] apostrophe caract è res alphanum é riques sinon erreur Vous pouvez r é utiliser le code de l'exemple