INF-130 Travail pratique #2 Travail en équipe



Documents pareils
Table des matières. BIENVENUE À UNIVERIS INVESTOR WEB

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

MODE D EMPLOI DU MODULE D E-COMMERCE

ACCÈS AUX COMPTES EN LIGNE : VOTRE GUIDE D UTILISATION. pour un accès à votre portefeuille partout et en tout temps

Consignes générales :

Le réseau et les tables virtuelles Synapse

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

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

GUIDE Excel (version débutante) Version 2013

Introduction à FP Solutions 3

Guide d utilisation du portail de formation en ligne LeCampus.com à l attention des partenaires de l APSM

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

MUNIA Manuel de l'utilisateur

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

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

Cours Excel : les bases (bases, texte)

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Incluant l analyse du patrimoine. Description du rapport (Couple seulement)

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

Utilisation de SugarCRM Version Professional 5.2

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Stopack : logiciel pour l entrepôt

Solutions en ligne Guide de l utilisateur

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Gestionnaire de champs PRO

8. Gestionnaire de budgets

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Guide d utilisation des fichiers bonus accompagnant le guide «L Argent est une science exacte»

Infolettre #18 : Les graphiques avec Excel 2010

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

Le cas «BOURSE» annexe

Assistant d e tablissement de Tableaux

Plateforme de vente aux enchères et de vente de gré à gré du ministre. Guide de l utilisateur

Manuel du gestionnaire

GUIDE DE L UTILISATEUR DE CONNEXION HOOPP

GUIDE D UTILISATION DU TABLEAU BLANC INTERACTIF EBEAM EDGE

TABLEAU CROISE DYNAMIQUE

SimpleDriver MANUEL UTILISATEUR

Quels sont les espaces disponibles sur l ordinateur pour stocker ses documents et comment accéder facilement au dossier «My Documents»?

DOKEOS Shop Manuel du formateur

Le cas «BOURSE» annexe

GUIDE D UTILISATION DU CENTRE DE DONNÉES DE L ISU

Simulation EIS. Changement et Innovation. Les Défis du Management

Créer un tableau avec LibreOffice / Calc

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

Installation du logiciel Windows Suivant Démarrer Tous les programmes Démarrer Tous les programmes Marketing Manager Marketing Manager Linux ici Mac

Utilisation avancée de SugarCRM Version Professional 6.5

Guide de l usager - Libre-service de bordereaux de paie en ligne

Message important de VL Communications Inc.

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

Excel 2007 Niveau 3 Page 1

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Fête de la science Initiation au traitement des images

GUIDE D UTILISATION DU BROWSER DE BEYOND 20/20

Portail étudiant de la Faculté des sciences Notice d'utilisation du site d'inscription aux unités d enseignement

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Voici les objectifs de la séance d'aujourd'hui :

1. Création du profil

Créer des étiquettes avec les adresses d'un tableau Calc

Édu-groupe - Version 4.3

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

PromoPost Manuel d utilisation

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

LES TOUT PREMIERS PAS

Concevoir son premier espace de cours sur la plateforme pédagogique Moodle

Site Internet. Tapez « dans la barre d adresse d Internet Explorer

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

Plateforme FX and MM Trading de HSBCnet - Visite guidée

Dans cette Unité, nous allons examiner

PRISE EN MAIN D ILLUSTRATOR

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

LimeSurvey. Pour obtenir un compte sur le LimeSurvey de l Université de Genève, remplissez le formulaire de demande en ligne.

COURS WINDEV NUMERO 3

Le Registre foncier du Québec en ligne

Réglages du portail de P&WC

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Créer une trace, obtenir son fichier gpx et sa carte Ou Afficher un fichier trace GPX

Business Intelligence avec Excel, Power BI et Office 365

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

Nouvelles fonctionnalités

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

Guide de l approbateur de base

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

NAVIGATION SUR INTERNET EXPLORER

> Mettre une croix dans les cases correspondantes Répondre aux deux consignes

Comment se servir de l utilitaire de validation?

Formation tableur niveau 1 (Excel 2013)

Module 16 : Les fonctions de recherche et de référence

Chez soi avant tout : De l hôpital à la maison

< Atelier 1 /> Démarrer une application web

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Comment créer et utiliser une fonction

Étape 1 : Création d une adresse courriel GMAIL

CONSULTATION SUR PLACE

Comment générer des revenus en Affiliation

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Transcription:

École de technologie supérieure INF-130 Travail pratique #2 Travail en équipe Prospection et exploration minière Par : Frédérick Henri Utilisé par : David Beaulieu, Frédérick Henri, Hugues Saulnier et Éric Thé Remise à la 9 e semaine 1 Objectifs - Se familiariser avec le langage Visual Basic for Applications d Excel. - Utiliser l ensemble des notions présentées à présent : les variables, les instructions conditionnelles et itératives, les entrées/sorties, le découpage en sous-programmes, les tableaux à une ou plusieurs dimensions, etc. - Respecter les exigences de programmation : l indentation, l utilisation de constantes, l ajout de commentaires, etc. 2 Description du problème : Prospection et exploration minière Imaginez que vous possédiez un terrain de 50 x 40 km et que vous ayez de bonnes raisons de croire qu il s y trouve de l or (ou un autre métal précieux). Sachant que : 1) le sondage d une superficie d un kilomètre carré servant à déterminer la quantité de minerai qui s y trouve coûte 50 000 $; 2) l extraction du minerai sur une superficie d un kilomètre carré coûte 2 000 000 $; où devriez-vous sonder et creuser afin de maximiser vos profits ou minimiser vos pertes? Afin de répondre à cette question, on vous demande de développer une application servant à tester un algorithme de prospection minière. Celle-ci doit accomplir deux tâches principales : a) générer un terrain (où se trouve possiblement un minerai pouvant être miné); b) utiliser un algorithme de prospection et évaluer les profits ou les pertes encourues. 2.1 Génération du terrain L application conserve le sous-sol minier d un terrain à l aide d un tableau à deux dimensions. Chaque case du tableau correspond à une parcelle de terrain d un kilomètre carré et conserve la valeur du minerai qui s y trouve. Afin de faciliter la visualisation du terrain à l écran, l application utilise les codes de couleur suivants : - une case ne contenant aucun minerai est colorée en blanc; INF-130 Ordinateurs et programmation Automne 2015 / Page 1

- une case contenant du minerai, mais insuffisamment pour que celle-ci vaille la peine d être exploitée (2 050 000 $ ou moins) est colorée en jaune plus ou moins foncé, selon la valeur du minerai; - une case qui vaut la peine d être exploitée (plus de 2 050 000 $) est colorée en orange plus ou moins foncé, selon la valeur du minerai; - une case qui est considérée comme étant riche (6 150 000 $ ou plus) est colorée en rouge. La figure qui suit offre un exemple de terrain généré par l application. Figure 1 Carte des gisements miniers 2.2 Prospection du terrain L algorithme de prospection permet de décider où il faut effectuer les sondages. Selon les informations qu il obtient, il détermine si on doit sonder le terrain à d autres endroits. Finalement, lorsqu il a terminé les sondages, il fore à tous les endroits où il y a une valeur de plus de 2 050 000 $. Afin d indiquer à l utilisateur où l algorithme a décidé de sonder et de forer, l application : a) encadre une case qui a été sondée; b) ajoute une croix dans une case où l on doit extraire le minerai (case à forer). La figure qui suit offre un exemple de terrain où l on voit la carte de prospection. INF-130 Ordinateurs et programmation Automne 2015 / Page 2

Figure 2 Carte des gisements miniers et carte d exploration minière 3 Description de l application L application que vous devez développer comporte les 6 modules ci-dessous : 1. module_excel : ce module offre des sous-programmes servant à modifier le contenu de l unique feuille Excel. Il vous est offert et vous ne devez pas le modifier. 2. module_constantes : ce module ne contient que trois constantes. Il vous est offert et vous ne devez pas le modifier. 3. module_utilitaires : ce module offre quelques fonctions utiles qui servent fréquemment dans plusieurs sous-programmes. 4. module_terrain : ce module offre des sous-programmes permettant de générer un terrain (une carte des gisements miniers). 5. module_prospection : ce module offre deux sous-programmes publics servant respectivement à générer une carte de prospection et à évaluer les revenus associés à une carte de prospection. Il possède plusieurs sous-programmes privés. 6. module_principal : ce module offre cinq procédures publiques associées aux boutons de la feuille Excel. Il possède lui aussi plusieurs sous-programmes privés. INF-130 Ordinateurs et programmation Automne 2015 / Page 3

L application comporte également une feuille Excel nommée «Interface» qui vous est offerte et dont voici l apparence. Figure 3 Interface utilisateur La figure qui suit illustre l interaction entre les modules et la feuille Excel. Figure 4 - Interaction entre les modules et la feuille INF-130 Ordinateurs et programmation Automne 2015 / Page 4

4 Description des modules à compléter 4.1 Description du module module_utilitaires En plus de la fonction nb_aleatoire qui vous est offerte, ce module contient les deux sousprogrammes publics suivant : - somme_tab_2d : cette fonction reçoit un tableau à deux dimensions d entiers et retourne la somme des valeurs de tous les éléments du tableau. - nb_occurrences_tab_2d : cette fonction reçoit un tableau à deux dimensions d entiers ainsi qu un nombre entier. Elle retourne le nombre de fois que l entier reçu est présent dans le tableau. 4.2 Description du module module_terrain Ce module contient trois fonctions publiques permettant de générer un terrain : - creer_terrain_uniforme : cette fonction reçoit une valeur de minerai exprimée en milliers de dollars (donc, telle que 1 représente en fait 1000 $). Elle crée un nouveau terrain (un tableau dynamique à deux dimensions d entiers longs de 50 lignes et 40 colonnes) et assigne la valeur reçue en paramètre à chacun des éléments du tableau et retourne ce tableau. - creer_terrain_aleatoire : cette fonction reçoit une valeur de minerai minimal et une valeur de minerai maximal. Elle crée un nouveau terrain (un tableau dynamique à deux dimensions d entiers longs de 50 lignes et 40 colonnes) et assigne à chaque case du tableau une valeur aléatoire dans l intervalle délimité par les deux bornes reçues en paramètre et retourne le tableau. - creer_terrain_en_veines : cette fonction reçoit deux paramètres, soit le nombre de veines à créer et la valeur d une veine. Elle crée un nouveau terrain (un tableau dynamique à deux dimensions d entiers longs de 50 lignes et 40 colonnes) et y ajoute le nombre de veines demandées, chacune de la valeur spécifiée, et retourne ce tableau. Notez que l ajout d une veine à la fois se fait à l aide de la procédure privée ajouter_aleatoirement_veine qu il vaut mieux coder d abord. Voici la procédure privée nécessaire à la fonction creer_terrain_en_veines : - ajouter_aleatoirement_veine : cette procédure privée reçoit un terrain (un tableau à deux dimensions d entiers longs de 50 lignes et 40 colonnes) et une valeur de minerai. Elle débute en choisissant aléatoirement un élément (l, c) du tableau qui ne se trouve ni sur la dernière ligne, ni sur la dernière colonne. Cet élément correspond au coin supérieur gauche d un carré 2 x 2 où s effectuera l ajout de minerai. Ensuite, tant qu on n a pas ajouté dans le tableau une quantité totale de minerai égal à la valeur reçue en paramètre on répète ces deux étapes : on ajoute +1 dans chacune des cases du carré (l, c), (l + 1, c), (l, c + 1) et (l +1, c +1); dans 1 % des cas, on déplace aléatoirement d une case le coin supérieur gauche du carré 2 x 2 en s assurant que ce nouveau carré demeure à l intérieur du terrain. INF-130 Ordinateurs et programmation Automne 2015 / Page 5

4.3 Description du module module_prospection Ce module contient sept sous-programmes privés et deux sous-programmes publics : - carte_prospection_vierge : cette fonction privée reçoit la hauteur et la largeur de la carte de prospection à créer (le nombre de lignes et de colonnes). Elle crée une carte de prospection (un tableau dynamique à deux dimensions d entiers possédant le nombre de lignes et de colonnes spécifiées en paramètres) et assigne à chacun des éléments du tableau la valeur -1 qui correspond à une case non sondée et retourne ce tableau. - effectuer_premiers_sondages : cette procédure privée reçoit une carte de prospection. Elle choisit des cases à sonder à l aide d un algorithme laissé à votre discrétion. Chaque case sondée par l algorithme est prise en note dans la carte de prospection en recevant la valeur 1 qui correspond à une case sondée. - sonder_cases_voisines : cette procédure privée reçoit une carte de prospection, un indice de ligne l, un indice de colonne c et une distance d. Elle sonde (inscrit la valeur 1) les 8 cases situées à une distance d de la case (l, c). Elle s assure de ne pas écrire à l extérieur du tableau. Les figures qui suivent illustrent la tâche accomplie par la procédure. 1) On sonde les 8 cases voisines de (2, 2) à une distance de 1. 1 2 3 4 5 1 2 3 4 5 1????? 1 1 1 1?? 2? 1??? 2 1 1 1?? 3????? 3 1 1 1?? 4????? 4????? 5????? 5????? 2) On sonde les 8 cases voisines de (3, 3) à une distance de 2. 1 2 3 4 5 1 2 3 4 5 1????? 1 1? 1? 1 2????? 2????? 3?? 1?? 3 1? 1? 1 4????? 4????? 5????? 5 1? 1? 1 - sonder_autour_cases_prometteuses : cette procédure privée reçoit un terrain et une carte de prospection. Elle parcourt la carte de prospection et pour chacune des cases sondées, si la case correspondante dans le terrain contient une valeur de minerai jugée suffisante, elle sonde les cases voisines à deux cases de distance à l aide de la procédure sonder_cases_voisines. Assurez-vous d utiliser une copie de la carte de prospection quand vous sondez les cases voisines. Une fois terminée, cette copie remplacera l ancienne carte de prospection retournée par INF-130 Ordinateurs et programmation Automne 2015 / Page 6

référence. Notez que l évaluation de ce qu est une valeur de minerai suffisante est laissée à votre discrétion. - sonder_autour_cases_rentables : cette procédure privée reçoit un terrain et une carte de prospection. Elle parcourt la carte de prospection et pour chacune des cases sondées, si la case correspondante dans le terrain contient une valeur de minerai supérieur au seuil de rentabilité (2 050), elle sonde les cases voisines à une distance de 1 avec sonder_cases_voisines. Veuillez utiliser une copie de la carte de prospection quand vous sondez les cases voisines. - effectuer_forages : cette procédure privée reçoit un terrain et une carte de prospection. Elle parcourt la carte de prospection et pour chacune des cases sondées, si la case correspondante dans le terrain contient une valeur de minerai supérieur au seuil de rentabilité (2 050), on inscrit 2 dans la carte de prospection pour indiquer qu il faut forer dans cette case. - nb_cases_sondees_rentables : cette fonction privée reçoit un terrain et une carte de prospection. Elle parcourt la carte de prospection et compte le nombre de cases sondées telles que la case correspondante dans le terrain contient une valeur de minerai supérieur au seuil de rentabilité (2 050). On retourne ce nombre représentant le nombre de cases jugées rentables. - carte_prospection_terrain : cette fonction publique reçoit un terrain. Elle crée une nouvelle carte de prospection vierge de la même dimension que le terrain reçu. Elle effectue ensuite trois étapes de sondages : les premiers sondages, les sondages autour des cases prometteuses et enfin les sondages autour des cases qui sont rentables. Il est à noter que l on répète l étape des sondages autour des cases rentables tant et aussi longtemps que ceux-ci permettent de trouver de nouvelles cases rentables (c.-à-d. augmente le nombre de cases rentables). Elle se termine en forant l ensemble des cases rentables et en retournant la carte de prospection ainsi produite. - revenus_des_cases_forees : cette fonction publique reçoit un terrain et une carte de prospection. Elle retourne la somme des valeurs de toutes les cases dans le terrain qui doivent être forées en vertu de la carte de prospection. 4.4 Description du module module_principal En plus des cinq procédures publiques associées aux boutons de la feuille Excel, ce module contient cinq sous-programmes privés. - dessiner_carte_gisements : cette procédure privée reçoit un terrain et le dessine dans la feuille Excel «Interface» à l aide des sous-programmes du module module_excel. - dessiner_carte_prospection : cette procédure privée reçoit une carte de prospection et la dessine dans la feuille Excel «Interface» à l aide des sous-programmes du module module_excel. Elle entoure les cases sondées et ajoute une croix dans les cases forées. - profit_maximal_theorique : cette fonction privée reçoit un terrain et retourne le profit maximal théorique qu il est possible de réaliser si l on fore dans ce terrain. Le profit théorique maximal se calcule en faisant la somme des valeurs des cases dont la valeur du minerai est supérieure au seuil de rentabilité (2 050) et en soustrayant 2 050 pour chacune des cases INF-130 Ordinateurs et programmation Automne 2015 / Page 7

identifiées. En d autres termes, c est le profit que l on obtient si l on ne sonde et que l on ne fore que les cases rentables. - afficher_statistiques_essai : cette procédure privée reçoit un terrain et une carte de prospection. Elle calcule l ensemble des données à inscrire dans les sections «Informations sur le terrain» et «Informations sur la prospection» (par exemple : la valeur totale du minerai, le profit maximal théorique, le nombre de cases sondées, etc.) et inscrit ces valeurs dans la feuille Excel à l aide des sous-programmes du module module_excel. - realiser_prospection_terrain : cette procédure privée reçoit un terrain. Elle réalise la prospection du terrain reçu, elle dessine le terrain ainsi que la carte de prospection à l écran et elle met à jour les informations sur le terrain et la prospection. - essai_terrain_aleatoirement_pauvre, essai_terrain_uniformement_riche, essai_terrain_1_veine, essai_terrain_5_veines : ces quatre procédures publiques n attendent aucun paramètre et sont très semblables. Elles créent toutes un nouveau terrain et réalisent ensuite la prospection de ce terrain à l aide de realiser_prospection_terrain. essai_terrain_aleatoirement_pauvre crée un terrain aléatoire où chaque case contient une valeur entre 0 et 1000. essai_terrain_uniformement_riche crée un terrain où chaque case contient exactement la valeur 6 150. Les procédures essai_terrain_1_veine et essai_terrain_5_veines créent respectivement un terrain contenant une veine et cinq veines de 153 750 000 $ chacune. - simulation_terrain_a_5_veines : cette procédure publique effectue mille fois la création et la prospection d un terrain à cinq veines de 153 750 000 $ chacune. On fait la somme des profits des mille essais et on affiche le profit moyen. Notez que cette procédure n affiche aucun terrain et aucune carte de prospection, on affiche seulement une boîte de message avec le profit moyen. BONUS : cette procédure évalue la performance de votre algorithme de prospection. Les équipes qui réussiront à obtenir un profit moyen d au moins 36 000 000 $ obtiendront 5 points bonis (la note maximale restera 100). 5 Ordre de développement suggéré Commencez par écrire les module_utilitaires et module_terrain. Ensuite, codez une version partielle et simplifiée des procédures essai_unique_terrain_presque_vide, essai_unique_terrain_uniformement_riche, essai_unique_terrain_1_veine et essai_unique_terrain_5_veines en vous limitant simplement à la création et à l affichage du terrain (grâce à la procédure dessiner_carte_gisements), sans tenter de réaliser la prospection. La création du terrain étant validée, écrivez le module_prospection et complétez le module_principal en suivant l ordre de présentation de la section 4. 6 Contraintes de l'enseignant Votre programme devra respecter les contraintes suivantes : INF-130 Ordinateurs et programmation Automne 2015 / Page 8

Il devra respecter les exigences de remise des travaux pratiques. Il ne devra contenir aucune variable globale. La présence d une variable globale entraînera la perte de 25 % des points. Il ne devra contenir aucun Goto. Chaque Goto entraînera la perte de 10 % des points. Vous devez imprimer tous les modules à l exception des modules module_constantes et module_excel. Une partie qui n'est pas imprimée n'est pas corrigée et se voit attribuer la note 0. En cas de doute, n hésitez pas à consulter votre enseignant. BON TRAVAIL! INF-130 Ordinateurs et programmation Automne 2015 / Page 9