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

Langage Delphi Discussion :

Fonction mathématique oubliée


Sujet :

Langage Delphi

  1. #1
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 388
    Points : 3 160
    Points
    3 160
    Par défaut Fonction mathématique oubliée
    Bonjour,

    il existe une fonction qui permet de savoir si un réel est compris entre 2 nombres, mais je ne la retrouve pas.

    Est ce que quelqu'un peut me rafraichir la mémoire ?

    Merci
    A+
    Charly

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 620
    Points : 25 317
    Points
    25 317
    Par défaut
    Euh ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if A < X and X < B then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if CompareValue(X, A, 1) = GreaterThanValue then

  3. #3
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 388
    Points : 3 160
    Points
    3 160
    Par défaut
    Merci, il y a compareValue, je voulais éviter les if (bêtement)

    Mais il y avait une autre fonction que tu as déjà utilisé dans un de tes posts, mais que je ne retrouve pas et qui teste directement si une valeur est entre deux bornes.

    A+
    Charly

  4. #4
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Salut,

    InRange ?

  5. #5
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 388
    Points : 3 160
    Points
    3 160
    Par défaut
    Oui merci c'est bien Inrange :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InRange(const AValue, AMin, AMax: Integer): Boolean;
    Je ne sais pas si c'est mieux que des if !

    A+
    Charly

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 620
    Points : 25 317
    Points
    25 317
    Par défaut
    Pour ma part, je trouve qu'il manque l'opérateur ternaire de Windev SI A < X < B ALORS, j'ignore si cela existe dans d'autres langages plus léger à lire que if (A < X) and (X < B) then.

    InRange sera un poil plus lent que le "if and" dans certains cas, quand je dis plus lent c'est 1-2 cycle CPU, car dans le cas de if (A < X) and (X < B) then, avec l'évaluation partielle des booléens active par défaut, si A < Y retourne False, la suite ne sera pas vérifier.
    InRange fait systématiquement l'évaluation des deux puis fait and dans un second temps
    A part des cas extrème, cela reste assez négligeable comme impact de nos jours sur une application cliente.

    Du coup, InRange peut-être utilise à utiliser si l'on veut occasionnellement évaluer les deux opérandes, comme par exemple des bornes calculées par une fonction.
    Mais aussi par la facilité de lecture de if InRange(X, A, B) then.

    Sinon, tu as une sacrée mémoire, c'était presque ça, pour TimeInRange que trouve plus lisible et surtout que l'on comprend tout de suite ce que le code fait, sans compter les avantages, cela Tronque implicitement la partie "Date" des TDateTime, cela corrige le A > B


    Edit : EnsureRange est aussi pratique, non pas pour vérifier si c'est entre les bornes mais "seuiller" la valeur, si hors des bornes, cela retourne la borne min ou max

  7. #7
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 388
    Points : 3 160
    Points
    3 160
    Par défaut
    Merci pour ces précisions ShaiLeTroll

    A+
    Charly

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

Discussions similaires

  1. Listes des fonctions mathématiques
    Par boulette18 dans le forum MFC
    Réponses: 1
    Dernier message: 28/09/2005, 06h38
  2. Fonctions mathématiques en VB
    Par Kazimir dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/02/2005, 11h15
  3. codage du calcul de dérivée d'une fonction mathématique
    Par pispa2005 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 08/01/2005, 20h54
  4. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

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