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

Python Discussion :

Trouver séquence incrémentale de n nombres


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut Trouver séquence incrémentale de n nombres
    Hello,
    le titre est peut-être pas très explicite alors voici des explications.
    Soit une liste de 10 nombres.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    l1=[1,2,3,4,5,6,7,8,9,10]
    # ou
    l2 = [1,2,3,8,9,10,11,5,6,7]
    trouver une fonction qui renvoie une liste de tuples constitués de n nombres qui se suivent à partir d'une liste de nombres. Cette liste et n étant fournis en paramètres de la fonction.
    Exemple pour l1 avec n = 3 :
    [(1,2,3),(4,5,6),(7,8,9)]
    Exemple pour l2 avec n = 3 :
    [(1,2,3),(8,9,10),(5,6,7)]
    j'espère que c'est assez clair.
    Ami calmant, J.P

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par jurassic pork Voir le message
    j'espère que c'est assez clair.
    avec les exemples oui ça va.

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def genere(l, *, n=1):
    	return tuple(l[i:i+n] for i in range(0, len(l) - len(l)%n, n))
     
    l=tuple(range(1, 11))
    print(genere(l, n=3))
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Merci bien Sve@r cela semble fonctionner pour 3 ( j'ai remplacé ton tuple du return par un list car je voulais une liste) mais j'ai un problème par exemple avec n=2 avec cette liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l1=[1,2,3,4,18,19,20,21,22,100]
    j'obtiens pour n=2 :
    [(1, 2), (3, 4), (18, 19), (20, 21), (22, 100)]
    le dernier tuple n'est pas bon.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    le dernier tuple n'est pas bon.
    Pour obtenir une liste au lieu d'un tuple c'est un détail (moi je pars toujours du minimum nécessaire et ensuite, si besoin, on peut alors caster le retour de la fonction) mais je ne comprends pas pourquoi le dernier tuple n'est pas bon.
    Ta liste initiale l1=[1,2,3,4,18,19,20,21,22,100] contient 10 éléments. Pour n=2 j'ai compris que ça devait retourner 5 tuples de 2 éléments(1) ce qui est bel et bien le cas. Qu'ai-je donc raté ???

    (1) en fait là où j'ai eu une difficulté c'est quand la liste de départ n'était pas multiple de n. Dans mon premier essai ça renvoyait [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10,)] d'où cet empirique len(l) - len(l)%n pour arrêter à "multiple de n inférieur ou égal à len(l)"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ta liste initiale l1=[1,2,3,4,18,19,20,21,22,100] contient 10 éléments. Pour n=2 j'ai compris que ça devait retourner 5 tuples de 2 éléments(1) ce qui est bel et bien le cas.
    ben non en fait, 100 n'est pas 22+1 alors il ne faut prendre le tuple et en fait la fonction ne fonctionne pas (même pour 3 mes exemples sont mal choisis essayer avec [8,9,10,40,11,12,13,14,15,16] qui doit renvoyer [(8,9,10),(11,12,13),(14,15,16)] )

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Si on cherche un peu sur Internet pour voir ce qui existe déjà on tombe sur ce genre d'algorithmes...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    ben non en fait, 100 n'est pas 22+1 alors il ne faut prendre le tuple et en fait la fonction ne fonctionne pas (même pour 3 mes exemples sont mal choisis essayer avec [8,9,10,40,11,12,13,14,15,16] qui doit renvoyer [(8,9,10),(11,12,13),(14,15,16)] )
    Ok. Le 40 fait un peu plus bien chier le monde quoi. Mais j'y suis arrivé.
    Tout d'abord (diviser pour régner) une fonction qui part d'un point de la liste et qui, si elle trouve n éléments à suivre, renvoie ces n éléments sous forme de tuple. Sinon elle renvoie None.

    Ensuite une boucle pour trouver, à chaque fois, le point de départ suivant selon la dernière valeur mémorisée. Et à partir de ce point elle regarde si elle peut récupérer n éléments suivants.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #!/usr/bin/env python3
    # coding: utf-8
     
    def genere(l, *, n=1):
    	# Déjà la création du tuple
    	def make(i):
    		data=(l[i],)
    		for j in l[i+1:i+n]:
    			if j != data[-1] + 1: return None
    			data=data + (j,)
    		# for
    		return data if len(data) == n else None
    	# make()
     
    	# Traitement de la liste
    	ret=list()
    	i=0
    	while i < len(l):
    		# Si élément en cours pas suivant dernier élément mémorisé
    		# Ou si pas de génération
    		# Alors on passe à l'élément suivant
    		if (ret and l[i] != ret[-1][-1] + 1) or not (work:=make(i)):
    			i+=1
    			continue
    		# if
     
    		# On rajoute le tuple créé
    		ret.append(work)
    		i+=n
    	# while
    	return ret
    # genere()
     
    l=[8, 9, 10, 40, 11, 12, 13, 14, 15, 16, 18, 19, 20]
    print(genere(l, n=3))
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Mieux la liste comprehension

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maListe = [find_incremental_sequence(list(valeur), n) for valeur in valeurs]
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listres = [[str(tpl), count] for tpl, count in result]
    C'est plutôt le temps d'affichage dans la feuille qui prend du temps ( quelques secondes).
    Pour cela on pourrait limiter le nombre d'opérations d'écriture si possible. Plutôt que ligne par ligne, tu gardes en mémoire les données à écrire et tu écris le tout en une seule opération.

  9. #9
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Pour cela on pourrait limiter le nombre d'opérations d'écriture si possible. Plutôt que ligne par ligne, tu gardes en mémoire les données à écrire et tu écris le tout en une seule opération.
    des écritures il n'y en pas beaucoup un setDataArray pour une série de n nombres donc 3 au total pour 3 séries et finalement si on regarde le gif animé on voit que le traitement total pour 3 types de série est rapide quand même

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    plus classique du coup, aucune idée des perfs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def foo(l,n):
    	n -= 1
            ln = len(l)-n
    	e = 1
    	idx = 0
    	out = []
     
    	while e<ln:
    		if l[e-1]==l[e]-1:
    			idx += 1
    			if idx == n:
    				out.append((*l[e-n:e+1],))
    				idx = 0
    				e+=1
    		else:
    			idx = 0
    		e+=1
    	return out

  11. #11
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Hello,

    Ma proposition,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    from itertools import pairwise
     
    def find_incremental_sequences(lst, n):
        result = []
        i = 0
     
        while i <= len(lst) - n:
            subsequence = lst[i:i + n]
            if all(y - x == 1 for x, y in pairwise(subsequence)):
                result.append(tuple(subsequence))
                i += n - 1
            i += 1
     
        return result
     
    assert find_incremental_sequences([8,9,10,40,11,12,13,14,15,16], n=3) == [(8,9,10),(11,12,13),(14,15,16)]
    assert find_incremental_sequences([1,2,3,4,18,19,20,21,22,100], n=2) == [(1, 2), (3, 4), (18, 19), (20, 21)]
    pairwise a été introduit dans le module itertools depuis la version python 3.10

    Sve@r,

    Impressionnant
    T'es sûr

    1. Récursivité (souvent lent en python et limité)
    2. Lisibilité
    3. Copies nombreuses de listes (slice)


    Sinon je peux comprendre que les oneliners sont toujours impressionnants mais passent très rarement les revues de code, surtout sur cette longueur de ligne.

  12. #12
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Sinon je peux comprendre que les oneliners sont toujours impressionnants mais passent très rarement les revues de code, surtout sur cette longueur de ligne.
    C'est clair , les perfs ne sont jamais au rdv avec ce genre d'exercice , mais je trouve cela tellement amusant

  13. #13
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Hello,
    Désolé fred1599 et merci de t'être penché sur le problème mais je ne vous ai pas tout dit. La fonction doit être utilisée dans une macro python LibreOffice donc avec un python 3.8 et on ne peut pas employer pairwise. Une autre chose que je ne vous ai pas dite c'est que la liste en entrée est une liste de float car récupérer dans feuille du tableur calc c'est pour cela que dans la fonction de chatgpt j'ai rajouté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstint = list(map(int, lst))
    je dois faire aussi cette conversion dans la fonction de josmiley. Par contre dans la fonction à Sve@r ça passe avec une liste de float en entrée.
    J' ai fait un test de performance dans le cas réel avec 4000 lignes de 10 nombres pour trouver des suites de 3,4 et 5 nombres. Voici les résultats :
    ChatGpt:
    0.1264035000003787
    0.1163778000000093
    0.10706149999987247
    Sve@r:
    0.07142360000034387
    0.0756098000001657
    0.08020909999959258
    josmiley:
    0.1208133000000089
    0.11995089999982156
    0.12660740000137594
    La fonction de Sve@r est certainement plus rapide car il n'y a pas la conversion en entier à faire. Il y a peut-être moyen de s'en passer en adaptant le code dans les deux fonctions qui l'utilisent.

    Ami calmant, J.P

  14. #14
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Hello,

    @jurassic_pork,

    oui la version est importante, mais nous ne savions pas non plus que tu avais un besoin d'efficacité (4000 lignes).

    Autre essai,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    def find_incremental_sequences(lst, n):
        results = []
        i = 0
     
        while i <= len(lst) - n:
            is_incremental = True
            for j in range(n - 1):
                if lst[i + j + 1] - lst[i + j] != 1:
                    is_incremental = False
                    break
     
            if is_incremental:
                results.append(tuple(lst[i:i + n]))
                i += n
            else:
                i += 1
     
        return results
     
    assert find_incremental_sequences([8,9,10,40,11,12,13,14,15,16], n=3) == [(8,9,10),(11,12,13),(14,15,16)]
    assert find_incremental_sequences([1,2,3,4,18,19,20,21,22,100], n=2) == [(1, 2), (3, 4), (18, 19), (20, 21)]

  15. #15
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    fred ton essai semble pas mal voilà ce que j'obtiens en performance :
    0.06364769999709097
    0.061388799997075694
    0.05734239999947022
    Mieux que la fonction de Sve@r


    et à noter que finalement la fonction de chatGpt n'a pas besoin de la conversion en entier en on obtient alors comme performance :
    0.10574530000303639
    0.10048109999843291
    0.09056110000165063
    mais tout ceci n'est qu'anecdotique car la différence de performance entre des temps de l'ordre de 100ms et de 60ms ne se verra pas car le temps total du traitement dans LibreOffice sera surtout celui du transfert des données entre la feuille de calcul et le python.

    Merci à tous pour votre participation

  16. #16
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Sinon je peux comprendre que les oneliners sont toujours impressionnants
    Oui c'est ça. J'ai bien vu certains soucis (surtout la récursivité) mais c'est le onliner qui est magnifique

    Citation Envoyé par jurassic pork Voir le message
    La fonction de Sve@r est certainement plus rapide car il n'y a pas la conversion en entier à faire.
    Oui enfin j'ai pas non plus inventé l'eau tiède. Je me suis contenté d'écrire l'algorithme "glouton" correspondant (en fait j'ai vu le besoin initial comme rechercher les sous-chaines d'une chaine).

    Citation Envoyé par jurassic pork Voir le message
    fred ton essai semble pas mal voilà ce que j'obtiens en performance :

    Mieux que la fonction de Sve@r
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    transfert des données entre la feuille de calcul et le python.
    Quelle est ta méthode pour faire cela ?

  18. #18
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    voici le code pour prendre les données sur la feuille , faire le traitement pour une suite de n éléments et afficher les résultats sur la feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    def calculSuite(n):
        #ODOC.NamedRanges.getByName("ListeResultats").getReferredCells().clearContents(31)
        plage = ODOC.NamedRanges.getByName("ListeNombres").getReferredCells()
        # on récupere la liste des nombres en une seule fois
        valeurs = plage.getDataArray()
        maListe = []
        for valeur in valeurs:
            maListe += find_incremental_sequence(list(valeur), n)
        result = count_and_order_tuples(maListe)
        listres=[]
        for tpl, count in result:
            listres.append([str(tpl),count])
        sheet = ODOC.CurrentController.ActiveSheet
        cursor = sheet.createCursorByRange(sheet.getCellByPosition(10 + (n-3)*2,1))
        cursor.collapseToSize( len(listres[0]) , len(listres) )
        cursor.setDataArray(listres)
    Nom : LoPythonAffSuites.gif
Affichages : 110
Taille : 252,3 Ko

    Dans le traitement en plus de la fonction dont il est question dans cette discussion, on met tous les tuples dans une liste et on classe par nombre de fois qu'un tuple est présent( count_and_order_tuples) et on va mettre dans 2 colonnes de la feuille, les tuples sous forme de chaine et dans la colonne à côté le nombre de fois qu'il est présent.
    En fait les fonctions getDataArray() et setDataArray() ne sont pas si lentes que cela car pour 4000 lignes de 10 nombres le temps d'exécution est de 60 ms par appel. C'est plutôt le temps d'affichage dans la feuille qui prend du temps ( quelques secondes).

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

Discussions similaires

  1. [Toutes versions] Trouver dans une liste de nombre la première occurence libre
    Par possible924 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/09/2014, 14h02
  2. Trouver la dernière ligne avec nombre positif
    Par andrea0 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/02/2011, 20h32
  3. Trouver un encadrement d'un nombre dans une liste
    Par boulette85 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 15/07/2008, 13h33
  4. Réponses: 6
    Dernier message: 13/12/2007, 14h27
  5. Prog trouver un nombre !!!
    Par wareq dans le forum C
    Réponses: 9
    Dernier message: 04/10/2005, 08h46

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