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

 C++ Discussion :

Traduction du langage Python au C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Traduction du langage Python au C++
    Bonjour, je suis un débutant en développement, et afin de bien réaliser les différences entres le langage Python et C++, j'aimerai bien que quelqu'un m'aide à convertir le code ci-après en C++.. et merci d’avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    from collections import defaultdict
    import thread, time
     
    def div(a,b):
        n = float(a)/b
        intn = int(n)
        return intn if intn == n else -1
     
    OPS = {"+": lambda a,b: a+b,
           "-": lambda a,b: a-b,
           "*": lambda a,b: a*b,
           "/": div}
    last_len = defaultdict(lambda: 1000)
    solutions = defaultdict(list)
     
    def solve(target, all_numbers, numbers=None, operations=[]):
        if not numbers:
            numbers = all_numbers
        for i, a in enumerate(numbers):
            if a<=0: continue
            for j, b in enumerate(numbers):
                if i == j or b<=0: continue
                for op, func in OPS.iteritems():
                    n = func(a, b)
                    if n<=0: continue
                    left_numbers = list(numbers)
                    left_numbers.remove(a)
                    left_numbers.remove(b)
                    left_numbers.append(n)
                    added_operations = operations+[(a,op,b,n)]
                    if n == target:
                        add(target, all_numbers, added_operations)
                    else:
                        solve(target, all_numbers, left_numbers, added_operations)
     
    def add(target, all_numbers, operations):
        global last_len
        if len(operations) < last_len[target, all_numbers]:
            show(target, all_numbers, operations)
            last_len[target, all_numbers] = len(operations)
        solutions[target, all_numbers].append(tuple(operations))
     
    def show(target, all_numbers, operations):
        all_numbers = tuple(all_numbers)
        len_ops = len(operations)
        print _('SHOW') % locals()
        for (a,op,b,n) in operations:
            print a, op, b, '=', n
        print '*'*10
     
    def shortest(target, all_numbers):
        s = tuple(solutions[target, all_numbers])
        print _('SHORTEST')
        if len(s) == 0:
            print _('NO SOLUTION')
            return
        show(target, all_numbers, sorted(reversed(s), key=len)[0])
     
    def test():
        puzzles = [(468, (1,6,6,7,2,3))]
     
        for p in puzzles:
            solve(*p)
            shortest(*p)
     
    def play():
        global started
        all_numbers = []
        print '*'*20
        while True:
            try:
                n = input(_("NEXT NUMBER"))
            except KeyboardInterrupt:
                return False
            except:
                all_numbers = tuple(all_numbers)
                if len(all_numbers) == 0:
                    return False
                v = input(_("TARGET"))
                try:
                    start = time.time()
                    solve(v, all_numbers)
                    end = time.time()
                    shortest(v, all_numbers)
                    s = end-start
                    m = int(s/60)
                    s = int(s-m*60)
                    duration = '%sm%ss' % (m, s)
                    count = len(solutions[v, all_numbers])
                    print _('TOOK') % locals()
                except KeyboardInterrupt:
                    pass
                return True
            else:
                all_numbers.append(n)
        return True
     
    messages = {'fr': {'NEXT NUMBER': 'Numero suivant (laisser vide si complet)? ',
                       'TARGET': 'Compte? ',
                       'NO SOLUTION': 'Pas de solution!',
                       'SHORTEST': 'Recherche de la plus courte solution en cours...',
                       'SHOW': 'Compte %(target)s, avec %(all_numbers)s en %(len_ops)s etapes:',
                       'TOOK': 'Trouve %(count)s solutions en %(duration)s.',
                       'HELLO': 'Salut.',
                       'GOODBYE': 'Au revoir.'},
     
                'en': {'NEXT NUMBER': 'Next number (Leave empty if full)? ',
                       'TARGET': 'Target number? ',
                       'NO SOLUTION': 'No solution!',
                       'SHORTEST': 'Finding shortest...',
                       'SHOW': 'Target %(target)s, with %(all_numbers)s in %(len_ops)s steps:',
                       'TOOK': 'Took %(duration)s to find %(count)s solutions.',
                       'HELLO': 'Hello.',
                       'GOODBYE': 'Goodbye.'},
                }
    def _(msg):
        global messages, lang
        return messages[lang][msg]
     
    if __name__ == "__main__":
        lang = raw_input('fr/en?')
        if lang not in messages:
            lang = 'en'
        print _('HELLO')
        while play():
            pass
        print _('GOODBYE')

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    nous ne ferons pas ton travail à ta place.
    La grande majorité peut se faire avec une simple recherche Google puisqu'il s'agit de syntaxe de base.
    Montre-nous autre chose que la totalité de ton exercice que nous ne réaliserons pas pour toi.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 122
    Points
    122
    Par défaut
    click

    Après je ne sais pas DU TOUT ce que ça vaut. Mais si ton code est assez imposant et que tu n'as pas trop envie de te casser la tête, tu devrais essayer un traducteur python/c++

Discussions similaires

  1. Le moratoire sur le langage Python est accepté par le PEP
    Par Gordon Fowler dans le forum Général Python
    Réponses: 5
    Dernier message: 16/11/2009, 12h58
  2. Le moratoire sur le langage Python est accepté par le PEP
    Par Gordon Fowler dans le forum Actualités
    Réponses: 2
    Dernier message: 25/10/2009, 00h24
  3. Outils de traduction des langages
    Par legide dans le forum Langages de programmation
    Réponses: 21
    Dernier message: 17/04/2009, 19h17
  4. Dictionnaire de traduction entre langages
    Par mtaveau dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 01/05/2007, 00h17

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