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

Mathématiques Discussion :

Implémenter une formule


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Implémenter une formule
    Bonjour,

    Je suis un peu nul je pose donc mon problème :

    Je dois calculer la formule suivante :
    V = Ent((2,5 - A) / 0,272) + 17

    (Ent veut dire "partie entière de")

    Le problème c'est que :
    A est compris entre 0 et 10,0006410, son codage est sur 2 octets (=> 0xFFFF = 10,0006410).

    Comment adapter la formule ?
    Comment obtenir la partie entière (je n'ai pas de fonction ENT disponible par contre je peux faire des décallages, des OU, des ET etc) ?


    Merci pour toute aide,
    Nicolas

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    mettons nous d'accord : ce que tu souhaites c'est créer une fonction "Ent" !

    Dans quel langage développes tu ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Citation Envoyé par ToTo13 Voir le message
    mettons nous d'accord : ce que tu souhaites c'est créer une fonction "Ent" !
    Non, je souhaites 2 choses :
    1) calculer la formule
    2) dans cette formule, implémenter le "ENT" sachant que je n'en ai pas en natif.

    Citation Envoyé par ToTo13 Voir le message
    Dans quel langage développes tu ?
    C'est là le problème, c'est dans un truc graphique propriétaire... (mais comme je disais, j'ai accès aux opérateurs logiques ainsi qu'aux opérateurs de décalage).

    Dans un premier temps je me suis dit : tu vas multiplier tout ça par mille... mais comment en retirer la partie entière alors ?


    Merci de ton aide.

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Le problème c'est que :
    A est compris entre 0 et 10,0006410,
    La valeur est si petite pourquoi ne pas faire une petite boucle partant de -8 augmentant de 1 en 1 jusqu'à dépasser 2.5-A (11 valeurs maxi).
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mrniko Voir le message
    A est compris entre 0 et 10,0006410, son codage est sur 2 octets (=> 0xFFFF = 10,0006410).
    Tu connais la méthode de codage utilisée pour passer les "réels" en 16-bits ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Tu connais la méthode de codage utilisée pour passer les "réels" en 16-bits ?
    Non, explique ?


    merci pour votre aide

    Citation Envoyé par Zavonen Voir le message
    La valeur est si petite pourquoi ne pas faire une petite boucle partant de -8 augmentant de 1 en 1 jusqu'à dépasser 2.5-A (11 valeurs maxi).
    C'est clair, j'ai fait la simulation sous excel, y'a pas beaucoup de valeurs résultat mais en fait j'ai plusieurs autres formule à appliquer donc, je cherche autrement...


    Merci à toi.

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mrniko Voir le message
    Non, explique ?
    Arf. Ce n'était pas une devinette, c'était une vraie question.

    Tu nous dis que "0xFFFF = 10,0006410", mais comment est-ce que c'est calculé ? Combien vaut 0x0001, comment on fait pour encoder 5.0 , ... ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Arf. Ce n'était pas une devinette, c'était une vraie question.

    Tu nous dis que "0xFFFF = 10,0006410", mais comment est-ce que c'est calculé ? Combien vaut 0x0001, comment on fait pour encoder 5.0 , ... ?
    Arf... excuse...

    Alors en fait, j'ai un cahier des charges où il est écrit :
    Tension de sortie du capteur (en volt) 15 bit signés (*).
    facteur : 0,0001526

    Donc j'ai calculé :
    1 (Décimal) = 0x0001 = 0,0001526 v
    32767 = 0x7FFF = 5,0002442 v (**)

    (*) je pense que le signe est sur le 16ème bit...
    (**) Bien réfléchi, 0xFFFF doit surement valoir -5,...

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Dans ce cas je suis d'accord avec Zavo pour précalculer les valeurs de ta fonction:

    V = Ent((2,5-A) / 0,272) + 17

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    -5 <= A <= 5
    -2.5 <= (2,5-A) <= 7.5
    -9.20 <= (2,5-A)/0,272 <= 27.58
    -10 <= Ent((2,5-A) / 0,272) <= 27
    précalcul des plus petites valeurs de A qui changent la valeur de Ent((2,5-A) / 0,272):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    -10 => A = 10*0.272+2.5 = 5.220 -> 0x7FFF
     -9 => A =  9*0.272+2.5 = 4.948 -> 0x7EA9
     -8 => A =  8*0.272+2.5 = 4.676 -> 0x77B3
    ...
     27 => A = -27*0.272+2.5 = -4.844 -> 0xFC00
    Ainsi pour 0x77B3<=A<0x7EA9 on à Ent((2,5-A)/0,272)=-8
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Dans ce cas je suis d'accord avec Zavo pour précalculer les valeurs de ta fonction:

    V = Ent((2,5-A) / 0,272) + 17

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    -5 <= A <= 5
    -2.5 <= (2,5-A) <= 7.5
    -9.20 <= (2,5-A)/0,272 <= 27.58
    -10 <= Ent((2,5-A) / 0,272) <= 27
    précalcul des plus petites valeurs de A qui changent la valeur de Ent((2,5-A) / 0,272):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    -10 => A = 10*0.272+2.5 = 5.220 -> 0x7FFF
     -9 => A =  9*0.272+2.5 = 4.948 -> 0x7EA9
     -8 => A =  8*0.272+2.5 = 4.676 -> 0x77B3
    ...
     27 => A = -27*0.272+2.5 = -4.844 -> 0xFC00
    Ainsi pour 0x77B3<=A<0x7EA9 on à Ent((2,5-A)/0,272)=-8
    Bon ok, je vais faire comme ça alors.
    Je reviends dès que c'est implémenté.

    encore merci.

Discussions similaires

  1. [LibreOffice][Tableur] [Macro] Implémenter une formule sur un zone
    Par madvic dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 04/12/2014, 10h47
  2. implémentation d'une formule géométrique
    Par fraisa1985 dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/05/2010, 17h43
  3. Implémentation d'une formule mathèmatique
    Par fraisa1985 dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/04/2010, 14h50
  4. Mauvais résultat aprés une formule de calcul complexe
    Par poufouille dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 00h12
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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