Fonctions Abstractions procédurales.

Slides:



Advertisements
Présentations similaires
Total France - RM/MKF/RES/PCS/SIS - V1.2 - Février LAVAGE Multiprogramme et Haute Pression TPE M25 Paramètres d’installation Document à l’usage.
Advertisements

Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
Outils logiciel pour la programmation en C. 2 Automatiser la compilation : make make est un utilitaire présent dans toute les distribution de linux >
Les sauvegardes Pourquoi sauvegarder ? Que sauvegarder ? Quand sauvegarder ? Ou sauvegarder ? Et comment ?
4, rue du 11 novembre Lucé Vous présente le Vous présente le METIER DE Karim : METIER DE Karim : DEVELOPPEUR ! Professeure de technologie.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
I. Les différentes bases utilisées en numérique. La base d écimale, base de 10 ( ou codage de 10) qui utilise 10 symboles: 0 ; 1 ;2 ; 3 ; 4 ; 5 ; 6; 7.
1 Chapitre 2 La numération binaire. 2 Chapitre 2 : La numération binaire Introduction 1 - Le système binaire 2 - La conversion des nombres entiers 2.1.
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 25/09/2016 ● Algorithmique & Langage.
1/1/ Synthèse TD 3 Classe et adresse IP Bertrand Chesneau Morgan Nouet.
CINI – Li115 1 Semaine 6 Les fonctions ● Pourquoi écrire des fonctions ? ● Définition de fonctions ● Fonction main ● Appels de fonctions ● Portée des variables.
SQL partie 5 1 LMD create – update – primary key secondary key.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
A9 - Utilisation de composants avec des vulnérabilités connues.
Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
Tableaux en C Mardi 2/05.
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Suites ordonnées ou mettre de l’ordre
Exploitation de logiciels :
Exercice 8 : Déterminez l’algorithme permettant à votre calculatrice de donner les racines de n’importe quel polynôme de degré 2.
Les distributions en classes
DOC MYCK : Programmation
Un Algorithme , c'est Quoi ?
Cliquer pour continuer Mettre Password : actuellement : 9999
Analyse fonctionnelle SYSML (1/3) Portail automatique
Semaine #1 INF130 par Frédérick Henri.
Représentation de l’information en binaire:
Javadoc et débogueur Semaine 03 Version A17.
3ème_ Collège NDS Arithmétique Niveau 0.
AO (Architecture des ordinateurs)
Principes de programmation (suite)
3°) Décomposition d’un nombre entier en produit d’entiers :
de toute série statistique
Semaine 11 Les pointeurs (suite)
Les fonctions.
Les fonctions.
Rapports et proportions
Exercice 2 : Déterminez les séries suivantes ( on ne donnera qu’une seule réponse possible ) satisfaisant les critères suivants : 1°) effectif 6, moyenne.
3ème Livre 1 Rappel.
Javadoc et débogueur Semaine 03 Version A16.
Un Algorithme , c'est Quoi ?
Création d’une sous rubrique
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Semaine #4 INF130 par Frédérick Henri.
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
Programmation en C++ C++ de base
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Les structures en langage C
Type Concret – Type Abstrait
ACP Analyse en Composantes Principales
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
Les Systèmes Automatisés. . Simples ou complexes, les systèmes automatisés sont partout dans notre environnement quotidien Connaître leur fonctionnement.
Les classes et les objets
Programmation Android Les listes
Semaine #3 INF130 par Frédérick Henri.
2.4 La loi de vitesse d’une réaction chimique
Tableau de valeurs avec la calculatrice graphique
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus.
Transition vers l’assignation automatique des stages à la résidence
RABAH M ed Ali 2018/2019
Flowchart Itération Cours 04.
Tableaux Cours 06.
Tableau de bord d’un système de recommandation
Collaborateurs & managers
Definition de html sommaire. Présentation de html, css et javascript Module 1.
1-Écrire un nombre Écris les nombres dans lesquels tu entends 7
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
CE1 Module 5 Séance 1
Qu’est ce qu’une page web? Comment fonctionne un site web?
Transcription de la présentation:

Fonctions Abstractions procédurales

Problème 1 Analogie avec une recette de cuisine (préparation du vol-au-vent) Source: www.750gr.com Comment faire la béchamel maison ?

Problème 1 Analogie avec une recette de cuisine … La béchamel est décrite à un autre endroit du site. Pourquoi? Ne pas surcharger la recette et ainsi découper le problème en sous problème == Abstraction On voit clairement les grandes étapes Plus simple à comprendre Ne pas réécrire 50 fois la même chose mais plutôt ne l’écrire qu’une seule fois et pouvoir la réutiliser pour d’autres recettes == Réutilisation

Description Analogie avec une recette de cuisine … Il existe un mécanisme similaire en programmation dénommé fonction (ou Abstraction Procédurale) Le développeur écrit à un endroit unique le code qu’il veut rendre réutilisable et lui donne un nom == déclaration de la fonction Aux endroits où il veut réutiliser le code, le développeur demande l’exécution en référençant le nom de la fonction = appel à la fonction

Exemple Considérons le tableau tnom suivant: Julie Sophie John Arthur Maxime 1 2 3 4 Considérons le tableau tnom suivant: Considérons le code suivant : Que sera-t-il affiché ? FONCTION bienvenue() { ECRIRE “Nous vous souhaitons la bienvenue à l’ISFCE et la réussite de vos études entreprises chez nous.” } ECRIRE “Bonjour” + tnom[1] + RETOURLIGNE bienvenue() ECRIRE “Bonjour” + tnom[2] + RETOURLIGNE

Exemple Tableau tnom : Code : FONCTION bienvenue() { Julie Sophie John Arthur Maxime 1 2 3 4 Tableau tnom : Code : FONCTION bienvenue() { ECRIRE “Nous vous souhaitons la bienvenue à l’ISFCE et la réussite de vos études entreprises chez nous.” } ECRIRE “Bonjour” + tnom[1] + RETOURLIGNE bienvenue() ECRIRE “Bonjour” + tnom[2] + RETOURLIGNE Déclaration de fonction Appels de la fonction

Déclaration et Appel Il est important de comprendre que le fait de déclarer une fonction n'entraîne pas l’exécution du code. Il est nécessaire d’appeler la fonction pour l'exécuter. Une déclaration de fonction sans appel ne sert à rien.

Problème 2 Imaginons que l’on voudrait réutiliser du code mais préciser, lorsqu’on appelle la fonction, avec quelles données travailler Exemple : Introduire la ligne bonjour dans la fonction ECRIRE “Bonjour” + tnom[1] + RETOURLIGNE bienvenue() ECRIRE “Bonjour” + tnom[2] + RETOURLIGNE Il faut pour cela préciser des paramètres à la fonction

Problème 2 FONCTION bienvenue(nom) { ECRIRE “Bonjour” + nom + RETOURLIGNE ECRIRE “Nous vous souhaitons la bienvenue à l’ISFCE et la réussite de vos études entreprises chez nous.” } Les paramètres permettent de réutiliser du code en changeant les données avec lesquelles le code est utilisé == généralisation Il faudra préciser la valeur du paramètre au moment de l’appel de la fonction (avec une variable ou une constante)

Exemple 1 FONCTION double(nombre) { d ← 2 * nombre ECRIRE d } ECRIRE “Voici le double de 6” double(6) // Appel avec une constante ECRIRE “Voici le double de 50” a ← 50 double(a) // Appel avec une variable

Exemple 2 FONCTION puissance(a, b) { i ← 0 res ← 1 TANT QUE i < b FAIRE res ← res * a i ← i + 1 FIN TANT QUE ECRIRE res } puissance(6, 2) puissance(5, 0) x ← 3 y ← 2 puissance(x, y) puissance(y, x) puissance(x, x) a ← 2 b ← 5 puissance(a, b) puissance(b, a) puissance(a, a) puissance(b, 3)

Exemple 2 + réponses FONCTION puissance(a, b) { i ← 0 res ← 1 TANT QUE i < b FAIRE res ← res * a i ← i + 1 FIN TANT QUE ECRIRE res } puissance(6, 2) // 36 puissance(5, 0) // 1 x ← 3 y ← 2 puissance(x, y) // 9 puissance(y, x) // 8 puissance(x, x) // 27 a ← 2 b ← 5 puissance(a, b) // 32 puissance(b, a) // 25 puissance(a, a) // 4 puissance(b, 3) // 125

Paramètres formels et effectifs Sur base de l’exemple précédent, il est intéressant de noter qu’il n’est pas nécessaire que les paramètres dans la déclaration de la fonction (« paramètre formel ») et ceux dans l’appel à la fonction (« paramètre effectif ») aient le même nom. D’ailleurs, c’est l’ordre qui est important pour donner la valeur aux paramètres formels et non le nom.

Problème 3 Il est parfois utile de pouvoir récupérer la valeur calculée dans une fonction afin de la réutiliser dans le reste du code. Il faudrait pouvoir faire “sortir” la valeur calculée de la fonction La clause RETOURNE permet de faire sortir une valeur qui peut être affectée dans une autre variable Attention: Une fois que la clause RETOURNE a été exécutée, même s’il reste du code, l’exécution de la fonction s’arrête et le reste du programme continue.

Exemple FONCTION puissance(a, b) { i ← 0 res ← 1 TANT QUE i < b FAIRE res ← res * a i ← i + 1 FIN TANT QUE RETOURNE res } a ← puissance(2, 2) b ← puissance(5, a) ECRIRE b

Exercices Que va-t-il s’afficher à l’écran? 52/102/4

Exercices Réalisez un programme capable de décomposer un montant (en euro, aucun centime) en détaillant les différentes coupures qui le composent. La décomposition doit fournir le moins de pièces et de billets possibles Exemple pour 2640 EUR 5 coupure(s) de 500 EUR 1 coupure(s) de 100 EUR 2 coupure(s) de 20 EUR Ecrire pour ce faire une fonction qui prend en paramètre un montant et une coupure, affiche le nombre de coupures et retourne le reste. Exemple : coupe( 2640, 500 ); Affiche 5 Retourne 140

Exercices Réalisez un programme capable de décomposer une série de montants en détaillant les différentes coupures qui le composent. Utilisez pour ce faire la fonction coupe de l’exercice précédent. Les montants sont donnés en custom input, un montant par ligne, la dernière valeur est « q ». Organisez votre code intégralement en fonctions. La fonction principale s’appelera main() qui sera appelée au chargement du programme). Enrichissez ce programme en distinguant les pièces des billets, ainsi que le singulier du pluriel. Exemple pour 44,50 EUR : 2 coupures de 20 EUR 2 pièces de 2 EUR 1 pièce de 0,50 EUR