Algorithmique & programmation



Documents pareils
Génie Logiciel avec Ada. 4 février 2013

Arbres binaires de recherche

QUESTIONNAIRE DE CREATION AGENCE IMMOBILIERE Vous souhaitez créer une SAS. DENOMINATION SOCIALE (Nom de votre société) : SIGNE (Si vous en avez un) :

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

État civil NOM. PRÉNOMS.

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Application 1- VBA : Test de comportements d'investissements

Chapitre 10. Les interfaces Comparable et Comparator 1

Premiers Pas en Programmation Objet : les Classes et les Objets

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association

Introduction à MATLAB R

Recherche dans un tableau

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Algorithmique et Programmation, IMA

OCL - Object Constraint Language

Utilitaires méconnus de StrataFrame

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Algorithmique et programmation : les bases (VBA) Corrigé

.NET - Classe de Log

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

T. BLOTIN Lycée Paul-Eluard SAINT-DENIS

Examen Médian - 1 heure 30

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Primes à l acquisition

DOSSIER DE MARIAGE * * Documents à signer et à remettre

Programmation Objet - Cours II

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

Famille multirésidence : recensement et sources alternatives

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

Présentation du langage et premières fonctions

FICHE DE RENSEIGNEMENTS

Cours Bases de données 2ème année IUT

A QUOI SERVENT LES BASES DE DONNÉES?

Programmer en JAVA. par Tama

Algorithmes et programmation en Pascal. Cours

Nom de l agent : Fonctions : FORMULAIRE DE DEMANDE D AIDE SOCIALE

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme

Inventaire personnel des biens et documents importants. Pour simplifier la tâche des proches en cas d inaptitude ou de décès

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

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)

DOSSIER DE DEMANDE D ADMISSION

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Cours Informatique Master STEP

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

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

Utilisation d objets : String et ArrayList

Objets et Programmation. origine des langages orientés-objet

ENTENTE EN MATIERE DE SÉCURITÉ SOCIALE ENTRE LE QUEBEC ET LE ROYAUME DU MAROC. Demande de prestations du Régime de rentes du Québec.

Modèle conceptuel : diagramme entité-association

FICHE DE RENSEIGNEMENTS

Corrigé des TD 1 à 5

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Questionnaire destiné aux parents Médiation

Les structures. Chapitre 3

Bulletin individuel d adhésion

ANNEE SCOLAIRE Dossier de demande de Dérogation au périmètre scolaire

PROGRAMME DE BOURSES FONDATION J. ARMAND BOMBARDIER

Perl Orienté Objet BioPerl There is more than one way to do it

as Architecture des Systèmes d Information

UML et les Bases de Données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Programmation C++ (débutant)/instructions for, while et do...while

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Chapitre 2 Devine mon nombre!

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Paginer les données côté serveur, mettre en cache côté client

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Demande pour mineurs : Allocation pour impotent

Régime matrimonial : Votre conjoint participe-t il (elle) à votre projet : Oui Non

Compte-rendu de projet de Système de gestion de base de données

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

INFORMATIONS GÉNÉRALES RÉSUMÉ MÉTHODOLOGIQUE

REVENU MINIMUM ETUDIANT- année 2015/2016. I - DEMANDEUR (l Etudiant)

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

Rapport de Mini-Projet en ArcGIS Engine

Compléments de documentation Scilab : affichage de texte et formatage de nombres

CURRICULUM VITAE. Emploi sollicité: A. Nom: Prénoms : Domicile: rue N à. Né(e) à : Nationalité : N carte d identité :

LES BOURSES DE SOLIDARITÉ DES ÉTUDIANTS DE L AÉCSP. Date limite : 15 avril 2013 avant 16h00 Local : C-419

DOSSIER D INSCRIPTION

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Cours de Programmation 2

DOSSIER DE CANDIDATURE

Bases de Données Relationnelles. Le Modèle Relationnel

RECRUTEMENT EXTERNE SANS CONCOURS. Plombier Génie Climatique 2 ème Classe BAP G

de compétences Un atout pour apprendre et faciliter le recensement et la valorisation de mes expériences Mon portefeuille

4. Groupement d objets

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

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

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

Représentation d un entier en base b

Transcription:

Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer des types plus complexes? "! Date!! jour, mois, année "! Personne!! nom, prénom, date de naissance, situation maritale, "! Informations sur un étudiant!! nom, prénom, âge, classement!! Avec des types structurés "! Encapsulation de différentes informations 2

Définitions!! Un article (une structure) est un objet "! composé d'autres objets (de types éventuellement différents) appelés!! champs!! composants!! attributs!! Un article (une structure) est décrit par son type "! type d'article "! type de structure 3 Modèle de déclaration en ada type <nom du type> is record <liste de composants> Dans un algorithme type <nom du type> = structure <liste de composants> fin;!! En ada on convient de faire précéder tous les noms de type d'article par TR_ 4

Exemples (ada) type T_Mois is (Jan,Fev,Mar,Avr,Mai,Jui,Jul,Aou,Sep,Oct,Nov,Dec); subtype T_Jour is Integer range 1..31; subtype T_Année is Integer range 1900..2099; type TR_Date is record Jour : T_Jour; Mois : T_Mois; Annee : T_Année ; type TR_Point is record x,y : integer; 5 Exemples (ada) subtype TV_Nom is String(1..9); type T_Genre is (Masculin,Feminin); type T_SitMaritale is (Célibataire, Marié, Divorcé, Veuf); type TR_Personne is record Nom,Prénom : T_Nom; DateNaissance : T_Date; Genre : T_Genre; Statut : T_SitMaritale; 6

Exemples (algorithme) type date = structure jour, mois, an : entier ; fin ; type personne = structure nom : chaîne20 ; adresse : chaîne40 ; naissance : date ; marié : booléen ; enfants : entier ; fin ; 7 Variable de type article, structure!! Lorsqu'un type article a été déclaré, il est possible de déclarer des variables de ce type!! Exemples ada : "! Aujourdhui,Demain : TR_Date; "! Moi : TR_Personne;!! Exemples algo : "! aujourdhui : date; "! moi : personne; 8

Accès aux attributs, composants!! En ada et dans un algorithme on utilise la même notation "! Si pers est une variable de type personne "! Accès aux attributs de pers avec l opérateur.!!ada "! lejour:=demain.jour; --de type T_jour "! lemoi:=demain.mois; --de type T_mois "! lannée:=demain.annee; --de type T_annee!!Algo "! nom_pers := pers.nom ; {de type chaîne20} "! nb_enfants := pers.enfants ; {de type entier} 9 Agrégats (ada)!! ada fournit une notation pratique, appelée agrégat, pour initialiser les valeurs des structures de données de base (tableaux ou articles)!! Un agrégat est capable de fournir la description complète de la valeur d'une variable article ou tableau!! Cette initialisation consiste simplement à énumérer les valeurs de chaque composant 10

Agrégat avec une variable tableau type T_Mois is (Jan,Fev,Mar,Avr,Mai,Jui,Jul,Aou,Sep,Oct,Nov,Dec); type TV_DuréeMois is array(t_mois) of Positive range 28..31; DuréeMois : TV_DuréeMois;... --les deux instructions suivantes produisent le même effet DuréeMois := (31,28,31,30,31,30,31,31,30,31,30,31); DuréeMois := (fev=>28, avr=>30, jui=>30, sep=>30, nov=>30, others => 31); 11 Agrégat avec une variable article!! L'utilisation d'un agrégat avec une variable article est similaire à celle des tableaux!! Les deux systèmes de notation par position et par nom sont disponibles!! En notation nommée on utilise les noms des champs (au lieu des index) 12

Exemples Aujourdhui := (25,oct,1995); Demain := (Mois=>oct, Annnée=>1995, Jour=>25); Lui : TR_Personne := ("dupont ", "jacques ", (10,oct,1970), masculin, marié); 13 Opérations sur les articles!! La sélection d'un composant est réalisée par l'expression suivante : nom_de_la_variable.nom_du_champ_désiré!! Aujourdhui.Mois désigne donc le champ Mois de l'article Aujourdhui!! Un nom de champ n'est jamais utilisé isolément "! (sauf dans un agrégat avec notation nommée)...!!... pour des raisons évidentes d'ambiguïté "! les noms de champ sont partagés par toutes les variables d'un même type article. 14

Exemple!! Calcul de la date de demain en utilisant des agrégats et des sélections subtype T_Jour is Positive range 1..31; type T_Mois is (Jan,Fev,Mar,Avr,Mai,Jui,Jul,Aou,Sep,Oct,Nov,Dec); type TR_Date is record Jour : T_Jour; Mois : T_Mois; Année: Integer range 1900..2099; type TV_DuréeMois is array(tmois) of Positive range 28..31; DUREEMOIS : constant T_DuréeMois := (31,28,31,30,31,30,31,31,30,31,30,31); 15 function Demain(Now : in TR_Date) returns TR_Date is begin --pas le dernier jour du mois if Now.Jour<DUREEMOIS(Now.Mois) then --un jour de plus return (Now.Jour+1, Now.Mois, Now.Année); --dernier jour d'un mois qui n'est pas le dernier mois elsif Now.Mois<T_Mois'Last then --premier du mois suivant return (1, T_Mois'Succ(Now.Mois),Now.Année); --dernier jour du dernier mois else --premier du premier mois de l'année suivante return (1, T_Mois'First, Now.Année+1); end if; end Demain; 16

Comparaison de deux articles!! Pour des raisons d'ambiguïté "! il y a de nombreuses façons d'ordonner des articles en fonction des différents attributs!! on ne peut donc tester que l'égalité ou la non égalité de deux articles if Anniversaire=Aujourdhui then Ecrire("Bon anniversaire"); end if; 17 Affectation à un article!! On peut affecter globalement deux articles en ada et dans un algorithme ainsi : DateNaissance := Aujourdhui;!! revient à écrire DateNaissance.Année := Aujourdhui.Année; DateNaissance.Mois := Aujourdhui.Mois; DateNaissance.Jour := Aujourdhui.Jour; 18