Académique Documents
Professionnel Documents
Culture Documents
I3 - Algorithmique
Dur e : 1h30 e Documents autoris s : AUCUN (calculatrice comprise) e Remarques : Veuillez lire attentivement les questions avant de r pondre. e Le bar` me donn est un bar` me indicatif qui pourra evoluer lors de la correction. e e e Rendez une copie propre.
Solution propos e : e 1. lisible, able, maintenable, r utilisable, portable, correct (preuve), efcace (complexit ) e e ` e ` 2. Programme = succession d tats (commencer a l tat initial pour nir a etat nal). etat = ensemble des e variables. changement d tat = utilisation instruction daffectation e 3. Donner corps aux fonctions et proc dures de la conception pr liminaire e e 4. V rier que les fonctions et proc dures fonctionnent correctement e e 5. Le fait de ne pas utiliser (ne pas connatre) la facon dont un type est cod et de nutiliser que les fonctions e et proc dures propos es pour manipuler les variables de ce type e e
n i=1
(1)i+1 i x i
Compl tez le corps de la fonction suivante qui calcule une approximation de ln(1 + x) jusquau rang e n. Utilisez uniquement les variables et param` tres donn s et nutilisez aucune autre fonction (pas danalyse e e descendante) : fonction ln1PlusX (x : Reel, n : Naturel) : Reel D claration i : Naturel e numerateur,xPuissanceI : Reel resultat : Reel debut ... 1
n Solution propos e : e fonction ln1PlusX (x : Reel, n : Naturel) : Reel D claration i : Naturel e numerateur,xPuissanceI : Reel resultat : Reel debut numerateur -1 xPuissanceI 1 resultat 0 ` pour i 1 a n faire numerateur -1*numerateur xPuissanceI x*xPuissanceI resultat resultat+numerateur/i*xPuissanceI npour retourner resultat n
` Le programme pascal suivant comporte 7 erreurs de syntaxe. Identiez les en donnant a chaque fois le num ro de la ligne, lerreur commise et la solution. e
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 program n b p a r f a i t f u n c t i o n e s t U n D i v i s e u r ( a , b : I n t e g e r ) : Boolean ; begin e s t U n D i v i s e u r : = a mod b=0 end ; { e s t U n D i v i s e u r } f u n c t i o n sommeDesDiviseurs ( n : Integer ) : Integer ; v a r somme , i : I n t e g e r ; begin somme = 0 ; f o r i : = 1 t o n d i v 2 do i f estUnDiviseur (n , i ) then somme : = somme+ i ; s o m m e D e s D i v i s e u r s : = somme end ; { s o m m e D e s D i v i s e u r s } f u n c t i o n e s t P a r f a i t : Boolean ; begin e s t P a r f a i t : = ( n= s o m m e D e s D i v i s e u r s ( n ) ) end ; { e s t P a r f a i t } f o n c t i o n obtenirBorneMax ( ) ; v a r borneMax : Integer ; begin w r i t e ( V a l e u r maximale d a f f i c h a g e d e s nombres p a r f a i t s : ) ; r e a d l n ( borneMax ) ; o b t e n i r B o r n e M a x : = borneMax end ; { o b t e n i r B o r n e M a x } procedure afficherNombresParfaitsJusquA ( n : Integer ) ; var i : Integer ; begin f o r i : = 1 t o n do i f e s t P a r f a i t ( i ) then write ( i , ); writeln ( ) end ; { a f f i c h e r N o m b r e s P a r f a i t s J u s q u A } procedure afficherDesNombresParfaits ( ) ; v a r nb : Integer ; begin nb : = o b t e n i r B o r n e M a x ( ) ; a f f i c h e r N o m b r e s P a r f a i t s J u s q u A ( nb ) end ; { a f f i c h e r D e s N o m b r e s P a r f a i t s } begin afficherDesNombresParfaits () end
Solution propos e : e 1. ligne 1 : manque ; (nbparfait ;) 2. ligne 11 : manque un : (somme :=0 ;) 3. ligne 18 : manque le param` tre de la fonction est parfait ((n : Integer)) e 4. ligne 23 : manque le type de retour ( : Boolean) ` 5. ligne 23 : fonction a la place de function 6. ligne 26 : remplacer les par 3