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

Ruby Discussion :

Ruby To C - Aide


Sujet :

Ruby

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 37
    Points
    37
    Par défaut Ruby To C - Aide
    Bonjour a tous.

    Je sais que ma demande va sembler laxiste, mais bon.
    Je viens vers vous car j'aurais besoin de quelqu'un ayant d'assez bonnes bases en Ruby, notamment niveau syntaxe afin de "traduire" ce code Ruby en code C, ou bien en un algorithme compréhensible.

    Je n'ai pas de tres grandes connaissances de Ruby et je galère avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def dop(event)
            return (event.gsub(/#/, '').to_f) if event[0..0] == '#'
            return ((event.to_f > 0) ? p(event.to_f) : pC(event.to_f))
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def event(string)
            ## Calcul les intersections
            while string =~ /([-\d\.\#]+)x([-\d\.\#]+)/ do
                    string = $` + '#' + intersection($1, $2).to_s + $'
            end
            while string =~ /([-\d\.\#]+)\+([-\d\.\#]+)/ do
                    string = $` + '#' + reunion($1, $2).to_s + $'
            end
            ## Affiche le resultat
            puts "%.3f\n" % string.gsub!(/#/, '').to_f
    end
    Merci d'avance a ceux qui prendront le temps de m'aider.

    Bonne continuation

    wILL

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Tu trouveras pas mal de réponses dans la doc : http://www.ruby-doc.org/core/classes/String.html
    sur les fonctions utilisées gsub, to_f, [0..0] qui est un intervalle donc [range]), =~.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 37
    Points
    37
    Par défaut
    Bonjour.

    Bonjour pour ces pistes, cependant je ne vois pas dans quelle mesure je pourrais convertir les patterns utilises par les fonctions gsub et =~..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while string =~ /([-\d\.\#]+)x([-\d\.\#]+)
    Enfin, ma dernière question concerne cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string = $` + '#' + intersection($1, $2).to_s + $'
    A quoi corresponde le symbole #, $ ? Je suppose également que $1 et $2 sont les correspondances faites par le pattern ?

    Il s'avère que ce code en ruby travaille sur des strings qui sont en réalités des expressions typées du genre "1+2+4" ou "1x2+8x9", ou la syntaxe est spécifique. Dans quelle mesure est-il possible de traduire ce comportement en C ? L'utilisation de RegExp est-t'elle la seule option ?

    Merci d'avance

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 1 058
    Points
    1 058
    Par défaut
    Supprime les caractères #

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while string =~ /([-\d\.\#]+)x([-\d\.\#]+)/
    Vérifie que string est composé de 2 parties séparé par le caractère x, chacune des parties commençant par un des caractères suivant : -, ., # ou un chiffre

    Citation Envoyé par will74 Voir le message
    Enfin, ma dernière question concerne cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string = $` + '#' + intersection($1, $2).to_s + $'
    A quoi corresponde le symbole #, $ ? Je suppose également que $1 et $2 sont les correspondances faites par le pattern ?
    $1 et $2 correspondent à la première et la seconde partie.
    $` et $' permettent d'obtenir le reste de la chaîne de caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'aze10x399x458' =~ /([-\d\.\#]+)x([-\d\.\#]+)/ => 3
    $1 => "10"
    $2 => "399"
    $` => "aze"
    $' => "x458"
    Utiliser les regexp en C ne semble le plus rapide pour adapter le code ruby.
    ZiK un lecteur audio et son blog.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 37
    Points
    37
    Par défaut
    Merci pour votre aide, j'ai maintenant compris le principe du parsing avec les expressions régulières.

    Bonne continuation

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

Discussions similaires

  1. Ruby : Besoin d'aide pour GridFileSystem
    Par Frederick_Etudiant dans le forum Ruby
    Réponses: 0
    Dernier message: 28/09/2011, 10h49
  2. [FMOD] Adaptation Ruby pour FMOD
    Par sunmat dans le forum FMOD
    Réponses: 1
    Dernier message: 22/06/2008, 16h15
  3. aide pour programmer jeu de l'oie en ruby
    Par waelgaaloul dans le forum Ruby
    Réponses: 1
    Dernier message: 03/12/2007, 19h08
  4. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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