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

VB 6 et antérieur Discussion :

min et max d'un tableau


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2009
    Messages : 154
    Par défaut min et max d'un tableau
    j'ai fait une fonction qui doit retourner le minimum et le maximum d'un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private function minmax(byval tnb as variant) as integer
    dim i,min,max as integer
    for i=lbound(tnb) to ubound(tnb)
    if t(i)>max then max=t(i)
    if t(i)<min then min=t(i)
    next i
    minmax=max
    minmax=min
    end function
    est ce qu'il y a des fautes dans cette fonction et surtout dans le retour de max et min en même temps dans cette fonction.
    mercii d'avance.

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Une fonction ne peux retourner qu'une seule valeur !
    Donc ta fonction retourna systèmaiquement la valeur min.
    Il te faut donc faire deux fonctions
    une fonction Min et une fonction Max
    Par ailleur dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim i,min,max as integer
    seule la valeur i sera déclarée en integer, les autres seront des variants

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Coucou Delbeke ..

    Citation Envoyé par Delbeke Voir le message
    ..
    Par ailleurs dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim i,min,max as integer
    seule la valeur i sera déclarée en integer, les autres seront des variants
    en fait c'est max .. qui devient un entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Command1_Click()
    Dim i, min, max As Integer
    Debug.Print " i : " & TypeName(i)
    Debug.Print " min : " & TypeName(min)
    Debug.Print " max : " & TypeName(max)
    Stop 'Actionnez CTRL+G pour accéder  à la fenêtre Exécution.
    End Sub
    résultat dans fenêtre exécution :
    Citation Envoyé par Fenêtre exécution
    i : Empty
    min : Empty
    max : Integer

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Citation Envoyé par Delbeke Voir le message
    Une fonction ne peux retourner qu'une seule valeur !
    Donc ta fonction retourna systèmaiquement la valeur min.
    Il te faut donc faire deux fonctions
    une fonction Min et une fonction Max
    salut

    ou alors se servir s('une structure, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Type minetmax
      minimum As Integer
      maximum As Integer
    End Type
    code de la fonction dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Function minmax(ByVal tnb As Variant) As minetmax
      Dim i As Integer
      minmax.maximum = tnb(0)
      minmax.minimum = tnb(0)
      For i = LBound(tnb) To UBound(tnb)
        If tnb(i) > minmax.maximum Then minmax.maximum = tnb(i)
        If tnb(i) < minmax.minimum Then minmax.minimum = tnb(i)
      Next i
    End Function
    exemple d'utilisation dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tnb = Array(1, 3, 10, 4)
    MsgBox minmax(tnb).maximum & vbCrLf & minmax(tnb).minimum
    tout ceci à adapter.

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Zoli

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2009
    Messages : 154
    Par défaut
    mercii beaucoup.
    vous avez bien répondu.
    j'ai une autre question SVP concernant une fonction aussi, mais cette fois qui permet de vérifier si les champs saisis (pare exemple nb1.text et nb2.text) sont non vides et qu'ils sont de type double.
    je ne sais pas comment faire pour cette fonction et surtout pour vérifier si un nombre est de type double..
    je veux une solution ou bien indication .
    mercii pour vos...

  7. #7
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Tous les nombres sont de type double. C'est le type de variable qui admet le plus de type de nombres. On peut y stocker des valeur bolean, integer, long, single et currency. Vb se chargeant de façon implicite de la convertion
    Donc tu as peut être un problème d'énoncé.

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

Discussions similaires

  1. Recherche des indices min et max dans un tableau 2D
    Par Bysbobo dans le forum LabVIEW
    Réponses: 3
    Dernier message: 03/05/2013, 08h36
  2. min et max d'un tableau
    Par nina2007 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 16/03/2012, 20h02
  3. Fonction Min Max pour un tableau
    Par WaKaaN dans le forum Général Python
    Réponses: 5
    Dernier message: 14/10/2008, 16h18
  4. Recherche Min/Max dans un tableau
    Par kuroro20 dans le forum C
    Réponses: 4
    Dernier message: 26/10/2007, 16h54
  5. Réponses: 5
    Dernier message: 27/11/2006, 13h32

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