Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes.

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée
Advertisements

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Boucles §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 243B Programmation Informatique Appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests.
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II.
GEF 243B Programmation informatique appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel et Vérification et validation.
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Fonctions.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Modules et masquage dinformation.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
INTRODUCTION.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Principes de programmation (suite)
Langage C Révision.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Algorithmes et résolution de problèmes FGE
Structures de données et algorithmes – TP2
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Démarche de résolution de problèmes
Algorithmique et Programmation
Les éléments de base de l’algorithmique
Algorithmique et Programmation
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
11/10/07 MATHÉMATIQUES FINANCIÈRES I Douzième cours.
MATHÉMATIQUES FINANCIÈRES I
Géométrie analytique Distance entre deux points.
04/10/07 MATHÉMATIQUES FINANCIÈRES I Dixième cours.
09/10/07 MATHÉMATIQUES FINANCIÈRES I Onzième cours.
ACT Cours 11 MATHÉMATIQUES FINANCIÈRES I Onzième cours.
Programmation linéaire en nombres entiers : les méthodes de troncature
Procédures et fonctions
La librairie assert.h.
Python Fonction et procédure
Programmer en langage c
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
INTRODUCTION.
SIF-1053 Architecture des ordinateurs
ACT Cours 7 MATHÉMATIQUES FINANCIÈRES I Septième cours.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Objectif: Comment employer un exposant?. Objective: How to use an exponent?
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Miguel Garzon CrUise Lab - SITE CSI PROJET 2013 Symmetric Hash Join.
02/10/07 MATHÉMATIQUES FINANCIÈRES I Neuvième cours.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Transcription de la présentation:

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes

Hiver 2010JGA Beaulieu Synopsis Processus de résolution des problèmes Exemple Exercice

Hiver 2010JGA Beaulieu Processus de résolution des problèmes C est un langage structuré qui se porte bien au processus structuré de résolution des problèmes Une méthode en 6 étapes est présentée Peut être utilisée pour les problèmes en ingénierie ou en science Suppose quun ordinateur sera utilisé pour résoudre les problèmes

Hiver 2010JGA Beaulieu Design structuré 1.Énoncé le problème clairement (besoins) 2.Décrivez linformation des entrées sorties 3.Travailler le problème à la main (calculatrice) 4.Développez une solution (algorithme) 5.Convertissez lalgorithme en code 6.Testez le programme avec des données variées Exceptions et conditions frontières

Hiver 2010JGA Beaulieu Problème exemple Nous allons maintenant utilisé la méthode sur un problème Exemple: Calculez la distance entre deux points sur un plan

Hiver 2010JGA Beaulieu 1 - Énoncé le problème clairement (besoins) Nous devons capturer les besoins du programme Que doit faire le programme? Cest très important pcq notre développement en entier est basé sur cette description. On ne doit pas seulement régurgiter lénoncé de problème, on doit penser au contexte 1.Étant donné 2 points dans un plan calculer la distance en ligne droite (Euclidienne) et afficher cette distance.

Hiver 2010JGA Beaulieu 2. Décrivez linformation des entrées sorties Décrivez en détails les valeurs données (entrées) et les valeurs calculées (sorties) Décrives le type, grandeur et unités de ces valeurs E.g. entier positifs, réels, [-3,-2,-1,0,1,2,3] 2.Pour notre problème donné: a.Entrées sont deux points Euclidiens (x1, y1) et (x2, y2) où chaque coordonnée peut être un nombre réel b.La sortie est la distance (d) qui est aussi un nombre réel

Hiver 2010JGA Beaulieu 3. Travailler le problème à la main Travailler le problème à la main utilisant des diagrammes et un ensemble de données simple. Vous pourriez avoir à consulter des références Trouvez des équations ou algorithmes (Wikipedia, Shaum) 3.Considérez deux points : p1 = (1,5) et p 2 = (4,7)

Hiver 2010JGA Beaulieu 3. Travailler le problème à la main Vous pouvez faire plus dun exemple pour vous convaincre que vous comprenez les complexités du problème Ex: en utilisant des points non entiers ou des valeurs négatives. p1 = (-1.5,5.275) et p2 = (5.25,-3.775) p1 = (0,5) et p2 = (-3,0)

Hiver 2010JGA Beaulieu 4. Développez une solution Un algorithme est une solution par étape. Décrivez la solution pour un lecteur ( autre que vous ) Ceci demande souvent de décomposer le problème en plus petits problèmes ( on revient à ça bientôt ) Approche structurel Des algorithmes peuvent déjà exister … recherche 4.Décomposition du problème 1.Obtenir les valeurs dentrée (x,y) des 2 points 2.Calcul la longueur de chaque côté 3.Calcul lhypoténuse (distance) 4.Retourne ou affiche la distance

Hiver 2010JGA Beaulieu 5. Convertissez lalgorithme en code Si la décomposition du problème est complète, elle nous donne tout ce que lon a de besoin Entrées et leurs types Sorties et leurs types Procédure pour calculer les sorties à partir des entrées Format de la sortie Ensuite implémentation du code en C

Hiver 2010JGA Beaulieu /******************************************************************************* * * File: distanceexample.c * * Author: Dr. Don McGaughey * * Description: Given two points in a plane, this program will give the * Euclidean distance between them and output it to the console * * Revision History: Created September 2008 * *******************************************************************************/ #include int main(void) { /* declare and initialize variables */ //p1 = (1,5) and p2 = (4,7) double x1=1, y1=5, x2=4, y2=7; double side1, side2, distance; /* Compute the lengths of the sides */ side1 = x2-x1; side2 = y2-y1; /*Compute the distance */ distance = sqrt(side1*side1 + side2*side2); /* Print Distance */ printf("The distance between (%5.2f,%5.2f) and (%5.2f,%5.2f) is %5.2f\n", x1,y1,x2,y2,distance); /* Exit Program */ getchar(); return(0); }

Hiver 2010JGA Beaulieu 5. Notes sur le code Lentête de documentation est requise La bibliothèque de math est utilisée (pas besoin de réinventer la roue) Pour changer les points, le code doit être recompilé Arguments de ligne de commande ou entrée par fichier…

Hiver 2010JGA Beaulieu 6. Tests Même si le code compile ( la syntaxe est bonne ), il peut y avoir des erreurs ( sémantique est mauvaise ) Exécutez le code sur des cas connues (oracles) pour obtenir les bons résultats Il est en général impossible de vérifier touts les cas avec votre programme Élaborez de bons tests avec cas frontières et exceptions

Hiver 2010JGA Beaulieu 6. Tests Pour nos trois cas de test:

Hiver 2010JGA Beaulieu Cest maintenant votre tour!!! Je prend un prêt pour un quelques mois à un taux dintérêt. Jai besoin dun programme pour calculer le montant des mes taux mensuels Utilisez la méthode que nous venons de voir pour dessiner le code qui implémente le calculateur des paiments

Hiver 2010JGA Beaulieu Solution (1/4) 1.Étant donné une valeur de courrante, un taux dintérêt, et un nombre de périodes, calculez lannuité équivalant 2.Entrées et sorties Entrées Valeur du prêt (P) est un nombre réel Lintérêt mensuel (i) est un nombre réel Nombre de périodes (n) est un nombre entier Sorties: Annuité équivalent (A) est un nombre réel 3.Exemple à la main P = $10,000, i = 1%, n = 60 mois

Hiver 2010JGA Beaulieu Solution (2/4) 4.Développement de lalgorithme Ceci peut vous demander de retourner à vos notes de IGF Donnez ou entrez la valeur courante, le taux dintérêt, et le nombre de périodes 2.Calcul la valeur du facteur [P/A, i, n] 3.Calcul lannuité équivalent 4.Afficher lAnnuité

Hiver 2010JGA Beaulieu Solution (3/4) /**************************************************************************** * File: paymentCalculator.c * * Author: Prof Sylvain P. Leblanc * * Description: Given a present value, an interest rate and a number of periods, * this program calculates the equivalent annuity * * Revision History: Created 22 December 2009 * ****************************************************************************/ #include int main(void) { /* declare and initialize variables */ //p = 10000, i = 0.01 and n = 60 double p=10000, i=0.01; int n=60; double factor, a; /* Compute the value of factor [P/A,i,n] */ factor = i*pow(1+i,n)/(pow(1+i,n)-1); /*Compute the equivalent annuity */ a=p*factor; /* Print the annuity */ printf("The annuity equivalent to a present value of $%5.2f, an interest " "rate of %2.2f, and a number of period of %2d is $%5.2f\n", p,i,n,a); /* Exit Program */ getchar(); return(0); } 5 – Convertis lalgorithme en code

Hiver 2010JGA Beaulieu Solution (4/4) 6.Tests P = $10,000, i = 1%, n = 60 P = $10,000, i = 99%, n = 60 P = $10,000, i = 0%, n = 60 On a un problème.!!!

Hiver 2010JGA Beaulieu Quiz Time Which of the following is NOT part of the design methodology? a.Problem statement b.Testing c.Celebratory beer d.Input and output You are to calculate the current in a resistor (R=V/I). Give a example of tests you should perform on this code.