Abstractions procédurales Flashcards
Que fait l’abstraction procédurale ?
L’abstraction procédurale permet d’exprimer une
abstraction d’un traitement d’information.
Quels sont les inconvénients de la duplication de code ?
Cela donne du code difficile à comprendre et maintenir car le programmeur ne s’exprime pas avec des termes qui sont proches des concepts propres à l’application
Il y a trop de détails qui viennent obscurcir la logique du programme
La duplication peut introduire des bogues
Complète la phrase : L’abstraction procédurale permet au programmeur….
de définir ses propres opérations, à un niveau d’abstraction qui est plus proche des besoins de l’application
Quels sont les termes qui sont utilisés pour désigner des abstractions procédurales ?
fonction, procédure, méthode, routine, sous-routine
Complète la phrase : Un aspect critique d’une bonne programmation est….
le choix des bonnes abstractions procédurales
Quel est la différence entre l’effet de la déclaration de fonction et celui de la déclaration de variable ?
Une déclaration de fonction a le même effet qu’une déclaration de variable, sauf que la variable sera liée à une valeur fonctionnelle, donc comme si on avait fait :
‹nom› = …unefonction…
Qu’arrive t-il si une fonction est appelé ?
Lorsqu’une fonction est appelée, les paramètres actuels sont évalués, des variables pour les paramètres formels sont créés et initialisés à la valeur des paramètres actuels correspondants, et finalement le corps de la fonction est exécuté
Quel est la différence entre une fonction et une procédure ?
Les fonctions sont des abstractions procédurales qui retournent une valeur (contrairement aux procédures qui ne retournent pas de valeur)
Que fait l’énoncé return ?
C’est à l’aide de l’énoncé return à l’intérieur du corps d’une fonction, qu’on indique la valeur que la fonction retourne
Vrai ou faux ? L’énoncé return est souvent le dernier énoncé
dans le corps d’une fonction
Vrai
Vrai ou faux ?
On peut mettre l’énoncé return à n’importe quel endroit où un énoncé est permis.
Vrai, de plus, il cause une terminaison immédiate du corps de la fonction (un peu comme le break pour les boucles)
Qu’est-ce qu’est une procédure ?
Une procédure est une abstraction procédurale qui ne retourne pas de valeur
Vrai ou faux ? Les déclarations de variables à l’intérieur du corps d’une fonction sont locales à la fonction
Vrai
Les variables locales servent à quoi ?
Les variables locales permettent de mieux modulariser le code en permettant un choix de noms locaux sans risque d’interférence avec d’autres fonctions ou variables globales
Que fait l’énoncé global ?
<id.>=<expression> dans le corps d’une fonction déclare une variable locale à la fonction, à moins que global <id.> n’apparaisse dans le corps de la fonction avant le premier usage de <id.> (par convention au début)
</id.></id.></expression></id.>
À quoi servent les test unitaires ?
vérifier le comportement correct des fonctions définies
Vrai ou faux ? C’est mieux de faire les tests unitaires tôt dans le développement (aussitôt que la fonction est codée) pour éviter d’accumuler beaucoup de code non vérifié
Vrai
Que fait l’énoncé assert ?
L’expression est une condition (valeur booléenne) qui doit être vraie; un message sera imprimé si la condition n’est pas vraie
Vrai ou faux ? On a tendance à faire les tests unitaire avant même de coder ?
Vrai
Quels sont les questions de conception de base à se poser lors de la conception d’une fonction ?
Q1 : Quelle est la tâche de la fonction?
Q2 : Quels sont les paramètres de la fonction (les données sur lesquelles la fonction se base pour calculer son résultat), et quels sont leurs types (nombre quelconque, entier, texte, booléen, …)?
Q3 : Quel est le type du résultat?
Q4 : Quel est le meilleur nom pour la fonction?
Q5 : Quels sont des exemples d’utilisation?
Explique l’algorithme d’Euclide
Algorithme d’Euclide : soustraire le plus petit de x et y de l’autre nombre et répéter jusqu’à ce qu’ils soient égaux, ce sera le PGCD de x et y
Définit la spécialisation
Une fonction conçue pour un programme peut être
plus ou moins spécifique à ce programme
C’est le degré de spécialisation de la fonction
Définit la généralisation
inverse de la spécialisation
Donne un avantage et un inconvénient à une fonction spécialisée
Une fonction spécialisée est normalement plus facile à concevoir et plus performante, mais il y a de fortes chances qu’il faudra la remplacer par une fonction plus générale lors de l’évolution du code
Donne un avantage à une fonction généralisée.
L’attrait de concevoir des fonctions plus générales c’est qu’on peut plus facilement les réutiliser dans d’autres contextes
Vrai ou faux ? La généralisation d’une fonction spécifique entraine normalement l’ajout de paramètres ou l’élargissement du type des paramètres
Vrai