Bonjour,

II. À partir d'une liste dont les éléments sont du type nom de l'étudiant + notes, comme :

'((toto 10 10 10)
(titi 10 20 15)
(tata 18 16 14) )

1. Faire une fonction qui génère une liste de doublets dont le premier élément est le nom de l'étudiant et le second la moyenne de ses notes.



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
(defun moyenne (liste &optional n)
  (cond
    ((not liste) nil) 
    ((and (listp (car liste)) (> (cadar liste) 10))
     (cons (car liste)  (set n (+ n (cadar liste)))) (moyenne (cdr liste)))
    ((moyenne (cdr liste)))))
moyenne
 
[235]> (moyenne '((toto 10 10 10) (titi 10 20 15) (tata 18 16 14) ))
 
*** - +: nil is not a number

quelqu'un peut m'aider svp