begin process at 2012 02 10 07:15:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

les double...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

les double...

jeudi 14 février 2008 à 13:27:01 | les double...

avalonclass

Bonjour a vous, j'ai écris un ptit programme de rien du tout mais celui ci me renvoie des valeurs completement bidon quand je l'utilise... qlq'un saurait d'ou cela peu venir ?

voila le code

--------------------------------------------------------------------------------------
#include <iostream.h>
#include <math.h>

struct Vecteur
{
       double u;
       double v;
       double w;
};

void Affvecteur(Vecteur vecteur)
{
     cout <<" u:"<< vecteur.u <<"\n;";
     cout <<" v:"<< vecteur.v <<"\n;";
     cout <<" w:"<< vecteur.w <<"\n;";
}

Vecteur Definir ( double vu,double vv,double vw )
{
        Vecteur vecteuradef;
        vu = vecteuradef.u;
        vv = vecteuradef.v;
        vw = vecteuradef.w;
        return vecteuradef;
}

int Norme ( Vecteur vecteur )
{
       double norme;
       norme=sqrt(vecteur.u*vecteur.u+vecteur.v*vecteur.v+vecteur.w*vecteur.w);
       return norme;
}

Vecteur Addition (Vecteur vecteur1, Vecteur vecteur2)
{
        Vecteur addition;
        addition.u=vecteur1.u+vecteur2.u;
        addition.v=vecteur1.v+vecteur2.v;
        addition.w=vecteur1.w+vecteur2.w;
        return addition;
}

Vecteur oppose( Vecteur vecteur)
{
        Vecteur oppose;
        oppose.u=(vecteur.u)*(-1);
        oppose.v=(vecteur.v)*(-1);
        oppose.w=(vecteur.w)*(-1);
        return oppose;
}

Vecteur soustraction (Vecteur vecteur1, Vecteur vecteur2)
{
        Vecteur resusoustr;
        resusoustr=Addition(vecteur1,oppose(vecteur2));
        return resusoustr;
}

Vecteur multiplication (Vecteur vecteur1, double multi)
{
        Vecteur resumulti;
        resumulti.u=((vecteur1.u)*multi);
        resumulti.v=((vecteur1.v)*multi);
        resumulti.w=((vecteur1.w)*multi);
        return resumulti;
}


Vecteur produitvecto(Vecteur vecteur1, Vecteur vecteur2)
{
        Vecteur resuprod;
        resuprod.u=((vecteur1.v*vecteur2.w)-(vecteur2.v*vecteur1.w));
        resuprod.v=((vecteur1.u*vecteur2.w)-(vecteur2.u*vecteur1.w));
        resuprod.w=((vecteur1.u*vecteur2.v)-(vecteur2.u*vecteur1.v));
        return resuprod;
}

int main()
{
    short unsigned choix;
    Vecteur vecteurn1;
    Vecteur vecteurn2;
    Vecteur vecteurn3;
    double u=0;
    double v=0;
    double w=0;
   
     do
     {   
         cout << " que voulez vous faire \n"
         << " 1- definir vecteur \n"
         << " 2- effectuer une multiplication \n"
         << " 3- effectuer une addition \n"
         << " 4- effectuer une soustraction \n"
         << " 5- effectuer une produit vectoriel \n"
         << " 6- multiplication par -1 \n"
         << " 7- montrer les vecteur\n"
         << " 0- quitter le programme\n";
         cout << "saisir action>";
         cin >> choix;
        
         switch (choix)
         {
                case 1:
                     cout <<" 1- definir vecteur \n";
                    
                     cout <<" vecteur numero:1\n";
                     cout <<"u:\n";
                     cin >>u;
                     cout <<"v:\n";
                     cin >>v;
                     cout <<"w:\n";
                     cin >>w;
                     vecteurn1=Definir(u,v,w);
                    
                     cout <<" vecteur numero:2\n";
                     cout <<"u:\n";
                     cin >>u;
                     cout <<"v:\n";
                     cin >>v;
                     cout <<"w:\n";
                     cin >>w;
                     vecteurn2=Definir(u,v,w);
                    
                     cout <<" vecteur numero:3\n";
                     cout <<"u:\n";
                     cin >>u;
                     cout <<"v:\n";
                     cin >>v;
                     cout <<"w:\n";
                     cin >>w;
                     vecteurn3=Definir(u,v,w);
                    
                     break;
                case 2:
                     cout <<" 2- effectuer une multiplication \n";
                    
                     break;
                case 3:
                     cout <<" 3- effectuer une addition \n";
                    
                     break;
                case 4:
                     cout <<" 4- effectuer une soustraction \n";
                    
                     break;
                case 5:
                     cout <<" 5- effectuer une produit vectoriel \n";
                    
                     break;
                case 6:
                     cout <<" 6- multiplication par -1 \n";
                     break;
                case 7:
                     cout <<" 7- voici les vecteur \n";
                     cout<<"vecteur1\n";
                     Affvecteur ( vecteurn1);
                     cout<<"vecteur2\n";
                     Affvecteur ( vecteurn2);
                     cout<<"vecteur3\n";
                     Affvecteur ( vecteurn3);
                    
                     break;
                case 0:
                     cout <<" Au revoir\n";
                    
                     break;
               
         };
     }while(choix!=0);

     system("PAUSE");

    return 0;
   
}
------------------------------------------------------------------

Je suis en train de faire les "liens" entre ma fonctions main et les divers fonctions de calcul sur les vecteurs. J'ai testé ma fonction
definir(double,double,double) et affvecteur(vecteur) cepedant l'or de laffichage avec affvecteur(vecteur) j'ai des valeurs de vecteur qui ne correspond pas du tout a ce que j'ai entré. merci d'avance pour l'aide que vous pourrez me donné.

jeudi 14 février 2008 à 13:56:51 | Re : les double...

Pistol_Pete

Salut
Tout ton programme est a revoir :
J'ai pas tout regardé mais ta fonction Vecteur Definir ( double vu,double vv,double vw ) est une farce:

Vecteur Definir ( double vu,double vv,double vw )
{
        Vecteur vecteuradef;
        vu = vecteuradef.u;         //peut etre     vecteuradef.u = vu     serai mieux ?
        vv = vecteuradef.v;
        vw = vecteuradef.w;
        return vecteuradef;         //tu retournes une variable local qui sera detruit en sortie de cette fonction....
}
Utilise des allocations dynamiques ou revois le passage de parametres.


A+
Mon site internet : [ Lien ]

jeudi 14 février 2008 à 14:15:08 | Re : les double...

avalonclass

Bin a priori ma fonction definir était loin d'etre une farce puique écrire "vecteuradef.u = vu" en lieu et place de "vu = vecteuradef.u" a suffit a faire marcher le prog. Je comprends pas pourquoi TOUT le proramme est a revoir... pas la peine d'etre... agressif...
jeudi 14 février 2008 à 14:24:01 | Re : les double...

luhtor

Tsss....

Vecteur Definir ( double vu,double vv,double vw )
{
        Vecteur vecteuradef;
        vu = vecteuradef.u;         //peut etre     vecteuradef.u = vu     serai mieux ?
        vv = vecteuradef.v;
        vw = vecteuradef.w;
        return vecteuradef;         //tu retournes une variable local qui sera detruit en sortie de cette fonction....
}
...
vecteurn1=Definir(u,v,w);

=> C'est tout a fait correct ! Très mauvais niveau performance, mais le code est correct.

J'ai pas le temps de lire en détail pour le moment.

jeudi 14 février 2008 à 14:25:53 | Re : les double...

luhtor

Réponse acceptée !
Oups non juste une correction kan meme. Dans le corps de ta fonction:

        vu = vecteuradef.u;         //peut etre     vecteuradef.u = vu     serai mieux ?
        vv = vecteuradef.v;
        vw = vecteuradef.w;

Tu mets le contenu du vecteur dans tes variables, c'est l'inverse qu'il faut faire:
vecteuradef.u = vu;
etc...
jeudi 14 février 2008 à 14:26:05 | Re : les double...

SAKingdom

Membre Club
Pistol_Pete >> Retourner une structure est parfaitement fonctionnel. Le compilo copira les membres de la source dans les membres de la destination.

C++ (@++)

jeudi 14 février 2008 à 14:30:16 | Re : les double...

avalonclass

Merci pour vos réponse. Pour le truc du "vecteuradef.u=vu" qui est != de "vu = vecteuradef.u" j'ai pas réfléchi ça marche tout de suite mieu :).
jeudi 14 février 2008 à 14:31:14 | Re : les double...

Pistol_Pete

Réponse acceptée !
Désolé si j'ai parru agressif, c'était pas voulu.
Le probleme de ton programme c'est pas vu = vecteur ou vecteur = vu, ca c'est une erreur d'inatention mais le fait que tu retournes une variable locale est bien plus genant et cette erreur doit etre corrigée pour toutes les fonctions de ton programme.

Voila une version correcte:
 
void Definir (Vecteur *vecteuradef, double vu,double vv,double vw )
{
        vecteuradef->u = vu;         
        vecteuradef->v =vv;
        vecteuradef->w =vw;
      
}
et tu l'appelles avec Definir(&vect,1,1,1)

A+
Mon site internet : [ Lien ]

jeudi 14 février 2008 à 14:44:33 | Re : les double...

SAKingdom

Membre Club
Réponse acceptée !
Pistol_Pete >> Non. Retourner une structure est parfaitement correct. Cependant, le code que tu proposes est le plus optimisé.

C++ (@++)

jeudi 14 février 2008 à 14:48:35 | Re : les double...

avalonclass

Ok, point de vu calcul, il faut mieu utilisé les pointeurs... je savais pas, pour l'instant je m'occupe pas vraiment des soucis de performance... j'avais l'intention de passer par les pointeurs pour amélioré le prog avec une saisie dynamique du nombre de vecteur que l'on veut utilisé. D'ou lutilisation a priori inutile de beaucoup de fonction. Merci d'avoir pris le tps de regarder mon pti programme :D

1 2 3

Cette discussion est classée dans : double, vecteur, cout, vecteur1, vecteur2


Répondre à ce message

Sujets en rapport avec ce message

Problème de transmission par référence... [ par vincemail ] Bonsoir tout le monde, voilà j'ai un problème pour la transmission par référence sous devC++ (je sais pas si c'est du à l'IDE). Je m'explique : je cré Compilation avec dev C++ [ par nsoualem ] je fais une déclaration comme suit:friend vecteur operator*(T,const vecteur&)dans mon mainje l'appelle comme suit:vecteur u(2);u[0]=3.14;coutsous LISTE D'OBJET ... heeeeeeeeeeelpppppppppppp [ par antgre ] Bonjour,J'ai encore un petit probleme ;-)Je dois créer une liste d'obljet POINT ... La classe point a été définie et fonctionne très bien, la classe l au ras des paquerettes en C++ [ par raro ] bonjour à ceux qui liront cette demande.j'ai 48 ans et j'ai décidé d'apprendre le langage C++ depuis une semaine.j'ai un (petit) probleme à vous soume Aide [ par Hellboy67 ] Voila j'ai un exo pour les cours de prog a faire dont le code source est le suivant:# include # include using std::cout;using std::cin;using std::end transpose vecteur dans le matrice carrée [ par ciaonataha ] Bounjour à tous!Je suis debutante et j'ai besoine d'aide..J'ai la vecteure V= (double*)malloc(sizeof(double)*l);et les parametres initialles qui ont m Fraction en C++ [ par nomadstorm ] Bonsoir j'ai travaller sur un prgramme qui fait des opérations sur une fraction mais il y a un défauts dans ce dernier que je trouve pas merci de m ai Besoin d'aide c++ [ par sevio14 ] Quelqu'un peut-il m'aider à faire le programme de l'algorithme d'uzawa? Voici ce que j'ai commencé à définir: #include #include #include #includ vecteur 2D [ par williamcplusplus ] Bonjour à tous!Je désire accéder à chaque ligne d'un vecteur 2D de bit de la forme:vector > Tableaucode;Tableaucode.resize(9,vector(8,false));Quand je Petit problème avec un pointeur et un simple appel de fonction... [ par n_o_u_n_o_u ] Bonjour,Je suis actuellement en train de découvrir la notion de pointeurs et je rencontre un petit problème avec le code ci-dessous.L'adresse du table


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales