IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 32
    Points
    32
    Par défaut une fonction qui compte à partir d'une liste de nombres, le nombre de nombres plus petits ou égaux qu'un nom
    Bonjour,

    je viens de débuter en CLISP.
    Je voudrais créer une fonction récursive qui compte à partir d'une liste composée de nombres,
    le nombre de nombres plus petit et égaux à partir d'un nombre donné.
    Comme par exemple : (inf 12 '(3 5 15 12 24 2 35)) => 4

    Voila ce que j'ai fait pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (defun inf (x liste)
     (cond
      ((not liste) nil)
      ((equal (car liste) (>= x)) (+ 1(inf x (cdr liste))))
      (t (inf x (cdr liste))) ))
    Mais, il me retourne tous le temps nil.
    Quelqu'un pourrait m'expliquer où je me suis planté.

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 32
    Points
    32
    Par défaut
    Finalement je l'ai résolu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (defun inf (n l)
    (cond
    ((not l) 0)
    ((>= n (car l)) (+ 1 (inf n (cdr l))))
    (t (inf n(cdr l)))))

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 152
    Points : 275
    Points
    275
    Par défaut
    Ça semble correct, il ne faut que corriger l’inégalite: (car l) doit être plus petit ou égale que n, ce qui s’écrit comme (<= (car l) n) et équivaut à (> n (car l)).

    Cet algorithme récursif est inefficace. Normalement, on organisait une boucle ou employait la fonction count-if.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 32
    Points
    32
    Par défaut
    Très bien, je vais corriger ça.
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. appel d'une fonction vb a partir d'une fonction javascript!
    Par labib23dz dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/07/2009, 11h04
  2. Réponses: 17
    Dernier message: 05/02/2009, 15h48
  3. Création d'une fonction qui prend en argument une liste de cellule
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/12/2007, 20h49
  4. Appel à une fonction qui se trouve sur une autre page
    Par pierrot10 dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2007, 12h36
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo