18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL

Slides:



Advertisements
Présentations similaires
Les fonctions A quoi ça sert ?
Advertisements

Conception de Site Webs dynamiques Cours 5
Portée des variables VBA & Excel
Fonctions & procédures
Exercices Algorithmiques
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
CPI/BTS 2 Programmation Web Introduction au PHP
Informatique T4 (FSAC1450) Introduction et Concepts de Base
Cours de programmation
Calcul et programmation au lycée avec Scilab
9/11/2004 P. Van Roy, InfoT4, S8 1 Informatique T4 (FSAC1450) LEtat et lAbstraction de Données Peter Van Roy Département dIngénierie Informatique, UCL.
Récursivité.
12/10/2004 P. Van Roy, InfoT4, S4 1 Informatique T4 (FSAC1450) Récursion sur les Entiers Peter Van Roy Département dIngénierie Informatique, UCL
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
Algorithmique et Programmation
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
Sémantique axiomatique
Algorithmique et Programmation
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Sémantique Formelle Peter Van Roy Département dIngénierie Informatique, UCL
© 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 LEtat et lAbstraction de Données Peter Van Roy Département dIngénierie Informatique,
© 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Algorithmes sur les Listes Peter Van Roy Département dIngénierie Informatique, UCL
2/11/2004 P. Van Roy, InfoT4, S7 1 Informatique T4 (FSAC1450) Sémantique Peter Van Roy Département dIngénierie Informatique, UCL
© 2007 P. Van Roy. All rights reserved. 1 FSAB 1402: Informatique 2 Récursion sur les Entiers Peter Van Roy Département dIngénierie Informatique, UCL
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.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Points importants de la semaine Les sous-programmes. Les paramètres.
Chapitre XI Gestion des erreurs et exceptions. 2 La gestion des erreurs et exceptions De nombreux problèmes peuvent survenir pendant lexécution dun programme:
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Récursion sur les Listes Peter Van Roy Département dIngénierie Informatique, UCL
FSAB1402: Informatique 2 L’État et l’Abstraction de Données
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Programmer avec lEtat Peter Van Roy Département dIngénierie Informatique, UCL
P. Van Roy, LINF LINF1251: Algorithmes sur les Listes Peter Van Roy Département dIngénierie Informatique, UCL
© 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Enregistrements et Arbres Peter Van Roy Département dIngénierie Informatique, UCL
29/9/2005 © 2005 P. Van Roy. All rights reserved. 1 FSAB 1402: Informatique 2 Récursion sur les Entiers Peter Van Roy Département dIngénierie Informatique,
26/10/2004 P. Van Roy, InfoT4, S6 1 Informatique T4 (FSAC1450) Récursion sur les Listes Peter Van Roy Département dIngénierie Informatique, UCL
Peter Van Roy Département d’Ingénierie Informatique, UCL
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
CSI3525: Concepts des Languages de Programmation
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Chapitre 3 Syntaxe et sémantique.
8PRO100 Éléments de programmation Les types composés.
Partie II Sémantique.
Sémantique dénotationnelle
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
P. Van Roy, LINF LINF1251: Sémantique Formelle Peter Van Roy Département d’Ingénierie Informatique, UCL
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Le langage Racket (Lisp)
Introduction au langage C Fonctions et Procédures
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.
Les types composés Les enregistrements.
Évaluation et application des fonctions Let f = function x -> ( function y -> x+y );; Type :int -> (int ->int) int -> int ->int f int.
Les algorithmes recursifs
LINF 1251: Introduction à l’Algorithmique et la Programmation II
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
6/10/2005 © 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Récursion sur les Listes Peter Van Roy Département d’Ingénierie Informatique,
LINF 1251: Récursion sur les Listes
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Initiation aux bases de données et à la programmation événementielle
Directives Ocaml Définition
Algorithmique Boucles et Itérations
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Introduction à l’Informatique Licence SPI Mme Delmotte.
FACTORY systemes Module 5 Section 1 Page 5-3 Les scripts de traitement FORMATION INTOUCH 7.0.
Transcription de la présentation:

18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL

18/10/2004P. Van Roy, InfoT4, S52 Conditions du test Le test a une durée dune heure, à livre fermé Le test est sur 20 points, réparti sur quatre questions Q1: 8 pts, Q2: 4 pts, Q3: 4 pts, Q4: 4 pts Le test est donné après deux séances du cours et compte pour 1/3 du score final On prend le maximum entre (1/3 * test + 2/3 * examen) et (examen)

18/10/2004P. Van Roy, InfoT4, S53 Question 1 (8 points) Définissez la fonction récursive sc(n) qui prend un entier n et qui rend un entier qui est la somme des chiffres de n. Par exemple, sc(999)=27 et sc(10101)=3. Pour lefficacité, votre solution doit utiliser un accumulateur. Pour vous aider à écrire la fonction qui utilise laccumulateur, on vous conseille dutiliser linvariant suivant: sc(n) = sc(i) + a Vous pouvez utiliser les fonctions div et mod dans votre solution. Quelles sont les valeurs initiales de i et a? Comment est-ce quon peut réduire i et augmenter a dans lappel récursif? La fonction qui utiliser laccumulateur doit être une fonction locale dans le corps de la fonction SC qui, elle, ne prend quun seul argument N.

18/10/2004P. Van Roy, InfoT4, S54 Réponse declare fun {SC N} fun {SC2 I A} if I==0 then A else {SC2 (I div 10) (I mod 10)+A} end end in {SC2 N 0} end Valeurs initiales de I et A: N et 0 Calcul avec linvariant: sc(n) = sc(i) + a = sc(i div 10) + ((i mod 10) + a) Le i devient (i div 10) et le a devient (i mod 10)+a Quand i est 0, parce que sc(0)=0 alors le a donne le résultat final

18/10/2004P. Van Roy, InfoT4, S55 Question 2 (4 points) Donnez une définition précise des concepts identificateur et identificateur libre. Donnez un exemple dun petit fragment de programme qui illustre ces deux concepts et expliquez comment.

18/10/2004P. Van Roy, InfoT4, S56 Réponse Identificateur = une chaine de caractères dans le code source dun programme qui fait référence pendant lexécution à une variable en mémoire Exemple: local X in X=2+2 end X est un identificateur dans ce fragment Identificateur libre = une occurrence dun identificateur dans un fragment de programme donné qui nest pas déclarée dans ce fragment Exemple: local X in X=Y+2 end Y est un identificateur libre dans ce fragment X nest pas libre parce quil est déclaré dans ce fragment

18/10/2004P. Van Roy, InfoT4, S57 Question 3 (4 points) Définissez la fonction OnesList qui prend une liste dentiers et qui rend le nombre de fois que lentier 1 apparaît dans la liste. Il nest pas nécessaire que votre définition utilise un accumulateur.

18/10/2004P. Van Roy, InfoT4, S58 Réponse declare fun {OnesList L} if L==nil then 0 elseif L.1==1 then 1+{OnesList L.2} else {OnesList L.2} end

18/10/2004P. Van Roy, InfoT4, S59 Question 4 (4 points) Le modèle déclaratif est caractérisé par une grande restriction : les variables ne peuvent être affectées quà une valeur. Cette restriction a de grandes conséquences sur la manière décrire les programmes dans ce modèle. Pour cette question, expliquez lavantage majeur de cette restriction. A votre avis, est-ce quon puisse exploiter cet avantage dans dautres langages de programmation tels que Java?

18/10/2004P. Van Roy, InfoT4, S510 Réponse La conséquence majeure de cette restriction est quun programme ou une partie de programme, une fois écrit, ne changera jamais son comportement. Un programme ne se souvient pas de ses appels précédents. Lavantage majeur de cette propriété est dans le domaine du génie logiciel: la maintenance du programme est grandement facilitée, parce quil ne faut pas tenir compte de lhistorique des appels des composants. Une fois écrit, on peut oublier le composant. Il y a dautres avantages, par exemple le raisonnement sur lexactitude du composant est facilité. Lavantage majeur peut être exploité dans nimport quel langage de programmation, y compris le Java. Le style déclaratif de programmation peut être plus ou moins soutenu par le langage (par exemple, par les attributs final en Java), mais le programmeur est toujours libre de suivre ce style pour en tenir les avantages, même si le langage noffre pas de soutien particulier. Par exemple, un serveur sans état (stateless server) peut être écrit dans nimporte quel langage. Le propre du modèle déclaratif de ce cours est que les programmes sont toujours déclaratifs. On voit donc lextrême limite du style déclaratif.