TP n o 7 : Types récursifs et arbres
|
|
|
- Jean-Pascal St-Jean
- il y a 8 ans
- Total affichages :
Transcription
1 TP n o 7 : Types récursifs et arbres Pour sauver un arbre, mangez un castor Henri Prades 1 Types sommes en CAML Nous avons rencontré les types de base en CAML (unit, bool, int, float, char, string) ainsi que des types prédéfinis pour des structures de données ( a list, a ref, a vect). En CAML, on a également la possibilité de définir nos propres types personnalisés. 1.1 Types sommes Imaginons par exemple que nous souhaitions ajouter aux booléens vrai et faux une valeur qui permette de représenter l indécision. On peut alors définir un type : type trileen = Vrai Faux PeutEtre CAML nous répond Type trileen defined. La phrase type nom_du_type =... permet de définir un nouveau type. Le caractère se lit «ou» comme pour le filtrage ou pour les définitions par cas. Les constructeurs Vrai, Faux et PeutEtre sont alors définis et sont les (seules) valeurs possibles du type trileen. Vrai - : trileen = Vrai PeutEtre - : trileen = PeutEtre Faux = PeutEtre - : bool = false (* Booléen standard! *) 1
2 On appelle un type défini de cette manière un type somme. Intuitivement on réalise effectivement une «somme» ou une union de constructeurs simples. Les noms de constructeurs commencent par une majuscule. Par convention, à respecter absolument, les noms de variables ou de fonctions ne doivent donc jamais commencer par une majuscule. Si prop est de type trileen, on réalise un filtrage pour agir selon les cas. Par exemple : (* Réalise le "non" en logique triléenne *) let non_trileen prop = match prop with Vrai -> Faux PeutEtre -> PeutEtre Faux -> Vrai non_trileen : trileen -> trileen = <fun> let prop = Vrai prop : trileen = Vrai non_trileen prop - : trileen = Faux CAML détecte automatiquement que tous les cas ont bien été considérés et renvoie un message d avertissement si ce n est pas le cas : let hesiter prop = match prop with Vrai -> PeutEtre Faux -> PeutEtre Warning: this matching is not exhaustive. C est un trait très puissant de CAML. Ne pas avoir traité tous les cas est détecté 1 avant même d exécuter le programme! QUESTION 1 Imaginer ce que peut être un «et» en logique triléenne et écrire une fonction et_trileen : trileen -> trileen -> trileen qui le réalise. 1.2 Constructeurs avec paramètres Jusqu ici les trois constructeurs étaient des constantes. On peut également définir des constructeurs paramétrés qui dépendent d un autre type avec la syntaxe NomConstructeur of un_type. Par exemple, on peut définir un jeu de cartes avec : type couleur = Pique Coeur Carreau Trefle 1. À condition de ne pas prendre la mauvaise habitude de systématiquement ajouter une clause _ ->... en fin de filtrage. 2
3 type carte = Joker As of couleur Roi of couleur Dame of couleur Valet of couleur Nombre of int * couleur On peut alors définir des cartes avec la syntaxe NomConstructeur (expr : un_type) : let carte1 = As Pique carte1 : carte = As Pique let carte2 = Nombre (3, Carreau) carte2 : carte = Nombre (3, Carreau) QUESTION 2 Définir le roi de cœur, la dame de pique et le neuf de trèfle. QUESTION 3 Prévoir et expliquer ce que renvoient les expressions suivantes : carte1 = carte2 carte2 = (3, Carreau) Pique Joker As Nombre Une fois que l on a bien compris cela, la syntaxe pour créer une valeur avec un constructeur devient limpide! Cependant, un constructeur est plus qu une simple fonction : on peut faire un filtrage de motif. let est_carreau carte = match carte with Joker -> PeutEtre As Carreau -> Vrai Roi Carreau -> Vrai Dame Carreau -> Vrai Valet Carreau -> Vrai Nombre (_, Carreau) -> Vrai _ -> Faux est_carreau : carte -> trileen = <fun> QUESTION 4 Écrire une fonction est_figure : carte -> trileen qui indique si la carte reçue en entrée est une figure ou non. On pourrait, sans difficultés mais avec beaucoup de temps, programmer le jeu de belote. Par exemple pour compter les points à la fin de la partie on peut écrire : 3
4 let valeur carte atout = match carte with Joker -> failwith "Carte impossible" Nombre (n, _) when n < 7 -> failwith "Carte impossible" As _ -> 11 Nombre (10, _) -> 10 Roi _ -> 4 Dame _ -> 3 Valet color when color = atout -> 20 Valet _ -> 2 Nombre (9, color) when color = atout -> 14 Nombre _ -> 0 QUESTION 5 À quoi peut servir le type suivant? type mixte = Reel of float Int of int QUESTION 6 Définir un type reel_etendu permettant de représenter la droite numérique achevée R = R {, + } et une fonction float -> reel_etendu qui permet de plonger R dans R. 1.3 Types récursifs Il est possible de définir des types récursifs, c est-à-dire dont leur définition fait appel à eux-même. Par exemple, on peut définir les couleurs par synthèse soustractive : type coloration = Cyan Magenta Jaune Melange of coloration * coloration QUESTION 7 Définir en CAML le rouge (mélange de magenta et de jaune) puis l orange (mélange de rouge et de jaune). QUESTION 8 Que fait la fonction suivante? 4
5 let rec cmj color = match color with Cyan -> (1., 0., 0.) Magenta -> (0., 1., 0.) Jaune -> (0., 0., 1.) Melange (color1, color2) -> let c1, m1, j1 = cmj color1 in let c2, m2, j2 = cmj color2 in ((c1 +. c2) /. 2., (m1 +. m2) /. 2., (j1 +. j2) /. 2.) 2 Retour sur les listes On peut maintenant définir notre propre type CAML pour créer des listes chaînées. Une liste chaînée est soit la liste vide (Nil), soit une tête et une queue FIGURE 1 Une représentation possible de la liste [1; 2; 3]. On peut par exemple choisir le type CAML suivant : type a liste = Nil TeteEtQueue of a * a liste On a construit ici un type paramétré qui dépend d un type a. QUESTION 9 Définir avec ce type la liste [1; 2; 3], représentée sur la figure 1. On peut alors écrire une fonction cons : a -> a liste -> a liste et qui est l analogue de :: en notation postfixe : let cons tete queue = TeteEtQueue (tete, queue) QUESTION 10 Ajouter 0 en tête de la liste précédente. 5
6 QUESTION 11 Écrire les fonctions tete : a liste -> a et queue : a liste -> a liste qui renvoient la tête et la queue d une liste si possible et un message d erreur sinon. QUESTION 12 Écrire la fonction taille : a liste -> int qui renvoie la longueur d une liste. On pourra, pour s entraîner, essayer de réécrire toutes les fonctions que nous avons vues jusqu ici sur les listes, avec ce type personnalisé. Bien entendu, nous continuerons principalement à utiliser les listes CAML, puisqu elles sont faites pour cela. 3 Arbres On peut voir les arbres comme une généralisation de la structure de liste. À une tête (que l on appelle plutôt nœud) on associe non pas une queue, mais deux (que l on appelle sous-arbres) : type a arbre = Vide Noeud of a * a arbre * a arbre 3 5 FIGURE 2 Un exemple d arbre avec deux nœuds. La racine d étiquette 3 possède deux sous-arbres : son fils gauche qui est un sous-arbre vide et son fils droit qui est un sous-arbre de taille 1 (une feuille), dont l étiquette est 5. Un arbre non vide est de la forme Noeud (etiquette, fils_gauche, fils_droit). Le nœud est appelée racine de l arbre (l analogue de la tête d une liste) et on dit alors que etiquette est l étiquette de ce nœud. Les sous-arbres fils_gauche et fils_droits sont respectivement le fils gauche et le fils droit de l arbre (l analogue de la queue de la liste, mais il y en a deux). On appelle feuille un nœud dont les deux fils sont des arbres vides. QUESTION 13 Définir en CAML l arbre représenté sur la figure 2. QUESTION 14 Écrire une fonction nb_noeuds : a arbre -> int qui renvoie le nombre de nœuds d un arbre (c est l analogue de la fonction list_length). QUESTION 15 Écrire une fonction nb_feuilles : a arbre -> int qui renvoie le nombre de feuilles d un arbre. 6
7 QUESTION 16 Écrire une fonction imprime : int arbre -> unit qui imprime les étiquettes d un arbre, dans l ordre que vous voulez, mais une et une seule fois chacune. QUESTION 17 Écrire une fonction somme_etiquettes : int arbre -> int qui renvoie la somme des étiquettes des nœuds de l arbre. QUESTION 18 Écrire une fonction max_etiquettes : a arbre -> a qui renvoie la somme des étiquettes des nœuds de l arbre. QUESTION 19 Écrire une fonction somme_feuilles : int arbre -> int qui renvoie la somme des étiquettes de toutes les feuilles. QUESTION 20 Écrire une fonction max_min_arbre : int arbre -> int * int qui renvoie le minimum et le maximum des étiquettes d un arbre. QUESTION 21 Une branche est un chemin de la racine vers une feuille. Le poids d une branche est la somme des étiquettes des nœuds qui la composent. Écrire une fonction max_somme_branche : int arbre -> int qui renvoie le poids de la branche de poids maximal. 7
modules & compilation
Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation [email protected] http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions
Classes et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
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
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
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
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
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.
length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2
1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle
Cours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Vérification de programmes et de preuves Première partie. décrire des algorithmes
Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Machines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position
Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus
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
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
Programme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
# 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
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Compression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
L exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
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
Structure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)
Découverte du monde : traiter deux informations Compétence : Savoir utiliser un tableau à double entrée. Matériel : - un plateau de jeu quadrillé : cinq lignes et cinq colonnes, - quatre pièces "couleur",
Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2
Probabilités Table des matières I Petits rappels sur le vocabulaire des ensembles 2 I.1 s................................................... 2 I.2 Propriétés...................................................
Introduction à l algorithmique et à la programmation M1102 CM n 3
Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY [email protected] IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d
UE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie [email protected] 2 Programmation Impérative
Le menu du jour, un outil au service de la mise en mémoire
Le menu du jour, un outil au service de la mise en mémoire Type d outil : Outil pour favoriser la mise en mémoire et développer des démarches propres à la gestion mentale. Auteur(s) : Sarah Vercruysse,
Dossier exclusif : le grand test de la NB4 LE GRAND TEST DE LA NEUF BOX 4
LE GRAND TEST DE LA NEUF BOX 4 Voici le grand test de la toute nouvelle Neuf Box, quatrième du nom, que nous avons eu la chance d avoir en notre possession lors de la phase bêta. Ce nouveau modem attire
Cours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
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
Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Table des matières. Introduction
Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............
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........
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 [email protected] Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
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
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 petit, plus grand, ranger et comparer
Unité 11 Plus petit, plus grand, ranger et comparer Combien y a-t-il de boules sur la tige A? Sur la tige B? A B Le nombre de boules sur la tige A est plus grand que sur la tige B. On écrit : > 2 On lit
Quelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
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
Conventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Les arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Le match par quatre en
Jouer Le match par quatre en par MARC KERLERO Dans le premier numéro de l'as de Trèfle, Guy Lasserre vous donnait les clés indispensables pour réussir en tournoi par paires. Marc Kerlero, lui, expose aujourd'hui
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
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
BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007
BAREME ur 40 point Informatique - eion 2 - Mater de pychologie 2006/2007 Bae de donnée PRET de MATERIEL AUDIO VISUEL. Remarque : Le ujet comporte 7 page. Vérifier qu il et complet avant de commencer. Une
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
Maple: premiers calculs et premières applications
TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent
Publipostage et étiquettes
Publipostage et étiquettes avec une base de données Calc Réalisé avec : LibreOffice 4.1.5 par Dominique MILLET Plate-forme / Os : Toutes www.atem-formation.com 05 63 47 98 36 Table des matières 1 Présentation...3
Chap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
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
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
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
Ni tout noir, ni tout blanc Consignes Thème I - Observer
Ni tout noir, ni tout blanc Consignes Thème I - Observer BUT : Etudier les synthèses additives et soustractives Comprendre la notion de couleur des objets COMPETENCES : Rechercher et trier des informations
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas
PHP. PHP et bases de données
Accés aux bases de données Une des raisons du succès de PHP Support d un grand nombre de bases - MySQL - Oracle - PostgreSQL - SQLite - Microso> Access - DBM - IBM Informix -... Accés aux bases de données
«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris
«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris OBJECTIFS 1- Niveau et insertion dans la programmation 2-
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
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
Résolution du Problème du Voyageur de Commerce Métaheuristique
Résolution du Problème du Voyageur de Commerce Métaheuristique ANDRÉ BIANCHERI TCHILINGUIRIAN Table des matières I Introduction 1 II Résolution par colonies de fourmis 3 1 Les fourmis.................................................
Exercices de dénombrement
Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.
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é
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
Olivier Mondet http://unidentified-one.net
T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage
1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Fiche pédagogique : ma famille et moi
Fiche pédagogique : ma famille et moi Tâche finale de l activité : Jouer au «Cluedo» Niveau(x) Cycle 3 Contenu culturel : - jeux de sociétés Connaissances : Connaissances requises : - cf séquences primlangue
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
COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE
COMMUNICATION TECHNIQUE N TCV060 Ed. 01 OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE OBJET : GESTION ANNUAIRE Veuillez trouver ci-après une documentation
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
TP, première séquence d exercices.
TP, première séquence d exercices. Benoît Valiron [email protected] 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la
Fiche d animation n 1 : Pêle-mêle
Fiche d animation n 1 : Pêle-mêle Cette animation permet au participants de découvrir les différents pièges du crédit à la consommation et plus particulièrement des ouvertures de crédit. Elle suscite également
NF26 Data warehouse et Outils Décisionnels Printemps 2010
NF26 Data warehouse et Outils Décisionnels Printemps 2010 Rapport Modélisation Datamart VU Xuan Truong LAURENS Francis Analyse des données Avant de proposer un modèle dimensionnel, une analyse exhaustive
Rappels Entrées -Sorties
Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C [email protected] ibrahimguelzim.atspace.co.uk
Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014
École Supérieure d Économie Électronique Chap 9: Composants et systèmes de sécurité 1 Rhouma Rhouma 21 Juillet 2014 2 tagging et port trunk Création des via les commandes sur switch cisco 1 / 48 2 / 48
Plateforme PAYZEN. Définition de Web-services
Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network
Programmation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Mon aide mémoire traitement de texte (Microsoft Word)
. Philippe Ratat Mon aide mémoire traitement de texte (Microsoft Word) Département Ressources, Technologies et Communication Décembre 2006. Sommaire PRÉSENTATION DU DOCUMENT 1 Objectif principal 1 Deux
RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Aide - mémoire gnuplot 4.0
Aide - mémoire gnuplot 4.0 Nicolas Kielbasiewicz 20 juin 2008 L objet de cet aide-mémoire est de présenter les commandes de base pour faire rapidement de très jolis graphiques et courbes à l aide du logiciel
Structurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
Les couleurs. Un peintre distrait a oublié les noms des couleurs de sa palette : tu peux l aider à reconstituer l ordre correct (de gauche à droite)?
Les couleurs Objectifs : Tu vas décrire une personne ou un personnage à travers l emploi des couleurs Conception : Micaela Rossi (Université de Gênes) pour les Jeunes Nomades 1) Le nom des couleurs Un
Java Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
CRÉER UN COURS EN LIGNE
Anne DELABY CRÉER UN COURS EN LIGNE Deuxième édition, 2006, 2008 ISBN : 978-2-212-54153-3 2 Que recouvre le concept d interactivité? Dans une perspective de cours en ligne, une activité interactive est
ALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
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
Microsoft Excel 2007. Présentation du tableur Excel
Microsoft Excel 2007 Présentation du tableur Excel 1 Interface d'excel 2007 Excel 2007 se distingue des versions précédentes par son interface plus intuitive et accessible. Les nouveautés sont multiples
S initier aux probabilités simples «Question de chance!»
«Question de chance!» 29-11 Niveau 1 Entraînement 1 Objectifs - S entraîner à activer la rapidité du balayage visuel. - Réactiver le comptage par addition jusqu à 20. - Développer le raisonnement relatif
Faites connaissance avec votre Rubik s Cube Étape 1
Faites connaissance avec votre Rubik s Cube Étape 1 ÉFIN ITION ES IÈCES U RUBIK S CUBE LES RTIES LES IÈCES RÊTES CE SONT ES IÈCES COMORTNT EUX (2) COULEU RS. IL Y OUZE (12) IÈCES RÊTES, SITUÉES U CENT
Solutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
ACTIVTE N 2 CONTRAT D ACTIVITE NIVEAU 6 ème Objets techniques Matériaux Energies Evolution objets techniques Réalisation T.I.C DECOUVERTE DU POSTE INFORMATIQUE PRESENTATION DE L ACTIVITE Cette activité
Arbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
De la tablette d'argile à la tablette tactile
FÉDÉRATION WALLONIE-BRUXELLES De la tablette d'argile à la tablette tactile Histoire des outils de communication ^}jfuséoljus Colorie ce messager 2 Colorie l'alphabet des animaux 3 Relie les numéros En
STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
