Algorithmes : conception et réalisation MQT 63834



Documents pareils
Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Gauthier, Benoît (dir.) Recherche sociale : de la problématique à la collecte des données. Québec : Presses de l Université du Québec.

POL 1100 (Méthodes de recherche en politique) Hiver 2012 Local B-0305 Lundi de 13h00-14h30

PLAN DE COURS. Reconnaître le rôle des mathématiques ou de l informatique dans la société contemporaine (0011)

MRK A : Méthodes d Analyse de Données en Marketing Automne 2010

UE C avancé cours 1: introduction et révisions

Évaluation et implémentation des langages

Initiation au binaire

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

Optimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h

HIVER 2004 MÉTHODOLOGIE DE LA RECHERCHE EN MARKETING MRK

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Entraînement au concours ACM-ICPC

UE Programmation Impérative Licence 2ème Année

CHARGÉE DE COURS : Catherine Pelletier, MBA, chargée de communication, Service des communications et des relations avec le milieu, FSA

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

UNIVERSITÉ LAVAL. PLAN DE COURS PROGRAMME en GESTION du DÉVELOPPEMENT TOURISTIQUE. Titre et sigle du cours : Marketing touristique, MRK 20578

Introduction à l informatique en BCPST

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Plan de cours. Chiffriers et bases de données en gestion commerciale

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Programmation C. Apprendre à développer des programmes simples dans le langage C

Tutoriel : Utilisation du serveur de calcul à distance de PSE

Chapitre I Notions de base et outils de travail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Plateforme de capture et d analyse de sites Web AspirWeb

Plan de cours. Comportement organisationnel

Cours 1 : La compilation

Guide plateforme FOAD ESJ Lille

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs!

Programme d Accès Communautaire / Atelier 4 Initiation à Microsoft Excel PLAN DE COURS 3 MICROSOFT EXCEL 4 LANCER EXCEL 4

L informatique en BCPST

GUIDE DES PROFESSEURS(ES) POUR LÉA Version du 27 janvier 2009

Faculté des sciences de l administration Automne 2005

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Principes de mathématiques 12 SÉRIE DE PROBLÈMES. Septembre Student Assessment and Program Evaluation Branch

Créer le schéma relationnel d une base de données ACCESS

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

SIO-6029-Z1 : Gestion de projet et du changement

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.

Outils pour les réseaux de neurones et contenu du CD-Rom

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Introduction à MATLAB R

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

ASR-2102 : Produits financiers: assurances et rentes

Soutien technique en informatique

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Bibliothèque des Compétences clés

DESS Arts, création et technologies

Laboratoire 4 Développement d un système intelligent

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Modèle de changement d organisation. Leanpizza.net présente. Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation

Technologie 9 e année (ébauche)

Premiers Pas avec OneNote 2013

Manuel d utilisation du logiciel RÉSULTATS. Édition destinée aux départements

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Plan du cours. Historique du langage Nouveautés de Java 7

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Travail d équipe et gestion des données L informatique en nuage

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Google Adresses. Validez la fiche de votre entreprise ou organisation sur Google Maps

Conventions d écriture et outils de mise au point

Poste de travail virtuel

Séquence de découverte de SparkAngels Logiciel d entraide numérique

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.


Mode d emploi du Bureau Virtuel (BV) à destination des étudiants en Formation À Distance (FAD)

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Cours 1 : Qu est-ce que la programmation?

Plan de cours. 1. Mise en contexte. 2. Place du cours dans le programme. 3. Descripteur du cours

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

Tout au long de l année

FORMATION PROFESSIONNELLE INFORMATION GÉNÉRALE RECONNAISSANCE DES ACQUIS ET DES COMPÉTENCES DES QUESTIONS... DES RÉPONSES...

SolidWorks edrawings et publications

Cookies de session ils vous permettent de sauvegarder vos préférences d utilisation et optimiser l expérience de navigation de l Utilisateur ;

Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateurs : Michel Gagné et Réjean Côté

Guide pratique: Initiation à l informatique

BigBlueButton - une solution ouverte de webconférence à Carleton University

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

Mendeley, pour gérer sa bibliographie et la partager. Patricia Volland-Nail

Dr. Prosper Bernard Tel: // portable

Recherche et méthodologie en criminologie (CRM 6725 A & B)

Logiciels de Gestion de Projet: Guide de sélection

Éléments de programmation et introduction à Java

COMMENT REDIGER UN RAPPORT TECHNIQUE?

GSF FINANCE I. Hiver 2006

Gestion des fichiers sur micro-ordinateur

Cours Base de données relationnelles. M. Boughanem, IUP STRI

PROGRAMMES D INFORMATIQUE

La Clé informatique. Formation Excel XP Aide-mémoire

Transcription:

Algorithmes : conception et réalisation MQT 63834 Professeur Antoine Gautier, Ph. D. Département Opérations et systèmes de décision Faculté des sciences de l administration, Université Laval Session d hiver 2004 1 Introduction Les contributions des méthodes quantitatives à la gestion se regroupent en deux classes principales. D une part, il est possible d obtenir par une analyse mathématique des principes généraux de gestion, par exemple en montrant que certaines chaînes de montage sont auto-équilibrées. D autre part les méthodes quantitatives offrent la possibilité du calcul explicite de certaines variables cruciales dans les décisions opérationnelles. Dans ce deuxième cas les calculs se résument rarement à une simple série d opérations arithmétiques aisément réalisables avec un chiffrier. Les procédures comportent souvent un grand nombre d opérations, décrites par un algorithme. S il est possible de s intéresser aux algorithmes in-abstracto, c est à dire sans se préoccuper de leur utilisation pratique par des ordinateurs, ce n est pas l approche privilégiée dans le cours. Sans perdre de vue les propriétés théoriques des algorithmes, nous nous concentrerons durant la première partie du cours sur le lien entre algorithmes et ordinateurs (la programmation) et sur plusieurs structures de données indispensables à la réalisation d un programme. Sur cette base nous explorerons un échantillon d algorithmes représentatifs à la fois des applications en gestion et des approches algorithmiques. Le cours MQT 63834 est donc l un des cours de fondement proposés par le département OSD dans le cadre des programmes de deuxième cycle de la FSA. Il constitue une introduction aux méthodes de traitement de l information et de calcul (algorithmes). On traite des principaux algorithmes usuels (recherche, tri, graphes) en introduisant des concepts d analyse d efficacité. Les structures de données sont également vues sous cet angle. La mise en pratique des connaissances acquises sur les algorithmes se fera par le langage de programmation Pascal, qui constitue une bonne introduction aux langages de programmation actuels (C, C++, Java, etc.) Version du 22 décembre 2003. 1

MQT 63834 2 Pré-requis Le cours est ouvert à tous les étudiants de deuxième et troisième cycle, la clientèle cible étant celle des cheminements Gestion manufacturière et logistique (GML) et Modélisation et décision organisationnelle (MDO) du MBA. Le cours est ouvert aux étudiants sans expérience de programmation ainsi qu à ceux qui sont familiers avec la partie informatique des langages mais moins avec l analyse des algorithmes (complexité,...). Objectifs du cours Le cours vise à amener les étudiants à : Distinguer un algorithme conceptuel d un programme informatique logiciel Acquérir des notions de base d analyse des algorithmes, c est-à-dire établir exactement ce que fait un algorithme et évaluer le nombre d opérations nécessaires à son exécution Connaître certaines structures de données de base (tableaux, listes, arbres, monceaux,...) Connaître un certain nombre d algorithmes fondamentaux (tri, recherche, graphes...) Être capable de transcrire un algorithme en un programme en langage Pascal Acquérir un langage et des méthodes d analyse des algorithmes afin d être capable de recommander une approche de traitement de grands problèmes. Activités principales Cours magistraux et discussions Ateliers d apprentissage Turbo Pascal Lectures Exercices à remettre individuellement Projet de session 2 Matériel Ouvrages obligatoires 1. NOTES DE COURS et ATELIER DE FORMATION TURBO PASCAL (janvier 2004). 2. LIVRE La référence de base est le livre de Parsons (1995) qui constitue une excellente introduction aux algorithmes et à leur analyse. Le livre est épuisé mais une copie sera disponible à la réserve (vous pouvez également tenter votre chance sur www.amazon.com ou www.ebay.ca) ; nous utiliserons surtout les chapitres 1, 4, 5, 6, et 9. Ouvrages complémentaires APPRENTISSAGE DU LANGAGE PA S C A L Les étudiants qui ont une expérience de la programmation pourront peut-être trouver les documents obligatoires suffisants. Pour les autres, voici une liste d ouvrages recommandés. En anglais le livre de

MQT 63834 3 Grogono (1985) est clair, mais il est malheureusement épuisé. Une photocopie sera disponible à la réserve des professeurs (la traduction française de cet ouvrage n est pas recommandée). En français on trouvera l ouvrage de Delannoy (1997). Pour les moins fortunés, le Hernert (1995) est une bonne petite référence. Le livre qui fait autorité pour le langage Pascal, dont Turbo Pascal est une extension, est Jensen et Wirth (1991). SUR LES ALGORITHMES Des éléments de complexité algorithmique sont empruntés à Sakarovitch (1984), Garey et Johnson (1979) et à Papadimitriou et Steiglitz (1982). Une bonne introduction à la programmation par contraintes est celle de Smith (1995). Finalement, les ouvrages de Brassard et Bratley (1987), Brassard et Bratley (1996), Sedgewick (1988), Knuth (1973), Bal et Grune (1992), van Leeuwen et Widmayer (1992), Froidevaux et al. (1993) et Cormen et al. (1990) seront les bienvenus dans votre bibliothèque si vous désirez poursuivre dans le domaine des algorithmes. Outils informatiques Vous devrez avoir installé un compilateur Pascal sur votre portable avant les ateliers d apprentissage (deuxième semaine). En voici plusieurs, tous gratuits. Bloodshed. Pour Windows 95/98/NT/2000/XP. Sur www.bloodshed.net, télécharger Dev-Pascal 1.9.2 + GNU Pascal. Pour l utiliser : ouvrez un fichier.pas existant, ou créez-en un avec la fonction File-New-source-file (ctrl-u) ne tentez pas de créer des Projets, c est compliqué. Turbo Pascal 7.01 pour DOS. Fonctionne sous toutes les versions de Windows sauf XP. Documentation et aide en français. Installation : sur la page internet du cours, allez chercher le fichier TP7F.zip. Lors du transfert, enregistrez le sous le nom c:\tp7f.zip. Décompressez-le. Si vous utilisez Winzip, spécifiez le répertoire : «extract to : c:\». Vous pouvez maintenant lancer le programme avec le raccourci c:\tp7f\turbo (ne tentez pas d installer le compilateur à un endroit différent.). Gpc. Compilateur GNU, fonctionne sous windows, unix, linux et MacOS X. www.gnu.org et www. microbizz.nl/gpc.html pour la version OS X. Ressources Internet Le forum d entraide Pascal, avec tutoriel : www.developpez.com/pascal/ Le forum usenet : news://fr.comp.lang.pascal Tout sur la (monstrueuse) fonction d Ackermann : pweb.netcom.com/~hjsmith/ackerman.html. 3 Utilisation des ordinateurs portables L utilisation des ordinateurs portables pour le cours est réservée au travail sur les exercices et le projet (hors rencontres en classe) et à certaines parties des cours en classe (formation Turbo Pascal principale-

MQT 63834 4 ment). À l exception de ces dernières vous êtes priés de garder les portables fermés et éteints. 4 Organisation du cours et travaux Horaire Le cours se tiendra les jeudis de 8 heures 30 à 11 heures 30. Affichage Il est possible que certaines modifications soient apportées au déroulement du cours. Toute information supplémentaire sera communiquée en classe, et possiblement sur le site du cours. Formation Turbo Pascal La formation au langage Turbo Pascal est particulièrement exigeante et ne vous laisse que peu de marge de manœuvre quant au retard que vous pourriez y prendre. Durant cinq semaines à partir de la deuxième semaine de cours, des sessions d apprentissage Turbo Pascal obligatoires auront lieu les lundis de 13 heures 15 à 15 heures 30. Il vous est demandé de faire certaines lectures avant chacune des séances : Séance Thème Lectures préalables 1 2 Bases du langage, structures de contrôle, entrées et sortie Types structurés, fonctions et procédures, variables locales v/s globales, entrées et sorties sur fichier Atelier : pages 1 à 36 Grogono : chapitres 1, 2 et 3 et 6.1, 6.5 Atelier : pages 37 à 70 Grogono : chapitre 4 (sauf 4.4) et 6.6, 7.2 et 7.3 3 Utilisation des pointeurs 4 Récursivité Atelier : pages 71 à 86 Grogono : chapitre 8 Atelier : pages 87 à la fin Grogono : 4.4 5 Rattrapage et révision (relecture) Devoirs Une série de devoirs (au plus 10) à remettre, incluant des exercices théoriques et pratiques. Visez une présentation claire et précise tant dans le fond que dans la forme. En particulier, les programmes en remis sans lignes de commentaires seront refusés. Le but des devoirs est de vous aider à comprendre et appliquer le contenu du cours et à développer vos aptitudes à manipuler des concepts algorithmiques ainsi que le langage Turbo Pascal. Il s agit de travaux personnels, individuels et originaux. Des éléments de correction des devoirs seront donnés en classe peu après la date de remise. Cependant, pour les exercices de programmation, il ne vous sera pas remis de corrigés complets ; l important est que

MQT 63834 5 votre programme fonctionne, et non pas que vous ayez une solution toute faite... TRANSMISSION PAPIER ET ÉLECTRONIQUE Pour la majorité des devoirs vous devrez réaliser un ou plusieurs programmes en Turbo Pascal. En plus de remettre vos devoir imprimés sur papier, vous devez envoyer au professeur un courriel unique avec, en fichiers attachés : (1) tous les fichiers source (.PAS), (2) tous les fichiers exécutables (.EXE), et (3) tous les fichiers sortie (.OUT), le cas échéant. Le sujet du courriel sera précisément «Fichiers du devoir i» pour le i-ème devoir. Évaluation Note poids Moyenne des n 1 meilleurs travaux sur n 1/3 Projet 1/3 Examen final (dernier jour de cours) 1/3 Pour rejoindre le professeur Bureau Pavillon Palasis Prince, 1519 Utilisation du courriel Disponibilité Les lundis après 14 heures 30 Téléphone 656 7066 Courriel Site internet Antoine.Gautier@fsa.ulaval.ca http://www.fsa.ulaval.ca/personnel/gautiera/ Vous pouvez utiliser le courriel pour poser des questions courtes par exemple sur un point de détail du cours ou sur l un des travaux. Je m efforce de répondre rapidement, sans pour autant offrir un «service 7-24». Pour les longues explications il est préférable de venir au moment de mes disponibilités telles qu annoncées. 5 Feuille de route 1. Introduction : programme algorithme! les algorithmes structures de données : les tableaux notions élémentaires de complexité lectures préalables : Parsons (1995) ( 1.1, 1.5 et 1.6). 2. Le tri (1) pointeurs et listes chaînées tri par insertion lectures préalables : Parsons (1995) ( 4.1 4.3).

MQT 63834 6 3. Le tri (2) concept de division récursion : tri par fusion complexité lectures préalables : Parsons (1995) ( 4.4 4.7). 4. Le tri (3) tri rapide (QuickSort) complexité lectures préalables : Parsons (1995) ( 4.4 4.7). 5. Graphes et complexité algorithmique introduction aux graphes, applications pratiques graphes implicites complexité algorithmique lectures préalables : Parsons (1995) (chapitre 9, sauf les programmes en Pascal, 1.2 et appendice A). 6. Les arbres binaires (1) structures d arbre binaire opérations de recherche efficacité lectures préalables : Parsons (1995) ( 5.1 5.7). 7. Les arbres binaires (2) et les monceaux (1) équilibrage des arbres les monceaux (Heaps) complexité lectures préalables : Parsons (1995) ( 5.8 5.9 jusqu à la page 136 et 6.1 6.2). 8. Comment traverser un arbre arbres explicites et implicites structures de données récursion application : algorithme de Branch and Bound lectures préalables : Parsons (1995) ( 5.5). 9. Algorithmes sur les graphes (1) structures de données pour les graphes algorithmes de fouille (profondeur, largeur) lectures préalables : Parsons (1995) ( 9.1 9.4). 10. Algorithmes sur les graphes (2) Plus court chemin, tri topologique lectures préalables : Parsons (1995) ( 9.5 9.7). 11. Quelques stratégies algorithmiques algorithmes gloutons diviser pour régner : la multiplication des matrices lectures préalables : Brassard et Bratley (1987) (chapitre 3 et pp. 129 130). 12. Problèmes NP-complets Le problème du commis voyageur lectures préalables : dans Sakarovitch (1984), chapitre 4. 13. La programmation dynamique généralités

MQT 63834 7 exemples lectures préalables : Parsons (1995) ( 11.1 11.3). 14. La programmation par contraintes : article de Smith (1995).

MQT 63834 8 Références H. E. Bal et D. Grune. Programming languages. In E. G. Coffman, jr., J. K. Lenstra, et A. H. G. Rinnoy Kan, editors, Computing, volume 3 of Handbooks in Operations Research and Management Science, chapter 2, pages 31 90. Elsevier Science B.V., 1992. Jacques Borowczyk, Jean-luc Chabert, Michel Guillemot, Ahmed Djebbar, Jean-Caude Martzloff, et Anne Michel-Pajus. Histoire d algorithmes : du caillou à la puce. Regards sur la science. Belin, Paris, 1995. Gilles Brassard et Paul Bratley. Algorithmique, conception et analyse. Manuels informatiques. Masson / Presses de l Université de Montréal, 1987. Gilles Brassard et Paul Bratley. Fundamental of Algorithmics. Prentice-Hall, 1996. Thomas H. Cormen, Charles Eric Leiserson, et Ronald L. Rivest. Introduction to Algorithms. MIT Press/McGraw-Hill, 1990. Claude Delannoy. Programmer en Turbo Pascal 7.0. Langages. Eyrolles, 1997. Christine Froidevaux, Marie-Claude Gaudel, et Michèle Soria. Types de données et algorithmes. Ediscience International, Paris, France, 1993. aussi chez McGraw-Hill, Paris. Michael R. Garey et David S. Johnson. Computers and intractability : A guide to N P Completeness. W. H. Freeman and Company, New York, 1979. Peter Grogono. Programming in Pascal. Computer Science. Addison-Wesley, deuxième edition, 1985. Patrice Hernert. Les Algorithmes. Que Sais-je? Presses Universitaires de France, Paris, 1995. Kathleen Jensen et Niklaus Wirth. Pascal user manual and report (ISO-Pascal). Springer-Verlag, fourth edition, 1991. Donald Ervin Knuth. The Art of Computer Programming, Vol. 1,2 et 3. Addison Wesley, 1973. C. H. Papadimitriou et K. Steiglitz. Combinatorial Optimization ; Algorithms and Complexity. Prentice Hall, 1982. Thomas W. Parsons. Introduction to algorithms in Pascal. John Wiley & Sons, 1995. Michel Sakarovitch. Optimisation combinatoire : Programmation Discrète. Hermann, 293 rue Lecourbe, Paris XIII, France, 1984. Robert Sedgewick. Algorithms. Computer Science. Addison-Wesley, 1988. Barbara M. Smith. A tutorial on constraint programming. School of Computer Studies Research Report Series 95 14, University of Leeds, Division of Artificial Intelligence, April 1995. J. van Leeuwen et P. Widmayer. Fundamental algorithms and data structures. In E. G. Coffman, jr., J. K. Lenstra, et A. H. G. Rinnoy Kan, editors, Computing, volume 3 of Handbooks in Operations Research and Management Science, chapter 7, pages 323 374. Elsevier Science B.V., 1992. Note : Les ouvrages suivants sont disponibles à la réserve des professeurs de la bibliothèque générale (pavillon Bonenfant) : Parsons (1995); Grogono (1985); Brassard et Bratley (1987, 1996); Cormen et al. (1990); Delannoy (1997); Hernert (1995); Sakarovitch (1984); Sedgewick (1988).

MQT 63834 9 Directives pour les devoirs comprenant des programmes Turbo Pascal Au fur et à mesure que la session avance vous deviendrez plus agiles avec la programmation Turbo Pascal ; vous serez évalués selon des critères qui eux aussi vont augmenter. Pour vous aider à vous améliorer, voici une série de points à assimiler. 1. Chaque travail doit être remis dans une enveloppe 8,5 11 sur laquelle vous aurez inscrit clairement votre nom et le numéro du devoir (1 à 10). L enveloppe contiendra (a) un listing commenté de chacun de vos programmes Turbo Pascal (b) les sorties, le cas échéant. 2. Avant la date et l heure de remise prévues, envoyez au professeur le courriel correspondant (voir le Syllabus page 5). 3. Évitez les lettres majuscules sauf, si vous le souhaitez, les mots réservés de Pascal. 4. Remettez un listing et des sorties sur papier, imprimés avec une fonte à espacement fixe (Ohlf, Courier, etc.). 5. Utilisez l indentation (TAB) pour faire ressortir la structure de votre programme. De plus, sur la sortie papier, faites apparaître tous les blocs à l aide de traits de couleur (voir exemple en classe ainsi que la forme utilisée dans le livre de Parsons). 6. Incorporez des (* commentaires *) dans votre programme mais pas trop. 7. Choisissez des noms de variables, de procédures et de fonctions évocateurs, par exemple indice plutôt que XYTi. Pour les compteurs de boucles, on pourra se contenter de i,j,k,... 8. Si votre programme ne marche pas, ne compile pas, ou donne de mauvais résultats, il faut le mentionner. 9. Vous devez tester votre programme pour vérifier qu il fait bien ce que vous en attendez. Par exemple : Un programme de calcul de la moyenne dans le cours devrait donner 100 lorsque toutes les notes valent 100, et 0 lorsqu elles valent toutes 0. Un programme de tri devrait être vérifié par un deuxième programme de test d ordre (facile à écrire). Un programme de tri devrait fonctionner sur une liste de un ou de deux items. Une liste déjà triée, ou triée en ordre inverse, devrait être traitée correctement. Pour les autres programmes, il vous faudra inventer vos propres tests (un programme qui passe tous vos tests n est pas garanti correct, mais un programme qui échoue à l un de vos tests est certainement erroné!) 10. À l aide de (* commentaires *), précisez pour chaque fonction et procédure la liste des variables locales et globales. Rappelez-vous que les variables qui n ont pas besoin d être globales doivent être locales. 11. N utilisez pas l instruction GOTO.

MQT 63834 10 Projet MQT 63834 Les projets, à effectuer en groupes de deux étudiants, seront pour vous l occasion d accomplir un travail complet de conception, réalisation et test d un logiciel informatique de traitement. Vous rechercherez un thème de projet parmi les cours que vous prenez à la FSA, le choix devant répondre à 4 critères simples : a) Le logiciel résout un problème qui se pose dans la gestion d une entreprise ou d une administration. b) Le logiciel doit utiliser plusieurs des techniques vues en classe. c) Le logiciel doit utiliser au moins un algorithme d optimisation (exact ou heuristique). d) Le logiciel doit lire ses données dans un fichier et écrire ses résultats dans un autre. Notez que d autres critères pertinents pour les logiciels commerciaux ne sont pas visés dans ce travail : complexité, convivialité, esthétique, aide, etc. Afin de choisir un sujet à la fois intéressant et à votre portée, vous pourrez discuter de votre choix avec le professeur dès les premières semaines. Échéancier : Jeudi 18 mars Jeudi 1 avril Jeudi 15 avril Remise d un rapport préliminaire (1 à 2 pages) comportant : Composition définitive de l équipe et présentation du projet Vos références bibliographiques (livres, articles, notes de cours,...) Analyse conceptuelle (modélisation du problème réel) Un exemple numérique de petite taille du problème Difficultés à surmonter Remise d un rapport intermédiaire (environ 4 pages) comportant : Le rapport préliminaire, corrigé et modifié au besoin + la version annotée par le professeur Analyse fonctionnelle (ce que fera le programme) Organigrammes, liste des structures de données, des procédures et des fonctions Pascal La résolution, sur papier, de l exemple numérique Les références bibiographiques de l algorithme utilisé (article original) Remise du rapport final comportant : Les rapports préliminaire et intermédiaire, corrigés et modifiés au besoin + les versions annotées par le professeur Listing sur papier documenté (faire les liens avec l organigramme) Une documentation (manuel de l utilisateur) Résultats d une batterie de tests numériques (y-compris votre exemple numérique), analyse de performance Conclusions Les acétates de votre présentation en classe Un courriel contenant le rapport final, code, exécutable(s) et quelques sorties est également envoyé au professeur. Présentation des projets en classe

MQT 63834 11 Présentation des projets Chaque équipe disposera de 5 minutes pour se préparer et de 20 minutes pour présenter son projet. Le format suivant est obligatoire : Acétate 1 : Présentation du problème que vous avez choisi de résoudre Acétate 2 : Présentation synthétique des données Acétate 3 : Algorithme Acétate 4 : Structures de données (en justifiant vos choix) Acétate 5 : Difficultés particulières Acétate 6 : Résultats de vos tests (Démonstration du prototype) Acétate 7 : Étude de complexité (théorique et/ou empirique) Acétate 8 : Conclusions Soyez clair, précis, et n écrivez sur vos acétates que le strict nécessaire. L ordre de passage des équipes sera tiré au sort à 8 heures 30 TOUTE ÉQUIPE DONT LE TRAVAIL CORRESPOND AUX CRITÈRES CI-DESSUS ET QUI AURA RÉUSSI À VENDRE SON LOGICIEL À UNE ENTREPRISE POUR UN PRIX NON-DÉRISOIRE SE VERRA ATTRIBUER LA PLUS HAUTE NOTE AU COURS! Je vous souhaite une excellente session!