Section VIII Modularité Partie II

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Introduction a L’algorithme
Tris.
Chapitre annexe. Récursivité
Algorithmique (suite)
Fonctions & procédures
Introduction à l’Algorithmique
DECLARATION DE VARIABLES
Algorithmique Résume.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
Niveau: 4ème Math Prof: Donia JEBALI Année Scolaire 2007/2008
Exercices Algorithmiques
C.
Section VII Programmation modulaire Algorithmes et résolution de problèmes FGE.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Section VI Structures répétitives (suite)
Les bases de l’Algorithmique
Introduction à la programmation (420-PK2-SL) cours 3 Gestion des applications Technologie de linformation (LEA.BW)
La Kessamo « » (Caisse à mots)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Section IV Structures conditionnelles
Partie 1 Etude de l'existant
Récursivité.
Algorithmes et résolution de problèmes FGE
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Démarche de résolution de problèmes
Section XI Traitement de fichiers
Algorithmique et Programmation
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les instructions PHP pour l'accès à une base de données MySql
Programmation fonctionnelle Le langage LISP
Algorithmique et Programmation
Algorithmes et résolution de problèmes FGE
Algorithmes et résolution de problèmes FGE
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche.
Messages Pas de dépannage mardi le 26 à 11h30. Achat de groupe de Matlab version étudiante?
Procédures et fonctions
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Python Fonction et procédure
Introduction à la programmation (420-PK2-SL) cours 3 Gestion des applications Technologie de l’information (LEA.BW)
chapitre -1- OPERATIONS [B] REGLES DE PRIORITE (f n°103) lundi 15 septembre 2014  rappels de 6°  du nouveau en 5°  applications  exercices  Page.
8PRO100 Éléments de programmation Comment répéter plusieurs fois une séquence d’instructions.
Décomposition et paramétrage des algorithmes
Un survol du language C.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Introduction au langage C Fonctions et Procédures
La Kessamo « » (Caisse à mots)
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
Introduction à la récursivité
 Formulaires HTML : traiter les entrées utilisateur
Démarche de résolution
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Module algorithmique et programmation
Introduction à la programmation (420-PK2-SL) cours 8
Scripts et fonctions Instructions de contrôle
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Tour rapide d’un premier programme SPARC v9
Objets et Actions Élémentaires.
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Introduction à l’Informatique Licence SPI Mme Delmotte.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

Section VIII Modularité Partie II Algorithmes et résolution de problèmes 18279 FGE

Contenu Révision (modules simples) Modules Exemples Exercices Avec paramètres Avec valeur de retour Exemples Exercices Dont un à remettre Devoir #7

Révision - modules Le module principal C'est le point de départ du flux d'exécution C'est aussi à la fin du module principal que le flux d'exécution se termine Dans l'organigramme, c'est le seul module ayant les symboles Début et Fin Début Fin .

Révision – modules (suite) Les modules auxiliaires Ce sont les modules exploités directement ou indirectement par le module principal Module principal Module A Module B Module C Module D Module E Modules auxiliaires

Révision – modules (suite) Les modules auxiliaires (suite) Pour les distinguer du module principal, les modules auxiliaires commencent par Entrer : indique que le flux d'exécution entre dans le module et se terminent par Retourner : indique que le flux d'exécution retourne au module de provenance du flux Entrer Retourner . \\ Module auxiliaire ENTRER . RETOURNER

Révision – modules simples Module dans sa plus simple expression Débute par DÉBUT (pour le module principal) ou ENTRER (pour les modules auxiliaires) Terminé par FIN (pour le module principal) ou RETOURNER (pour les modules auxiliaires) Pour les modules auxiliaires Appelés à l'aide du symbole (pour l'organigramme) ou de l'opération EXÉCUTER (pour le pseudo-code) Accompagnés d'un commentaire pour identifier le nom du module auxiliaire

Révision – modules simples (suite) Heures > 40? Oui Non Paie = Heures * Taux Sup = Taux * 1.5 * (Heures - 40) Paie = Reg + Sup Entrer Écrire Nom,Numéro, Paie Retourner Reg = Taux * 40 Lire Nom,Numéro, Heures,Taux Module TraiterEmployé Compte  10? Oui Non TraiterEmployé Compte = Compte + 1 Début Fin Compte = 1 Exemple

Révision – modules simples (suite) Exemple (suite) \\ Module principal DÉBUT Compte = 1 TANTQUE Compte  10 FAIRE EXÉCUTER TraiterEmployé Compte = Compte + 1 FINTANTQUE FIN \\ Module TraiterEmployé ENTRER LIRE Nom, Numéro, Heures Taux SI Heure > 40 ALORS Reg = Taux * 40 Sup = Taux * 1.5 * (Heures-40) Paie = Reg + Sup SINON Paie = Heures * Taux FINSI ÉCRIRE Nom, Numéro, Paie RETOURNER

Modules avec paramètres Les paramètres permettent à un module auxiliaire de recevoir des valeurs directement du module appelant Module appelant : énumère entre parenthèses les valeurs transmises dans l'opération d'appel où V1, V2, V3, … sont des valeurs (d'expressions et/ou variables) \\ Appel de module EXÉCUTER Nom_du_module(V1, V2, V3, …) Nom_du_module (V1, V2, V3, …)

Modules avec paramètres (suite) Module appelé : reçoit les valeurs transmises via des variables énumérées dans l'opération d'entrée où V1, V2, V3, … sont des variables \\ Module appelé ENTRER V1, V2, V3, … Entrer V1, V2, V3, …

Modules avec paramètres (suite) Exemple Algorithme transformant une séquence de températures Celsius en températures Fahrenheit équivalentes Module principal : boucle affichant les températures de 0C à 20C converties en F Module auxiliaire : reçoit la température en C via un paramètre et affiche la température équivalente en F.

Modules avec paramètres (suite) TempCel  20? Oui Non Farhrenheit(TempCel) TempCel = TempCel + 1 Début Fin TempCel = 0 Exemple (suite) Module principal \\ Module principal DÉBUT POUR TempCel = 0 JUSQU'À 20 FAIRE EXÉCUTER Fahrenheit(TempCel) FINPOUR FIN

Modules avec paramètres (suite) Exemple (suite) Module auxiliaire Entrer Celsius Retourner Écrire TempFahr TempFahr = (Celsius * 9/5) + 32 \\ Module auxiliaire Fahrenheit ENTRER Celsius TempFahr = (Celsius * 9/5) + 32 ÉCRIRE TempFahr RETOURNER

Modules avec paramètres (suite) Un module auxiliaire peut accepter plusieurs paramètres Le module appelant doit fournir le nombre adéquat de valeurs lors de l'appel À se rappeler Le module appelant fourni des valeurs au module appelé (entre parenthèses) Le module appelé reçoit ces valeurs dans des variables

Modules avec paramètres (suite) Paramètre : variable apparaissant à l'entrée d'un module et destinée à recevoir une valeur fournie lors de l'appel Argument : valeur fournie lors de l'appel d'un module et destinée à être reçue dans un paramètre Lors de l'appel d'un module, les arguments sont copiés dans les paramètres

Modules avec paramètres (suite) Rappel (suite) Arguments (valeurs) \\ Module principal DÉBUT EXÉCUTER AfficheDonnées("Gustave", 2021234, 75) FIN \\ Module auxiliaire AfficheDonnées ENTRER Nom, Numéro, Note ÉCRIRE Nom, Numéro, Note RETOURNER Paramètres (variables)

Modules avec valeur de retour Les exemples de modules auxiliaires vus à date affichent leurs résultats à l'écran \\ Module TraiterEmployé ENTRER LIRE Nom, Numéro, Heures Taux SI Heure > 40 ALORS RegPaie = Taux * 40 SupPaie = Taux * (Heures-40) Paie = RegPaie + SupPaie SINON Paie = Heures * Taux FINSI ÉCRIRE Nom, Numéro, Paie RETOURNER \\ Module Fahrenheit ENTRER Celsius TempFahr = (Celsius * 9/5) + 32 ÉCRIRE TempFahr RETOURNER \\ Module AfficheDonnées ENTRER Nom, Numéro, Note ÉCRIRE Nom, Numéro, Note RETOURNER

Modules avec valeur de retour (suite) Il est possible pour un module auxiliaire de retourner un résultat au module appelant Retourner un résultat ne signifie pas l'afficher, mais plutôt le remettre au module appelant qui pourra en disposer comme bon lui semble Analogie Lorsqu'on demande la valeur d'une variable, cette valeur n'est pas affichée à l'écran DÉBUT LIRE X Y = X + 1 FIN

Modules avec valeur de retour (suite) Les module auxiliaires ne retournant pas un résultat sont communément appelés des procédures ou sous-routines Ces modules sont terminés par RETOURNER Les module auxiliaires retournant un résultat sont communément appelés des fonctions Le résultat à retourné est indiquer à droite de l'identificateur RETOURNER Le résultat retourné est appelé la valeur de retour du module

Modules avec valeur de retour (suite) Exemple Module auxiliaire retournant le plus grand de trois nombres fournis en paramètres \\ Module auxiliaire MaximumDeTrois \\ Reçoit trois valeurs comme paramètres \\ Retourne la plus grande des trois ENTRER Nombre1, Nombre2, Nombre3 Res = Nombre1 SI Nombre2 > Res ALORS Res = Nombre2 FINSI SI Nombre3 > Res ALORS Res = Nombre3 RETOURNER Res Valeur de retour

Modules avec valeur de retour (suite) Le module appelant peut récupérer la valeur de retour comme on obtient la valeur d'une variable Dans le pseudo-code, le mot-clé EXÉCUTER peut être omis lors de l'appel à une fonction (i.e. un module avec valeur de retour) \\ Module principal DÉBUT LIRE X, Y, Z M = EXÉCUTER MaximumDeTrois(X, Y, Z) ÉCRIRE "Maximum =", M ÉCRIRE EXÉCUTER MaximumDeTrois(X*17, 133, Z%2) FIN M = MaximumDeTrois(X, Y, Z)

Exercice #1 Écrivez un algorithme (pseudo-codes) appliquant un opérateur arithmétique à deux valeurs Un premier module doit demander à l'utilisateur d'entrer un opérateur parmi + (addition),  (soustraction),  (multiplication) ou / (division) Le module doit valider l'entrée. Si elle est invalide, un message d'erreur doit être affiché puis la lecture refaite. Ce processus itère jusqu'à ce qu'un opérateur valide soit entré Le module doit retourner l'opérateur entré par l'utilisateur

Exercice #1 (suite) Suite du problème à résoudre Écrivez un second module auxiliaire acceptant en paramètre Un opérateur arithmétique Deux valeurs Le module doit appliquer l'opérateur aux valeurs et retourner le résultat Finalement, écrivez un module principal exploitant ces modules auxiliaires pour lire un opérateur et deux valeurs, puis afficher le résultat obtenu en appliquant l'opérateur aux deux valeurs

Exercice #1 (suite) Solution Module LireOpérateur \\ Module auxiliaire LireOpérateur ENTRER RÉPÉTER ÉCRIRE "Opérateur (+,-,x ou /) ? " LIRE Op SI Op != '+' ET Op != '-' ET Op != 'x' ET Op != '/' ALORS ÉCRIRE "*** Opérateur invalide!" FINSI JUSQU'À Op = '+' OU Op = '-' OU Op = 'x' OU Op = '/' RETOURNER Op

Exercice #1 (suite) Solution (suite) Module Calculer  Module principal \\ Module auxiliaire Calculer ENTRER Op, V1, V2 SI Op = '+' ALORS Res = V1 + V2 SINON SI Op = '-' ALORS Res = V1 - V2 SINON SI Op = 'x' ALORS Res = V1 * V2 SINON SI Op = '/' ALORS Res = V1 / V2 FINSI RETOURNER Res \\ Module principal DÉBUT \\ Lire données ÉCRIRE "Deux valeurs?" LIRE N1, N2 Op = LireOpérateur \\ Afficher le résultat Res = Calculer(Op, N1, N2) ÉCRIRE "=", Res FIN

Devoir #7 Énoncé du devoir disponible sur WebCT Jeu de craps modulaire (jeu de casino, avec deux dés) Vous devez soumettre Un fichier LARP (le pseudo-code) Un fichier Word (page titre) À remettre avant le prochain cours

Exercice #2 Écrivez le pseudo-code du module suivant Le nom du module est Puissance Accepte comme paramètres deux entiers x et p Calcule et retourne le résultat xp (i.e. x à la puissance p) Écrivez aussi l'organigramme d'un module principal exploitant le module Puissance afin de calculer nn+1 pour un entier n lu Vous devez remettre à l'enseignant vos algorithmes