begin process at 2012 05 30 05:32:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

problème de vecteur,produit mixtes,produit vectoriel...


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

problème de vecteur,produit mixtes,produit vectoriel...

vendredi 6 juin 2008 à 14:20:50 | problème de vecteur,produit mixtes,produit vectoriel...

faerie

bonjour, alors voilà, j'ai un problème avec un exercice d' informatique, il faut créer un programme qui porte sur les vecteurs, quand je le compile, il n'y a aucune erreur, mais les quatres dernières fonctions ne marchent pas, il ne veut pas les exécuter, je pense que le problème vient du produit vectoriel, mais je bloque depuis 4 jours dessus, s'il vous plait, aidez moi.  Merci d'avance
Voici le programme :




#include <stdio.h> /* Davo-Brunet */

#include <math.h>

 

int main (void)

{

/* declaration de toutes les variables de la fonction */

int N;

float scalaire;

float composantes0[20];

float composantes1[20];

float composantes2[20];

float stocage[20];

float Nov,Nov2,Nov3,PS,PM1,PM2;

float t1,t2,r1,r2,r,t,X,Y,x1,x2,v1,v2,a,b,c,d,e,f,g,h,i;char Bof[50];

/* declaration des fonctions appelees */

int NbreComposantes(void);

void EntrerVecteur (float *pcomposantes,int nb);

void EcrireVecteur (float *pcomposantes,int nb);

float NormeVecteur (float composantes[20], int nb);

void VecteurPlusVecteur( float composantes0[20], float composantes1[20] ,float composantes2[20],int nb);

void VecteurParScalaire( float a, float *composantes2, int nb);

float Norme2 (float composantes[20], int nb);

float Norme3 (float composantes[20], int nb);

void Normalise( float *composantes, int nb );

float ProduitScalaire( float composantes0[20], float composantes1[20], int N);

void ProduitVectoriel( float composantes0[20],float composantes1[20],float *stoc,int n );

float ProduitMixte1( float composantes0[20], float composantes1[20], float composantes2[20],int N );

float ProduitMixte2( float composantes0[20], float composantes1[20], float composantes2[20],int N );

void DoubleProdVect1( float composantes0[20], float composantes1[20], float composantes2[20],float *stoc,int N);

void DoubleProdVect2( float composantes0[20], float composantes1[20], float composantes2[20],float *stoc,int N);

/* saisie et verification de la validite des donnees saisies */

N=NbreComposantes();

a=r1;b=t1;x1=c;

d=r1;e=t1;v1=f;

a=r2;b=t2;x2=c;

d=r2;e=t2;v2=f;

X=x1+x2;Y=v1+v2;

/* traitement des donnees */

printf("Vous avez choisis %d argumens pour le vecteur V.\n",N);

EntrerVecteur (composantes0,N);

EcrireVecteur (composantes0,N);

/* calcul et affichage des normes */

Nov=NormeVecteur (composantes0,N);

printf("\nLa 1ere norme =%f. ",Nov);

Nov2=Norme2 (composantes0,N);

printf("\nLa 2nde norme =%f. ",Nov2);

Nov3=Norme3 (composantes0,N);

printf("\nLa 3eme norme =%f. \n",Nov3);

/* traitement avec deux vecteurs */

EntrerVecteur (composantes1, N);

EcrireVecteur ( composantes1,N );

PS=ProduitScalaire( composantes0, composantes1,N); /* Le produit scalaire */

printf("\nLe produit scalaire des deux vecteurs = %f \n",PS );

VecteurPlusVecteur(composantes0, composantes1, composantes2,N ); /* la somme */

printf("\nVoici la somme des deux vecteurs :");

EcrireVecteur (composantes2,N);

printf("\nPar quel scalaire voulais vous multiplier ce dernier ? : "); /* la multiplication par un scalaire */

scanf("%f",&scalaire);

VecteurParScalaire(scalaire,composantes2,N);

EcrireVecteur (composantes2,N);

printf("\nLe voici normalise : ");

Normalise(composantes2,N);

EcrireVecteur (composantes2,N);

printf("\n\tEntrez R1(module du vecteur1):\t\t");

scanf("%f",&r1);

printf("\n\tEntrez T1(argument du vecteur1):\t");

scanf("%f",&t1);

printf("\n\tEntrez R2(module du vecteur2):\t\t");

scanf("%f",&r2);

printf("\n\tEntrez T2(argument du vecteur2):\t");

scanf("%f",&t2);

return 0;

}

 

 

/* Definition des fonctions */

int NbreComposantes (void)

{

int n1;

do

{

printf("\nChoisissez le nombre d'arguments du vecteur (compris entre 2 et 20) : ");

scanf("%d",&n1);

}

while (n1<2||n1>20);

return n1;

}

 

 

void EntrerVecteur (float *pcomposantes,int nb)

{

int i;

printf("\nVeuillez entrez votre vecteurs d'il vous plait : \n");

for (i=0;i<nb;i=i+1)

{

do

{

printf(" V%d = ",i);

scanf("%f",(pcomposantes+i));

}

while (*(pcomposantes+i)<-10||*(pcomposantes+i)>10);

}

return ;

}

 

 

void EcrireVecteur (float *pcomposantes,int nb)

{

int i;

printf("\nLe vecteur x s'ecrit : \n");

for (i=0;i<nb;i=i+1)

{

printf(" X%d= %f \n",i,*(pcomposantes+i));

}

return ;

}

 

 

float NormeVecteur (float composantes0[20], int nb)

{

int i;

float norme=0;

for (i=0;i<nb;i=i+1)

{

norme=composantes0[ i ]*composantes0[ i ] + norme;

}

norme= norme*norme/2;

return norme ;

}

 

 

float Norme2( float composantes0[20], int nb )

{

int i;

float norme=0;

for( i=0;i<nb;i++)

{

if(composantes0[ i ]>=0)

{

norme=composantes0[ i ] + norme;

}

else

{

norme=-composantes0[ i ] + norme;

}

}

return norme;

}

 

 

float Norme3( float composantes0[20], int nb )

{

int i;

float norme3=0;

for( i=0;i<nb;i++)

{

if(composantes0[ i ] <0) /* on cherche le maximum de la valeur absolue pour la retourner */

{

if(-composantes0[ i ]>norme3)

{

norme3=-composantes0[ i ];

}

}

else

{

if(composantes0[ i ]>norme3)

{

norme3=composantes0[ i ];

}

}

}

return norme3;

}

 

 

void Normalise( float composantes[20], int nb )

{

int i;

float norme=NormeVecteur( composantes, nb ); /* on initialise la norme à sa valeur */

for( i=0; i<nb;i++ )

{

composantes[ i ] = composantes[ i ]/ norme; /* chaque argument on le divise par la norme */

}

return ;

}

 

 

 

 

void VecteurPlusVecteur( float composantes0[20],float composantes1[20], float composantes2[20], int nb)

{

int i;

for(i=0;i<nb;i++)

{

composantes2[i]=composantes0[i]+composantes1[i]; /* on fait la somme des deux composantes */

}

return ;

}

 

 

void VecteurParScalaire( float a, float *composantes2, int nb)

{

int i;

for( i=0;i<nb;i++)

{

composantes2[i]=composantes2[i]*a; /* chaques arguments ont le multiplie par a */

}

return ;

}

 

 

float ProduitScalaire( float composantes0[20] ,float composantes1[20],int n )

{

int i;

float PS=0;

for( i=0; i<n ; i++ )

{

PS = composantes0[ i ] * composantes1[ i ] + PS;

}

return PS;

}

 

 

void ProduitVectoriel( float composantes0[20],float composantes1[20],float *stoc,int n )

{

/* ici tu devra faire le produit vectoriel de vomposantes0 et composantes1 et mettre le resultat dans stoc */

}

 

 

float ProduitMixte1( float composantes0[20], float composantes1[20], float composantes2[20],int N )

{

float PM1;

float PV[20];

ProduitVectoriel( composantes0, composantes1,PV,N ); /* on stoque le produit vectoriel dand PV */

PM1=ProduitScalaire( PV , composantes2,N ); /* et on calcul le produit scalaire pour avoir le produit mixte */

return PM1;

}

 

 

float ProduitMixte2( float composantes0[20], float composantes1[20], float composantes2[20],int N )

{

float PM2;

float PV[20];

ProduitVectoriel( composantes1, composantes2,PV,N ); /* on stoque le produit vectoriel dand PV */

PM2=ProduitScalaire( composantes0, PV, N ); /* et on calcul le produit scalaire pour avoir le produit mixte*/

return PM2;

}

 

 

void DoubleProdVect1( float composantes0[20], float composantes1[20], float composantes2[20],float *stoc,int N)

{

float DPV1[20];

ProduitVectoriel( composantes1,composantes2,DPV1 , N ); /* on met le premier resultat dans DPV1 */

ProduitVectoriel(DPV1,composantes2,stoc , N ); /* on met le second resultat dans stoc */

return ;

}

 

 

void DoubleProdVect2( float composantes0[20], float composantes1[20], float composantes2[20],float *stoc,int N)

{

float DPV2[20];

ProduitVectoriel( composantes1,composantes2,DPV2 , N ); /* on met le premier resultat dans DPV2 */

ProduitVectoriel(composantes0, DPV2,stoc, N); /* on met le second resultat dans stoc */

return ;

}

vendredi 6 juin 2008 à 16:03:20 | Re : problème de vecteur,produit mixtes,produit vectoriel...

juju12

et qu'est-ce-que tu mets dans 'void ProduitVectoriel(...)' ?

Ah autre chose quand tu déclares tes fonctions il faut le faire en-dehors du corps d'une autre fonction (main() en l'occurence) :

int NbreComposantes(void);

int main(void)
{
...
}

vendredi 6 juin 2008 à 16:11:41 | Re : problème de vecteur,produit mixtes,produit vectoriel...

faerie

je viens de faire le produit vectoriel :

void ProduitVectoriel( float composantes0[20],float composantes1[20],float *stoc,int n  )
{
 stoc[0] = (composantes0[1]*composantes1[2]) - (composantes0[2]*composantes1[1]);
 stoc[1] = (composantes1[0]*composantes0[2]) - (composantes1[2]*composantes0[0]);
 stoc[2] = (composantes0[0]*composantes1[1]) - (composantes0[1]*composantes1[0]);
 return ;
}

mais il y a toujours le meme problème, quand je compile il s'arrete lorsqu'il demande les valeurs des modules et arguments...
vendredi 6 juin 2008 à 17:55:22 | Re : problème de vecteur,produit mixtes,produit vectoriel...

juju12

Il s'arrête après avoir demandé les modules et arguments R1 T1 r2 T2...et où est le problème?
la ligne suivante c'est return 0; donc la fin du programme ?!!??!


Cette discussion est classée dans : int, float, composantes0, composantes2, composantes1


Répondre à ce message

Sujets en rapport avec ce message

équation et tableaux [ par cabarrus ] je ne trouve pas l'erreur dans mon programme?#include#includeint deltanul(int);float deltainf(float);float deltasup(float);void main(void){float a,b,c dépassement capacité d'un float et int [ par golum ] result=scanf("%f",&coef); if (result !=0 && coef !=0)Voila si j'entre un nombre délirant style 9999999999999999999999999999999999999999999999999999999 arondir un float en int [ par guillaume21 ] je voudrai convertir un float en int (le cast tronque mais n'arrondi pas) sans utiliser la "bidouille" :inr i;float f;char car[6];sprintf(car,"%6.0f", Probl avec float et int [ par David2907 ] Après un calcul, comment faire pour afficher un resultat sans virgule ou un resultat avec virugule???Merci pb incrementation variable. [ par conan76 ] Voila j'ai passé l'après midi a chercher d'ou vient mon problème sans succès.je tente même de faire des affichages console avant et après incrémentati pourquoi ca marche pas :'( [ par xboxut ] salut j ai un probleme avec une fonction pour initialiser des particules,pouvez vous me dire pourquoi il ne marche pas et comment le faire marcher#inc comment tester un type de donné en C++ [ par Armandopoulos ] Salut !!en VC++Je voudrai bien savoir comment tester un type de donné (par ex. int , float , long , char) entré par l utilisateur au clavier.J ai pens C++ -> Java [ par christouilhe ] Bonjour à vous tous.J'ai une question à vous poser ...Il se trouve que je dois retranscrire un programme C++ en Java, mais il y a une fonction que je connection BDD en C [ par naru ] Bjr J'ai un code dans lequel je dois modifier le chemin de la bdd, et rentrer les paramètres de l'utilisteur (login/pass). Seulement, je ne vois pas Problème d'entrée (cin >>) dans un tableau de float [ par Oeil_de_taupe ] Hello tout le monde,désolé de vous importuné. Mais j'ai fait une toute petite source pour apprendre à allouer de la mémoire pour une variable puis de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,718 sec (4)

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