Introduction aux Langages de Programmation

publicité
Introduction aux
Langages de Programmation
20 septembre 2007
Nom
Prénom
Login
Passwd
Espace disque utilisé
A
__________
__________
__________
__________
__________
B
(de blag (nb)
(if (< nb 4)
(if (= nb 1)
t
())
(blag (- nb 4))))
Listes en LISP
1) Remplissez les blancs. . .
?
=
?
=
?
=
?
=
?
=
?
=
?
=
?
=
2) Donnez toutes les étapes suivies par LISP
lors de l’évaluation des commandes (blag 3),
(blag 4),
(blag 5) et (blag 6).
C
1. Écrire une fonction qui répond t si ses
deux arguments entiers positifs ont un
autre diviseur entier que 1 (et () sinon).
Exemple : divcom(7,25) renvoie (), tandis que divcom(24,72) renvoie t.
(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
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.
Écrire Lisp
2. Écrire une fonction LISP qui renvoie t si
son paramètre est le carré d’un nombre
entier (et () sinon).
? (estcarre 16)
= t
3. Donner une propriété mathématique permettant 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 t si le paramè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 l et 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 l et 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 positif n, donnez une fonction qui renvoie
le nombre entier r qui est le plus petit
nombre entier dont le carré soit supérieur ou égal à n.
le nombre entier r qui est le plus petit
nombre entier dont le carré soit supérieur ou égal à n.
r 2 ≥ n et ∀x ∈ N, x < r =⇒ x2 < n
r 2 ≥ n et ∀x ∈ N, 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 1 des é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 2 des é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.
print racine (8)
=> 3
2. Corneille : Faire une fonction qui prend
en paramètre une liste et renvoie la liste
des racine 3 des éléments de la liste.
print corneille(1 5 32)
=> [1, 3, 6]
3. Chic : Faire une fonction python qui
fait la somme des n premiers entiers impairs, où n est sont paramètre.
Exemple :
print chic(3)
=> 9
4. Foo : Faire une fonction python qui fait
la somme des carrés des n premiers entiers pairs, où n est sont paramètre.
Exemple :
print chic(3)
=> 20
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 positif n, donnez une fonction qui renvoie
1
2
au sens évoqué ci-dessus
au sens évoqué ci-dessus
3
au sens évoqué ci-dessus
Téléchargement