11/05/05SE Info2 - S. L'haire UNIGE1 TP 9 structure EmployeEltPtr* = POINTER TO ABSTRACT RECORD (LhaireInfo2Lists.DblListEltPtr) nom*, prenom* : Chaine;

Slides:



Advertisements
Présentations similaires
PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Advertisements

Algorithmes et structures de données avancées Cours 4
Portée des variables VBA & Excel
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
TP 8 : parcours de liste et cas pratique
L ’événement CHANGE est détecté par Vba dès qu ’un caractère est saisi ( ou tapé) dans l ’objet TextBox. Par contre l ’événement AFTERUPDATE laisse le.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
4.3. Fonctions mathématiques de base en Pascal Syntaxe Fonction
Structures de données linéaires
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
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.
IFT313 Introduction aux langages formels
Module 4 : Parcours dans un graphe
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Ensembles Définition d’un ensemble. Opérations sur les ensembles. Accès, suppression et ajout d’éléments d’un ensemble. Fonctions permettant de manipuler.
IFT313 Introduction aux langages formels
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
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.
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.
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é.
IFT 6800 Atelier en Technologies d’information
Ift 2251 Introduction au Génie Logiciel
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.
Partie II Sémantique.
Instructions de contrôle
Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)

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.
Rappel sur les variables statiques Ce qui a été vu? variables de type simple (entier, réels, caractère, etc.)variables de type simple (entier, réels,
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Informatique de gestion – IO MER L3 – Pierre SOURNAC Informatique de Gestion part III – the macro rises L3 – IO MER
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
Algorithmique et programmation en
Algorithmes de tri et de recherche
Créer des packages.
Méthodes de tri.
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.
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
Algorithmique et programmation en
Variables et environnement utilisateur W. Barhoumi.
Cours LCS N°4 Présenté par Mr: LALLALI
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
Algorithmique et programmation en
Informatique de Gestion part II – the dark macro
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
20/04/05SE Info2 - S. L'haire UNIGE1 TP 8: Solution 1 AgendaPtr = POINTER TO RECORD jour, heure: INTEGER; sujet: Chaine; precedent, suivant: AgendaPtr.
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Une aide pour débutant éclairé
Algorithmique Algorithmique  Pascal
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
Variables : notion Une variable permet de stocker/manipuler une donnée dans un programme avec un nom explicite Caractériser par son type (entier, flottant,...)
Introduction à la programmation
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
IFT359 – Programmation fonctionnelle Thème #8 Création de nouvelles formes syntaxiques 1.
Cours de Langage C Les structures
UE2 - M22 Licence acoustique
Les Instructions Itératives (Les Boucles)
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
L’Instruction de Test Alternatif
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
PROGRAMMATION ET ENSEIGNEMENT
Type Tableau Partie 1 : Vecteurs
Transcription de la présentation:

11/05/05SE Info2 - S. L'haire UNIGE1 TP 9 structure EmployeEltPtr* = POINTER TO ABSTRACT RECORD (LhaireInfo2Lists.DblListEltPtr) nom*, prenom* : Chaine; tel*, salaire* : INTEGER; END; AdminPtr* = POINTER TO RECORD (EmployeEltPtr) service* : Chaine;END; DevPtr* = POINTER TO RECORD (EmployeEltPtr) application*, specialite* : Chaine; END; ComPtr* = POINTER TO RECORD (EmployeEltPtr) chiffre*, nbclients* : INTEGER; END;

11/05/05SE Info2 - S. L'haire UNIGE2 PROCEDURE (el : ListEltPtr)Compare*(elt2 : ANYPTR): INTEGER, NEW,ABSTRACT; Proc é dures g é n é riques PROCEDURE (l : DblListPtr)InsererEnOrdre*(el : ANYPTR): BOOLEAN; VAR temp : ListEltPtr; BEGIN WITH el : DblListEltPtr DO IF (l.EstVide()) OR (l.tete.Compare(el) > 0) THEN RETURN l.InsererTete(el) ELSIF l.queue.Compare(el) <=0 THEN RETURN l.InsererQueue(el); ELSE temp := l.tete; WHILE (temp.suivant # NIL) & (temp.suivant.Compare(el) <0) DO temp := temp.suivant; END; el.precedent := temp(DblListEltPtr); el.suivant := temp.suivant; IF temp.suivant # NIL THEN temp.suivant(DblListEltPtr).pr ecedent := el(DblListEltPtr); END; temp.suivant := el; l.crt := el; INC(l.taille); RETURN TRUE; END; RETURN FALSE; END InsererEnOrdre;

11/05/05SE Info2 - S. L'haire UNIGE3 Insertion en ordre PROCEDURE (el : EmployeEltPtr)Compare*(elt2 : ANYPTR): INTEGER; (*Impl é mentation de la m é thode abstraite: RETOURNE 1 si el > elt2 0 si el = elt2 -1 si el < elt2 *) VAR i : INTEGER; BEGIN WITH elt2 : EmployeEltPtr DO i := LhaireInfo2Compare.Compare(el.nom,elt2.nom); IF (i 0) THEN RETURN i ELSE RETURN LhaireInfo2Compare.Compare(el.prenom,elt2.prenom); END; ELSE HALT(99) END; END Compare;

11/05/05SE Info2 - S. L'haire UNIGE4 Initialisation des elts de liste Une proc é dure non export é e initialise les é l é ments communs aux 3 types d'employ é s PROCEDURE (el : EmployeEltPtr)InitEmpl(IN n, p : Chaine; t, s : INTEGER), NEW; BEGIN el.suivant := NIL; el.precedent := NIL; el.nom := n$; el.prenom := p$;el.tel := t; el.salaire := s; END InitEmpl; Une proc é dure export é e initialise les types d'employ é s PROCEDURE (el : DevPtr)Init*(IN n, p : Chaine; t, s : INTEGER; IN a, sp : Chaine),NEW; BEGIN el.InitEmpl(n,p,t,s); el.application := a$; …

11/05/05SE Info2 - S. L'haire UNIGE5 Proc é dure d'insertion PROCEDURE NouveauAdministratif*; VAR a: AdminPtr; BEGIN NEW(a); a.Init(dialog.employ é.nom, dialog.employ é.pr é nom, dialog.coordonn é es.t é l é phone,dialog.coordonn é es.salaire,dialog.ADMINISTRATIF.service); IF liste.InsererEnOrdre(a) THEN …

11/05/05SE Info2 - S. L'haire UNIGE6 Affichage PROCEDURE (el : EmployeEltPtr)EcrireEmplEltLog, NEW; BEGIN StdLog.String("Nom: "); StdLog.String(el.nom); StdLog.String(" Prenom: ") ;StdLog.String(el.prenom); … END EcrireEmplEltLog; PROCEDURE (el : AdminPtr)EcrireEltLog*; BEGIN el.EcrireEmplEltLog; StdLog.String(" ADMINISTRATION Service: ") ; StdLog.String(el.service); StdLog. Ln; END EcrireEltLog;

11/05/05SE Info2 - S. L'haire UNIGE7 Insertion sp é cifique PROCEDURE (l : ListeEmployesPtr)InsererEmploye*(el : EmployeEltPtr): BOOLEAN, NEW; VAR ok : BOOLEAN; BEGIN IF ~l.EstVide() THEN IF ((LhaireInfo2Compare.Compare(el.nom,l.queue(EmployeEltPtr). nom) > 0) OR ((LhaireInfo2Compare.Compare(el.nom, l.queue(EmployeEltPtr).nom) = 0) & (LhaireInfo2Compare.Compare(el.prenom, l.queue(EmployeEltPtr).prenom) >= 0))) THEN RETURN l.InsererQueue(el); …

11/05/05SE Info2 - S. L'haire UNIGE8 Recherche sp é cifique PROCEDURE (l : ListeEmployesPtr)RechEmploye*(IN n, p : Chaine): BOOLEAN, NEW; VAR ok :BOOLEAN; BEGIN IF (~l.EstVide()) & (LEN(n$) >0) THEN IF l.AllerDebut() THEN IF LEN(p$) > 0 THEN ok := FALSE; REPEAT IF ((LhaireInfo2Compare.Compare(n, l.crt(EmployeEltPtr).nom) = 0) & (LhaireInfo2Compare.Compare(p, l.crt(EmployeEltPtr).prenom)= 0)) THEN ok := TRUE; END; UNTIL (ok) OR (~l.AllerSuivant()); … idem si le pr é nom est vide

11/05/05SE Info2 - S. L'haire UNIGE9 Type proc é dure On d é finit un type g é n é rique de proc é dure avec des param è tres d é finis RechProc* = PROCEDURE (search, el : ANYPTR) : BOOLEAN ; Utile pour parcours de structures (liste) ou pour recherche Une proc é dure d é clare un param è tre de type RechProc (comme une variable) et l'utilise dans son algorithme

11/05/05SE Info2 - S. L'haire UNIGE10 Recherche g é n é rique 1) Dans Info2Lists RechProc* = PROCEDURE (search, el : ANYPTR) : BOOLEAN ; PROCEDURE (l : ListPtr)RechercheFirst*(proc : RechProc; key : ANYPTR): BOOLEAN, NEW, EXTENSIBLE; VAR temp : ListEltPtr; ok : BOOLEAN; BEGIN IF (~l.EstVide()) THEN IF l.AllerDebut() THEN temp := l.crt; REPEAT IF proc(key, l.crt) THEN RETURN TRUE END; UNTIL (~l.AllerSuivant()); l.crt :=temp; RETURN FALSE; …

11/05/05SE Info2 - S. L'haire UNIGE11 Recherche g é n é rique (2) PROCEDURE RechercheEmploye*(search, el : ANYPTR):BOOLEAN; (*même en-tête que type RechProc de la page pr é c é dente*) BEGIN ASSERT(el # NIL); ASSERT(search # NIL); WITH search : RechercheKey DO WITH el : EmployeEltPtr DO IF LhaireInfo2Compare.Compare(el.nom, search.nom) # 0 THEN RETURN FALSE; ELSE IF LEN(search.prenom$) >0 THEN IF LhaireInfo2Compare.Compare(el.prenom, search.prenom) # 0 THEN RETURN FALSE; END; … RechercheKey* = POINTER TO RECORD nom*, prenom* : Chaine; END; C'est ç a qui sera ex é cut é à la place de proc(key,l.crt) à la page pr é c é dente

11/05/05SE Info2 - S. L'haire UNIGE12 Recherche 3 PROCEDURE Rechercher*; VAR r : RechercheKey; resultats : LhaireInfo2Lists.DblListPtr; BEGIN NEW(r); r.Init(dialog.Recherche.nom,dialog.Recherche.pr é nom ); (*appel de la recherche g é n é rique avec une proc é dure de rech. Sp é cifique*) IF liste.RechercheFirst(RechercheEmploye, r) THEN liste.AfficherCrt(dialog); dialog.message := "Trouv é !!!";

11/05/05SE Info2 - S. L'haire UNIGE13 TP 10 Une premi è re approche TAL Avant de donner une structure syntaxique, un analyseur doit isoler une phrase dans un texte puis tous les é l é ments d'une phrase y.c. ponctuation La phrase est d é compos é e en graphe dont les arcs sont num é rot é s de 0 à n 0 Aujourd'hui 1, 2 le 3 chat 4 d' 5 Anne 6 a 7 attrap é 8 deux 9 souris

11/05/05SE Info2 - S. L'haire UNIGE14 Sortie du graphe Element: Aujourd'hui pos: 0; start: 0; end: 1 Element:, pos: 11; start: 1; end: 2 Element: le pos: 13; start: 2; end: 3 Element: chat pos: 16; start: 3; end: 4 Pos donne l'indice du 1er caract è re de l' é l é ment dans la cha î ne lue Start et end donnent les sommets du graphe

11/05/05SE Info2 - S. L'haire UNIGE15 D é limiteurs Apostrophe: fait office de d é limiteur en indice 1 ou 2 de la cha î ne (l' d' qu' etc.), sinon fait partie d'un mot (aujourd'hui) Espace: d é limiteur particulier ! " ( ),.- : ; [ ] : autres d é limiteurs Sinon, ce sont des caract è res de l' é l é ment

11/05/05SE Info2 - S. L'haire UNIGE16 TP 10 Utilisez vos listes g é n é riques Utilisez Strings.Extract pour extraire un é l é ment de la cha î ne PROCEDURE Extract (s: ARRAY OF CHAR; pos, len: INTEGER; OUT res: ARRAY OF CHAR) S : chaine originale Pos : indice de d é part de l' é l é ment à copier Len : longueur de la cha î ne à extraire Res: r é sultat de l'extraction

11/05/05SE Info2 - S. L'haire UNIGE17 Pourquoi des arcs Jean recouvre les pommes de terre Pomme de terre 1 ou 3 é l é ments? Plusieurs analyses possibles Pomme de terre potato patata Kartoffel John is covering the potatoes John is covering the apples with earth.