Introduction aux
Langages de Programmation
20 septembre 2007
Nom __________
Prénom __________
Login __________
Passwd __________
Espace disque utilisé __________
A Listes en LISP
1) Remplissez les blancs. . .
? (caddr ’(((b) (2 3)) + b (c d)))
= ___________
? (cadr ’((1 2 (3)) (b (c d))))
= ___________
? (car ’((+ (2) 3) (- b (c d))))
= ___________
? (caar ’((+ 1 3) (a b (c d))))
= ___________
? (cadar ’((cons () (2)) (- b (c))))
= ___________
? (cadr ’((+ 2 3) (- b (c d))))
= ___________
? (______ ’((1 2 3) (b) (c d))))
= (b)
? (______ ’((1 2 3) (a b (c d))))
= b
B Utiliser Lisp
1) Faire tourner à la main la fonction fol avec
comme paramètres 5, puis 6, puis 7, puis 8.
Que fait la fonction fol ?
(de fol (n)
(folle n 3 1 1))
(de folle (a b c d)
(if (= a 0)
b
(folle (- a 1)
(/ (* b c) d)
b c)))
On fera bien attention à afficher toutes les
étapes suivies par l’interprète au cours de cette
évaluation.
2) Donnez toutes les étapes suivies par LISP
lors de l’évaluation des commandes (blag 3),
(blag 4),
(blag 5) et (blag 6).
(de blag (nb)
(if (< nb 4)
(if (= nb 1)
t
())
(blag (- nb 4))))
C Écrire Lisp
1. Écrire une fonction qui répond tsi ses
deux arguments entiers positifs ont un
autre diviseur entier que 1 (et () sinon).
Exemple : divcom(7,25) renvoie (), tan-
dis que divcom(24,72) renvoie t.
2. Écrire une fonction LISP qui renvoie tsi
son paramètre est le carré d’un nombre
entier (et () sinon).
? (estcarre 16)
= t
3. Donner une propriété mathématique per-
mettant de caractériser les multiples de 9
(exemple absurde : “n est un multiple
de 3 ssi n+3 est négatif.”). Écrire une
fonction LISP qui renvoie tsi le para-
mètre est multiple de 3 (et () sinon).
D Cinq fonctions LISP
1. Carrer : Vous allez maintenant écrire
une fonction qui prend en paramètre une
liste let qui renvoie une liste formée du
carré de tous les éléments de la liste l.
? (carrer ’(1 5 32))
= (1 25 1024)
2. SomCar : Écrivez une fonction qui prend
en paramètre une liste let qui renvoie
la somme des carrés de tous les éléments
de la liste l.
? (somcar ’(1 5 32))
= 1050
3. Racine : Soit un nombre entier posi-
tif n, donnez une fonction qui renvoie
le nombre entier rqui est le plus petit
nombre entier dont le carré soit supé-
rieur ou égal à n.
r2net xN, x < r =x2< n
? (racine 8)
= 3
4. Corneille : Faire une fonction qui prend
en paramètre une liste et renvoie la somme
des racine 1des éléments de la liste.
? (corneille ’(1 5 32))
= 10
5. Pie : Faire une fonction qui prend en
paramètre une liste et renvoie la liste des
racine 2des éléments de la liste.
? (pie ’(1 5 32))
= (1 3 6)
E Utiliser Python
Faire tourner le programme suivant et, donc
afficher, exactement, ce que donne python.
def fol (n):
return fo (n, 3, 1, 1)
def fo (a, b, c, d):
if a == 0:
return b
return fo (a-1,(b + c)-d,b,c)
print 5,fol(5)
print 7,fol(7)
print 8,fol(8)
def look (L):
LT = []
for z in L:
LT.insert(0, z * z)
return LT
print look ([7,5,3])
F Quatre fonctions Python
1. Racine : Soit un nombre entier posi-
tif n, donnez une fonction qui renvoie
1au sens évoqué ci-dessus
2au sens évoqué ci-dessus
le nombre entier rqui est le plus petit
nombre entier dont le carré soit supé-
rieur ou égal à n.
r2net xN, x < r =x2< n
print racine (8)
=> 3
2. Corneille : Faire une fonction qui prend
en paramètre une liste et renvoie la liste
des racine 3des éléments de la liste.
print corneille(1 5 32)
=> [1, 3, 6]
3. Chic : Faire une fonction python qui
fait la somme des npremiers entiers im-
pairs, où nest sont paramètre.
Exemple :
print chic(3)
=> 9
4. Foo : Faire une fonction python qui fait
la somme des carrés des npremiers en-
tiers pairs, où nest sont paramètre.
Exemple :
print chic(3)
=> 20
3au sens évoqué ci-dessus
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !