Recherche du plus grand sous tableau vide
|
|
- Patrice Métivier
- il y a 6 ans
- Total affichages :
Transcription
1 INPG-Ensimag, 1 re année Algo2 : TP1, février-mars Modalités Recherche du plus grand sous tableau vide Le TP est à commencer la semaine du 5 février. Les trois quarts du sujet portent sur des manipulations de tableaux et les cours et Tds sur les tableaux seront traités au plus tard le 5 février. Le dernier quart comporte la manipulation d objets dont la classe est donnée : il ne pourra être programmé que la deuxième semaine (celle du 12 février), mais l algorithme peut être travaillé et compris avant. Le TP est à réaliser en binôme, durant le temps libre. La date de rendu est le vendredi 2 mars. Les modalités de rendu sont les mêmes qu au premier semestre pour les TP1 et TP2 : l application TEIDE vous enverra comme d habitude des mails pour inscrire votre binôme, déposer, valider... on ne rend qu un compte rendu par binôme (même si le binôme est composé d étudiants de groupes différents) ; on dépose le compte rendu du tp dans les casiers dédiés (sas de la scolarité) avant la date de rendu ; on dépose une archive du tp (sources toutes les sources, histoire que ça compile tel que, les tests, et tout ce que vous jugerez utile...) avant la date de rendu. 2 Sujet Il s agit de rechercher dans un rectangle pavé de dalles blanches et de dalles noires, le plus grand (en nombre de dalles) sous rectangle blanc, c est-à-dire ne contenant aucune dalle noire. Le tp étudie plusieurs algorithmes de complexités différentes : d une solution naïve, par recherche exhaustive, on arrive en s aidant de structures de données intermédiaires à une complexité optimale. Le rectangle pavé est représenté par un tableau contenant des booléens. Par convention, on prendra : la valeur vrai pour une dalle blanche la valeur faux pour une dalle noire On s attachera pour chaque solution à étudier sommairement sa complexité. Ici, pour exprimer la complexité, on regardera dans le code le nombre de boucles imbriquées, leurs tailles et le nombre d accès aux cases du tableau qui représente le dallage. Par exemple, void f (boolean [][] t) { for (int i=0 ; i<t.length ; i++) for (int j=0 ; j<t[0].length ; j++) if (t[i][j]) System.out.print ("dalle blanche") ; else System.out.print ("dalle noire") ; } pour cette fonction, il y a deux boucles imbriquées (celle d indice i et celle d indice j). Les accès aux cases du tableau sont réalisés par le code if (t[i][j]). Si le tableau t est un carré de côté n, la fontion f fait n 2 accès. 2.1 Solution 1 : recherche naïve La solution naïve de ce problème consiste à tester tous les rectangles possibles en vérifiant pour chacun s il est vide. Pour énumérer tous les rectangles possibles, on pourra énumérer, par exemple, tous les coins supérieurs gauche, puis tous les coins inférieurs droits. Finalement, pour un rectangle donné, on teste toutes ses cases pour vérifier qu il est vide ou non.
2 Question 1. Combien de boucles imbriquées l algorithme comporte-t-il? On compte le nombre d accès à une case du rectangle : combien l algorithme en fait il, au maximum? Exprimer le résultat en fonction de la taille du rectangle : on peut simplifier en supposant qu on manipule un carré de côté n. 2.2 Solution 2 : amélioration de la solution naïve On peut réduire le nombre de boucles imbriquées, de la manière suivante. L idée est qu on part d un rectangle d une ligne, le plus large possible, et qu on augmente sa hauteur petit à petit, tout en réduisant sa largeur lorsque c est nécessaire. On évite ainsi d avoir à revérifier pour chaque rectangle, l ensemble de ses cases. On énumère toujours tous les coins supérieurs gauches possibles du rectangle. Pour un coin supérieur gauche donné, on parcourt toutes les possibilités pour la dernière ligne du rectangle. Puis on itère sur les colonnes, mais on n avance que tant qu on sait qu un rectangle allant jusqu à la colonne et la ligne courante est effectivement possible. Pour la première ligne, on avance tant qu on ne rencontre que des cases blanches sur la ligne. Pour la deuxième ligne, on recommence en partant de la gauche, et on s arrête dès qu on a rencontré une case noire, ou que l on a atteint la colonne à laquelle on s était arrêté à la ligne précédente. On continue ainsi pour chaque ligne, en réduisant petit à petit le nombre de colonnes. Sur la figure suivante, on peut voir les limites de tous les rectangles testés par cette solution, lorsque le point de départ est la case marquée d un point noir. Question 2. Cette deuxième solution est plus efficace. Combien comporte-t-elle de boucles imbriquées? Combien cela fait-il d accès au maximum aux cases du tableau, si l on prend l hypothèse du carré de côté n? 2.3 Solution 3 : utilisation d un tableau intermédiaire Il est possible de faire encore beaucoup mieux. Pour cela, on parcourt le rectangle ligne par ligne et on maintient un tableau supplémentaire dans lequel on stocke pour chaque colonne, de combien de cases on peut remonter depuis la ligne courante sans rencontrer de case noire : on parle de la hauteur de la colonne et on appelle ce tableau HauteurColonne. On obtient facilement les valeurs de HauteurColonne pour une ligne à partir de celles de la ligne précédente. Par exemple, sur le rectangle précédent, on commence avec un tableau HauteurColonne rempli de 0 : Pour la première ligne, HauteurColonne devient : puis : pour la deuxième ligne pour la troisième ligne pour la quatrième ligne
3 etc. Une fois ce tableau rempli pour une ligne, il devient possible de calculer l aire du plus grand rectangle dont le bord du bas se trouve sur cette ligne. Pour chaque ligne, on utilise deux boucles imbriquées, qui itèrent sur les colonnes de début et de fin des sous rectangles qu on examine. Pendant qu on incrémente la colonne de fin, on maintient la hauteur la plus petite des colonnes rencontrées depuis celle de début. Cette hauteur est celle du plus grand rectangle valide ayant ce début et cette fin. On peut alors calculer sa surface et éventuellement le sélectionner comme plus grand sous rectangle blanc. Question 3. Cette troisième solution est encore plus efficace. Combien comporte-t-elle de boucles imbriquées (au maximum)? Combien cela fait-il d accès au maximum aux cases du tableau, si l on prend l hypothèse du carré de côté n? 2.4 Solution 4 : utilisation d une pile intermédiaire On peut encore faire mieux, en traitant chaque ligne en une seule boucle. On peut en effet remarquer que les différents rectangles qui peuvent être intéressants pour notre recherche sont imbriqués les uns dans les autres. On considère comme intéressants les rectangles qui sont maximaux, c est-à-dire qu on ne peut pas les agrandir en augmentant l une des dimensions, que ce soit en largeur ou en hauteur, sans tomber sur une case noire. Sur la figure suivante, les limites des rectangles intéressants (maximaux) se terminant sur la dernière ligne sont représentées. Ces rectangles sont imbriqués, dans le sens où un rectangle A dont le bord gauche est situé avant le bord gauche d un rectangle B, a son bord droit qui est situé soit avant même le bord gauche du rectangle B, soit après le bord droit du rectangle B. On ne peux pas avoir le bord gauche d un rectangle A, puis le bord gauche d un rectangle B, puis le bord droit du rectangle A, puis le bord droit du rectangle B. La situation suivante est par exemple impossible, car le rectangle le plus bas peut être agrandi vers la gauche (comme le montrent les pointillés), et n est donc pas maximal. On peut remarquer qu à une colonne donnée, les rectangles intéressants qui utilisent cette colonne sont toujours plus hauts quand ils ont été commencés le plus à droite possible. Comme dans la solution précédente, on parcourt le rectangle ligne par ligne et on maintient le tableau HauteurColonne qui stocke pour chaque colonne, de combien de cases on peut remonter depuis la ligne courante sans rencontrer de case noire. En même temps, pour chaque ligne, on avance colonne par colonne et on ouvre des rectangles potentiellement maximaux.
4 rectangle ouvert (sur la pile) ligne courante Pour stocker, les rectangles ouverts, on utilise une pile : quand on ouvre un rectangle, on empile sa colonne de début et sa hauteur. Les rectangles précédemment empilés n ont pas à être touchés, tant qu on n aura pas fermé le rectangle que l on vient d empiler car tant qu il est possible de lui ajouter des colonnes, il est forcément possible d en ajouter également aux rectangles empilés précédemment, puisqu ils sont moins hauts. Quand on avance d une colonne, si la hauteur de la nouvelle colonne est plus grande que la précédente, on ouvre un nouveau rectangle : les rectangles ouverts précédemment sont toujours valides, puisqu ils sont moins hauts. Si la hauteur de la nouvelle colonne est plus petite que la précédente, on est obligé de fermer le rectangle se situant en haut de la pile : il n est plus possible d ajouter des colonnes en restant à sa hauteur et de continuer à l agrandir. On ferme et on dépile alors tous les rectangles qui sont plus hauts que la, sauf le dernier (s il existe). Le dernier subit un traitement spécial : on le laisse sur la pile en réduisant sa hauteur à la hauteur de la. rectangle ouvert (sur la pile) rectangle ferme rectangle reduit A chaque fois que l on réduit ou que l on ferme un rectangle du sommet de la pile, il faut calculer son aire et vérfifier si c est la plus grande qu on ait rencontrée. Une fois arrivé à la dernière colonne, on ferme bien sûr tous les rectangles ouverts. Avec cette technique on a calculé l aire de tous les rectangles maximaux dont le bord du bas peut se
5 trouver sur la ligne courante. Le rectangle le plus grand étant un rectangle maximal, faire cette opération sur toutes les lignes donne effectivement l aire du plus grand rectangle vide. Comptage du nombre d opérations effectuées avec cette méthode : On remarque qu à chaque colonne, on empile au plus un rectangle. Comme on ne dépile pas plus de rectangles qu on en empile, le nombre d opérations sur la pile est au maximum de 2 fois le nombre de colonnes. Le traitement de chaque ligne demande donc un nombre d opérations de l ordre du nombre de colonnes. Cet algorithme nécessite donc un nombre d opérations de n 2 avec l hypothèse du carré de côté n. Il est évident qu il n est pas possible de faire d algorithme plus rapide pour ce problème, car la lecture elle-même du rectangle requiert déjà n 2 opérations. 3 Mise en œuvre Programmation. Il est demandé de programmer les algorithmes expliqués dans les solutions 1, 2, 3 et 4 : pour chaque solution, votre programme affichera les coordonnées du plus grand sous rectangle vide et sa taille. Pour spécifier les coordonnées d un rectangle, on pourra donner, par exemple, le coin haut-gauche et le coin bas-droite. Pour la solution 4, on pourra utiliser les classes Rect et PileRect : la première représente un rectangle par sa première colonne et sa hauteur (la mention de la ligne étant stockée ailleurs), la seconde permet de manipuler une pile de Rect. Tests. Les tests doivent impérativement essayer tous les petits cas (petits rectangles) et les cas limites comme par exemple le pavage tout noir ou tout blanc. Selon les algorithmes, il existe d autres cas limites intéressants à tester. On pourra observer aussi sur des rectangles de grande taille les différences de complexité entre les solutions. Pour remplir aléatoirement des tableaux de booléens, est fourni un petit utilitaire GenAlTab ainsi qu un exemple d utilisation de l utilitaire UtiliseGenAlTab. Compte rendu. Le compte rendu doit contenir l ensemble des programmes commentés. Fournir l ensemble des programmes qui a permis l élaboration du tp, y compris les programmes de tests, etc. Essayer d attacher une grande importance à la lisibilité du code : il est indispensable de bien le présenter (indentation, saut de ligne, etc) ; les identificateurs (nom de classes, variables, fonctions, etc) doivent avoir des noms cohérents avec leur rôle ; enfin, un commentaire se doit d être sobre et aussi précis que possible. l ensemble des tests réalisés. Pour chaque test, on attend une explication du test en lui même (qu estce qui est testé?), une justification de l intérêt du test (pourquoi ce test est-il intéressant?), et un commentaire sur le résultat du test (résultat produit? pourquoi est-ce cohérent ou non avec ce qui était attendu? commentaire). un compte rendu textuel (qui peut être manuscrit ou non) comprenant 1) une explication de chacun des algorithmes codés, avec explications et justifications des choix effectués, s il en est ; 2) les réponses aux questions 1 et 2 et 3. Notation. Ceci est un travail noté. Comme au premier semestre, toute l évaluation se fait sur le travail présenté dans le compte rendu. Le dépôt de votre archive sur teide est un point obligatoire et utile aux correcteurs à des fins techniques, mais ne constitue en aucun cas la matière à évaluer. La note sur 20 points se répartit ainsi : 10 points pour les algorithmes, 4 points pour le code produit et 6 points pour les tests. Par ailleurs, la solution 1 compte pour 1/10 de la note, la solution 2 pour 1/10, la solution 3 pour 3/10 et la solution 4 compte pour la moitié de la note.
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
Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont
Plus en détailPoker. A rendre pour le 25 avril
Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles
Plus en détailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailLes algorithmes de base du graphisme
Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............
Plus en détailLes 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
Plus en détailCours 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étailTP 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É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étail1. 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
Plus en détailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détailTD3: 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étailCorrigé 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étailTutoriel Sage One Edition Expert-Comptable. - Le cabinet d Expertise-Comptable doit appeler le Service Client Sage One au 0825 95 00 70.
Tutoriel Sage One Edition Expert-Comptable Sage One Edition Expert-Comptable : inscription et identifiants - Le cabinet d Expertise-Comptable doit appeler le Service Client Sage One au 0825 95 00 70. -
Plus en détailTravaux 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étailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailUNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 2012/2017 LICENCE DROIT MENTION DROIT GENERAL
UNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 01/017 LICENCE DROIT MENTION DROIT GENERAL Les présentes règles s inscrivent dans le cadre réglementaire national défini par les tetes
Plus en détailIntroduction à 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étailPrésentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détail1/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étailInfo0101 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étailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détailDé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étailJava 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
Plus en détailAlgorithmique 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étail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détailCours 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étailCours 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étailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailExamen Médian - 1 heure 30
NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une
Plus en détailProgrammer 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étailINITIATION 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étailAlgorithmique 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étailMIS 102 Initiation à l Informatique
MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ
Plus en détailTP : 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étail4. Groupement d objets
Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux
Plus en détailIMAGES NUMÉRIQUES MATRICIELLES EN SCILAB
IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques
Plus en détailSolutions 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 (
Plus en détailProjet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
Plus en détailArchitecture des Systèmes d Information Architecture des Systèmes d Information
Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau
Plus en détailCours 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étailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailLicence 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étailProgrammation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Plus en détail1 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étailGuide de configuration d'une classe
Guide de configuration d'une clae Viion ME Guide de configuration d'une clae Contenu 1. Introduction...2 2. Ajouter de cour...4 3. Ajouter de reource à une leçon...5 4. Meilleure pratique...7 4.1. Organier
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailConventions 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#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };
#include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe
Plus en détailBases de données documentaires et distribuées Cours NFE04
Bases de données documentaires et distribuées Cours NFE04 Introduction a la recherche d information Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département
Plus en détailIndications pour une progression au CM1 et au CM2
Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir
Plus en détailINTRODUCTION 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étailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailCours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr
Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine
Plus en détailLes 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étailSTAGE 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étailManuel 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étailBaccalauréat universitaire (bachelor) en mathématiques et sciences informatiques
Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques CONDITIONS GENERALES Art. A 3 Baccalauréat universitaire en mathématiques et sciences informatiques 1. La Faculté décerne
Plus en détailINFO 2 : Traitement des images
INFO 2 : Traitement des images Objectifs : Comprendre la différence entre image vectorielle et bipmap. Comprendre les caractéristiques d'une image : résolution, définition, nombre de couleurs, poids Etre
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailProjet 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étailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailPlan 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étailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailOrganigramme / 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étailSouad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailChap 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
Plus en détailCours 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étailRecherche 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étailQuatrième partie IV. Test. Test 15 février 2008 1 / 71
Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion
Plus en détailDUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream
iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 5 : Sockets Stream Nom(s) : Groupe : Date : Objectifs : manipuler les primitives relatives à la communication par sockets
Plus en détailReconstruction de bâtiments en 3D à partir de nuages de points LIDAR
Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains
Plus en détailInitiation à Excel. Frédéric Gava (MCF) gava@univ-paris12.fr
Initiation à Excel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex Plan de cette année
Plus en détailmodélisation solide et dessin technique
CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir
Plus en détailExercices sur le chapitre «Probabilités»
Arnaud de Saint Julien - MPSI Lycée La Merci 2014-2015 1 Pour démarrer Exercices sur le chapitre «Probabilités» Exercice 1 (Modélisation d un dé non cubique) On considère un parallélépipède rectangle de
Plus en détailRACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.
S Vous n aimez pas la souris Les raccourcis clavier sont là pour vous faciliter la vie! INTRODUCTION : Vous avez du mal à vous habituer à la manipulation de la souris Des solutions existent : les raccourcis
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailGuide d utilisation du groupe Yahoo Aprogemere
Guide d utilisation du groupe Yahoo Aprogemere Marcel Yves Croute / Dominique Rougier 2013 Ce guide illustré permettra aux adhérents de mieux connaitre le fonctionnement, l organisation, le contenu du
Plus en détailAlgorithmique et Programmation
École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................
Plus en détailPré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)
Plus en détailDurée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point
03 Mai 2013 Collège Oasis Durée de L épreuve : 2 heures. apple Le sujet comporte 4 pages et est présenté en livret ; apple La calculatrice est autorisée ; apple 4 points sont attribués à la qualité de
Plus en détailJean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux
Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis
Plus en détailCours 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étailGuide de l Utilisateur
Guide de l Utilisateur 2014 ACCES A PUBLICHEM... 3 CREER VOTRE COMPTE... 3 ACCES LIBRE... 4 ACCES LIMITE... 4 REINITIALISATION DE MOT DE PASSE... 5 PROFIL... 6 SE DECONNECTER... 6 RECHERCHER UNE FDS...
Plus en détailFonctions de deux variables. Mai 2011
Fonctions de deux variables Dédou Mai 2011 D une à deux variables Les fonctions modèlisent de l information dépendant d un paramètre. On a aussi besoin de modéliser de l information dépendant de plusieurs
Plus en détailMise à jour Apsynet DataCenter
Mise à jour Apsynet DataCenter Dans le cadre de sa stratégie d évolution produit, Apsynet propose à ses clients sous contrat de maintenance une mise à jour majeure annuelle. Celle-ci peut être complétée
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailCatalogue de location
Catalogue de location 514-523-2211 1-877-677-2211 2600, William-Tremblay, suite 128 Montréal (QC) H1Y 3J2 location Nous disposons de près d un millier de pièces en location pour vos projets temporaires
Plus en détailUFR de Sciences Economiques Année 2008-2009 TESTS PARAMÉTRIQUES
Université Paris 13 Cours de Statistiques et Econométrie I UFR de Sciences Economiques Année 2008-2009 Licence de Sciences Economiques L3 Premier semestre TESTS PARAMÉTRIQUES Remarque: les exercices 2,
Plus en détailAlgorithmes récursifs
Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément
Plus en détailExamen d informatique première session 2004
Examen d informatique première session 2004 Le chiffre à côté du titre de la question indique le nombre de points sur 40. I) Lentille électrostatique à fente (14) Le problème étudié est à deux dimensions.
Plus en détailObjets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Plus en détail1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4
1 Introduction 1-1 Chaîne de développement Algorithm e C+ + Algorigramm e languag e machine binaire Le programme est écrit à l aide de Multiprog sous forme d algorigramme puis introduit dans le microcontrôleur
Plus en détailTABLE DE MATIERE : http://www.oneorzero.com/ 1. INTRODUCTION :... 2 2. PAGE D ACCUEIL :... 3 3. OPTIONS DES TICKETS :... 4 4. FAQ OPTION :...
UTILISATION DU HELPDESK DE «ONE OR ZERO» http://www.oneorzero.com/ TABLE DE MATIERE : 1. INTRODUCTION :... 2 2. PAGE D ACCUEIL :... 3 3. OPTIONS DES TICKETS :... 4 A) CRÉER UN TICKET :... 4 B) MES TICKETS
Plus en détailRapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Plus en détailPré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étailEnseignement secondaire technique
Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:
Plus en détailBases 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étailPropagation sur réseau statique et dynamique
Université de la Méditerranée UFR Sciences de Luminy Rapport de stage informatique pour le Master 2 de Physique, Parcours Physique Théorique et Mathématique, Physique des Particules et Astroparticules.
Plus en détail