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

Interfaces Graphiques Discussion :

[Edit] Utilisation de rats() pour une fraction


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Par défaut [Edit] Utilisation de rats() pour une fraction
    Bonjour,

    Je veux utiliser un bouton sur une interface Gui qui effectuera une conversion d'un nombre entier en fraction. Pour cela j'utilise rats() qui permet de faire cela. Comme il s'agit d'une calculette que je crée, le texte apparaît dans un edit text. Je le lit donc, il est alors perçu comme un 'string', seulement je me rend compte que je ne peut pas faire de conversion vers le passage numérique (str2num) car il s'agit d'une réponse de type 'string' aussi.
    De ce fait, pas moyen d'afficher le résultat. Alors que lorsque je le tape sur le commande windows, il m'affiche bien un résultat.

    Voici un bout de code:
    Il s'agit d'afficher le text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.affichage,'string',[get(handles.affichage,'string') 'rats('])
    de le convertir pour le ré-affiché (seulement c'est pas un numérique mais je ne voit pas comment le calculer autrement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    e = str2num(get(handles.affichage,'string'))
    set(handles.affichage,'string',e)
    Merci,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai un peu de mal à te suivre
    D'abord, pour effectuer
    une conversion d'un nombre entier en fraction
    je te souhaite bonne chance
    Ne voudrais-tu pas convertir un nombre rationnel plutôt?

    Enfin là n'est pas la question, passons au côté MATLAB
    Premièrement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.affichage,'string',[get(handles.affichage,'string') 'rats('])
    qu'est censé faire cette ligne?
    Pour ce qui est du retour, je ne vois pas de problème: RATS retourne une chaine de caractères, donc simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    e = str2num(get(handles.affichage,'string'))
    set(handles.affichage,'string',rats(e))
    Non?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Par défaut
    En fait, voila le problème: J'ai crée une calculatrice qui comprend plusieurs boutons et un edit text pour afficher les résultats. Lorsque j'appuis sur un bouton , j'effectue cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if strcmp(get(handles.affichage,'string'),'') %cela signifie que l'edit text est vide
    set(handles.affichage,'string','rats(' %J'affiche donc rats( à l'écran dans l'edit text
    else
    set(handles.affichage,'string',[get(handles.affichage,'string')'rats(']) % Cela signifie que l'utilisateur à déja rentré des valeur avant d'utiliser la fonction rats donc il copie 'rats(' après ce qui est déja afficher
    J'ai par la suite créer un bouton CALCULER qui va lire ce que contient l'edittext. le problème intervient à ce moment car j'ai déja utilisé beaucoup de fonction du type log() ect qui retourne un numérique.

    Mon bouton calculer va donc va ceci en autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    a = get(handles.affichage,'string') % pour lire ce que contient l'edittext
    e = str2num(a)
    set(e)
    Cela marche très bien pour les autres boutons que j'ai créés (log, cos, sin ...)
    car ils retournent un entier. Mais la fonction rats() ne fonctionne pas lorsque j'appuis sur le bouton calculer car il ne s'agit pas d'un entier et il me retourne [].


    J'espère avoir était un peu plus clair dans ma démarche.
    Merci encore

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je comprends de moins en moins
    Donc on va y aller pas à pas:


    Quelque soit le contenu de l'affichage, lorsque tu appuis sur un bouton, 'rats(' est ajouté à la fin.
    Mais ensuite? De ce que j'ai compris: (n'hésite pas à me reprendre)
    • J'imagine que l'utilisateur rentre entre temps notre nombre rationnel à passer en fraction (et ferme la parenthèse ?)
    • On a donc dans l'Edit quelque chose comme
      <quelque chose>rats(2.2)
    • Donc avec la ligne:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      a = get(handles.affichage,'string') % pour lire ce que contient l'edittext
      Tu obtiens tout ça dans a et donc STR2NUM ne va sûrement pas le convertir miraculeusement en 2.2


    Ne serait-ce pas plus simple de taper le nombre rationnel seul dans l'affichage, appuyer sur un bouton "rats" et qu'il en sorte le résultat?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Par défaut
    oui, tu as raison, c'est plus simple. Mais j'aurais aimé pouvoir écrire quelque chose de ce genre: 2+rats(0,14) par exemple.

    Mais tu as raison je vais faire 2+0,14 et faire le rats() du résultat par la suite.
    Je me complique trop la vie.
    Encore merci,

  6. #6
    Invité
    Invité(e)
    Par défaut
    Alors dans un premier temps, fais attention de plutôt mettre un point qu'un virgule comme séparateur des décimales:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> str2num('0,14')
     
    ans =
     
         0    14
     
    >> str2num('0.14')
     
    ans =
     
        0.1400
    Ensuite, j'avoue ne pas voir l'intérêt de la ligne 2+rats(0.14) Je verrais plutôt l'utilisation de RATS seul, sans autres opérations à côté, vu que c'est plus pour voir la fraction qu'autre chose. Dans ce cas précis, autant mettre 2+0.14. Non?

Discussions similaires

  1. [JSTL] [débutant] Utilisation de jstl pour une internationnalisation
    Par mimil77210 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/02/2007, 15h57
  2. Réponses: 1
    Dernier message: 27/09/2006, 16h21
  3. Utiliser un ascenseur pour une application MDI
    Par kurkaine dans le forum C++Builder
    Réponses: 6
    Dernier message: 27/09/2006, 13h54
  4. Réponses: 4
    Dernier message: 09/02/2006, 17h44
  5. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32

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