Addition et multiplication de vecteur [Résolu]

titou_hello 24 Messages postés jeudi 13 avril 2006Date d'inscription 10 novembre 2008 Dernière intervention - 4 nov. 2008 à 18:09 - Dernière réponse :  Utilisateur anonyme
- 7 nov. 2008 à 20:34
Bonjour,
   je debute aujourd'hui en python et je m'essaie a un petit programme de maths.
101vector est un petit projet pour le calcul vectoriel dans une dimension 'n', les coordonees de vecteurs sont aleatoires et depende de la dimension.

voici ou j'en suis, le code ne me met plus d'erreur, s'execute mais j'ai du oublier quelque chose, ca n'a pas l'air de passer par le main. :(

Voici donc mon code:
 
                           
#!/usr/bin/python

##########################
## beneva_a@epitech.net  |
##                       |
##   :: 101vector ::     |
## -----------------------

import sys,re,os,pwd,random
os.system('reset')

class calcul:
    def random(self):
        random, randint(-9,9)
        
    def addition(self, dim):
        x = 0
    # On ajoute n fois des coordonnees aleatoires 
    # dans une liste de la taille de la dimension 
        while x <= dim:
            a_list[x] = self.random
            x = x + 1
        x = 0
        while x <= dim:
            b_list[x] = self.random
            x = x + 1
        x = 0
    # On ajoute A a B
        while x <= dim:
            res_list[x] = a_list[x] + b_list[x]
            x = x + 1
    # On imprime les listes
        print "Valeur de A:     |", a_list
        print "Valeur de B:     |", b_list
        print "Valeur de A + B: |", res_list
            
    def multiplication(self, dim):
        x = 0
    # On ajoute n fois des coordonnees aleatoires
    # dans une liste de la taille de la dimension
        while x <= dim:
            a_list[x] = self.random
            x = x + 1
        x = 0
        while x <= dim:
            b_list[x] = self.random
            x = x + 1
        x = 0
    # On ajoute A a B
        while x <= dim:
            res_list[x] = a_list[x] * b_list[x]
            x = x + 1
    # On imprime les listes
        print "Valeur de A:     |", a_list
        print "Valeur de B:     |", b_list
        print "Valeur de A + B: |", res_list
    
    def help():
        print "Aide"
        print "USAGE: ./101vector [-commande] <dimension>"
        print "Liste des commandes:"
        print "     -addition           ->  addition de deux vecteurs aleatoires de dimension n"
        print "     -multiplication     ->  multiplication de deux vecteurs aleatoires de dimension n"
        print "Dimension: correspond a un nombre n"
        sys.exit()
                
    def main():
        print " ___________  ____                     __                 "
        print "/_   \   _  \/_   |__  __ ____   _____/  |_  ___________  "
        print " |   /  / \  \|   \  \/ // __ \_/ ___\   __\/  _ \_  __ \ "  
        print " |   \  \_/   \   |\   /\  ___/\  \___|  | (  <_> )  | \/ "
        print " |___|\_____  /___| \_/  \___  >\___  >__|  \____/|__|    "
        print "            \/               \/     \/                    "
        if len(sys.argv) == 1:
            print "USAGE: 101vector.py [-commande] <dimension>"
            sys.exit()
        calc = calcul()
        if '-addition' in sys.argv[1]:
            calc.addition(sys.argv[2])
        if '-multiplication' in sys.argv[1]:
            calc.multiplication(sys.argv[2])
        if '-help' in sys.argv[1]:
            help()

        if __name__ == "__main__":
            main()
                                        
                                     

<gras>.#BlaZed <!--</gras>
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Utilisateur anonyme - 7 nov. 2008 à 14:52
3
Merci
Non une classe est inutile en effet mais possible.

Cependant programmer en objet de suite me semble rapide. Pour démarrer vaut mieux s'habituer à trouver la solution la plus simple pour résoudre ton problème.
Celle que tu proposes me semble compliqué.

Au départ je te conseillerais de faire du calcul vectoriel seulement avec les additions et en 2 dimensions puis par la suite dans l'espace.

Bon courage

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
titou_hello 24 Messages postés jeudi 13 avril 2006Date d'inscription 10 novembre 2008 Dernière intervention - 4 nov. 2008 à 22:16
0
Merci
Yououuu, j'ai regler un probleme!!
D'ou l'importance des tabs :)

Enfin bref, maintenant il affiche bien ce qu il faut sans argument, mais apres c'est autre chose ^^

Toujours a l'ecoute de conseil, je cherche ;)
<gras>.#BlaZed <!--</gras>
Commenter la réponse de titou_hello
Utilisateur anonyme - 5 nov. 2008 à 18:03
0
Merci
Message d'erreur?
Commenter la réponse de Utilisateur anonyme
titou_hello 24 Messages postés jeudi 13 avril 2006Date d'inscription 10 novembre 2008 Dernière intervention - 5 nov. 2008 à 20:57
0
Merci
Desole  a ce moment si il n'y en avait pas, maintenant j'ai ce message.

File "./101vector.py", line 92, in <module>
    main()
  File "./101vector.py", line 85, in main
    calc.addition(sys.argv[2])
  File "./101vector.py", line 25, in addition
    self.a_list[x] = self.random
AttributeError: calcul instance has no attribute 'a_list'

Si quelqu'un pouvait me faire un petit cours sur les tableaux ca serait cool :)

Mercii

<gras>.#BlaZed <!--</gras>
Commenter la réponse de titou_hello
Utilisateur anonyme - 6 nov. 2008 à 18:06
0
Merci
Bonsoir,

Beaucoup d'erreurs, déjà s'occuper de :

def main():
        print " ___________  ____                     __                 "
        print "/_   \   _  \/_   |__  __ ____   _____/  |_  ___________  "
        print " |   /  / \  \|   \  \/ // __ \_/ ___\   __\/  _ \_  __ \ " 
        print " |   \  \_/   \   |\   /\  ___/\  \___|  | (  <_> )  | \/ "
        print " |___|\_____  /___| \_/  \___  >\___  >__|  \____/|__|    "
        print "            \/               \/     \/                    "
        if len(sys.argv) == 1:
            print "USAGE: 101vector.py [-commande] <dimension>"
            sys.exit()
        calc = calcul()
        if '-addition' in sys.argv[1]:
            calc.addition(sys.argv[2])
        if '-multiplication' in sys.argv[1]:
            calc.multiplication(sys.argv[2])
        if '-help' in sys.argv[1]:
            help()

        if __name__ == "__main__":
            main()

Transformer en :

if __name__ == "__main__":
    print " ___________  ____                     __                 "

    print "/_   \   _  \/_   |__  __ ____   _____/  |_  ___________  "

    print " |   /  / \  \|   \  \/ // __ \_/ ___\   __\/  _ \_  __ \ " 

    print " |   \  \_/   \   |\   /\  ___/\  \___|  | (  <_> )  | \/ "

    print " |___|\_____  /___| \_/  \___  >\___  >__|  \____/|__|    "

    print "            \/               \/     \/                    "

    if len(sys.argv) == 1:

        print "USAGE: 101vector.py [-commande] <dimension>"

        sys.exit()

        calc = calcul()

    if '-addition' in sys.argv[1]:

        calc.addition(sys.argv[2])

    if '-multiplication' in sys.argv[1]:

        calc.multiplication(sys.argv[2])

    if '-help' in sys.argv[1]:

        help()

Ensuite occupe toi des indentations

Pour le reste je ne comprend pas trop l'utilisation

Je me lance au cas où : python 101vector -addition 2     ????

Ou???
Commenter la réponse de Utilisateur anonyme
titou_hello 24 Messages postés jeudi 13 avril 2006Date d'inscription 10 novembre 2008 Dernière intervention - 7 nov. 2008 à 10:13
0
Merci
La ligne de commande pour l'executer est: 

                ./101vector -addition 2

Cela fonctionne pour:  ./101vector.py (sans argument)   et   ./101vector.py -help

Pour le main c'est bon c'est changer, je viens de voir que j'attaque tout de suite avec une class mais est ce que c'est vraiment utile? ou de simple fonction suffirait elle?

Nouvelles erreurs:

Traceback (most recent call last):
  File "./101vector.py", line 85, in <module>
    calc.addition(sys.argv[2])
  File "./101vector.py", line 25, in addition
    self.a_list[x] = self.random
AttributeError: calcul instance has no attribute 'a_list'

Je vois ce que je peux faire :)
<gras>.#BlaZed <!--</gras>
Commenter la réponse de titou_hello
titou_hello 24 Messages postés jeudi 13 avril 2006Date d'inscription 10 novembre 2008 Dernière intervention - 7 nov. 2008 à 20:20
0
Merci
C'est vrai c'est du rapide, j'ai pris le language un peu a la legere mais j'aimerais l'approfondir.
J'ai coder ce projet en C, il est a rendre dans une ou deux semaines, j'aurais peut etre le temps de le coder en python.

Merci encore pour ton temps, je reposterais surement, merci.

<gras>.#BlaZed <!--</gras>
Commenter la réponse de titou_hello
Utilisateur anonyme - 7 nov. 2008 à 20:34
0
Merci
De rien n'hesite pas

A bientot
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.