Passer de coordonnées polaires à cartésiennes, et viseversa

Description

un prog sans prétention qui permet de passer des coordonnées polaires (r,téta) à cartésiennes (x,y) et l'inverse.
Il affiche également la valeur exacte, mais sans simplification..

Source / Exemple :


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

//prototypes :
double carr(double var);

int main(){

	int a;

	
	
	cout<<"passages des coordonnees polaires a cartesiennes, et videversa\n";
	cout<<"1. polaire vers cartésiennes\n";
	cout<<"2. cartesiennes vers polaires\n";
	cin>>a;

	double x,y,r,o;

	if (a==1){
	
	
	cout<<"donne les coord polaires du point :\n";
	cout<<"r = ";
	cin>>r;
	cout<<" téta = ";
	cin>>o;

	x=r*cos(o);
	y=r*sin(o);

	cout<<"les coordonnees cartesiennes du point sont : x= "<<x<<" y = "<<y;
	cout<<"\nvaleurs exactes :\nx= "<<r<<"*cos("<<o<<")";
	cout<<"    y= "<<r<<"*sin("<<o<<") \n";
	} else {
	
	cout<<"donne les coord cartesiennes du point\n"<<"x= ";
	cin>>x;
	cout<<" y= ";
	cin>>y;

	r=sqrt(carr(x)+carr(y));
	o=acos(x/r);
	if (y<0){
	o=-o;}

cout<<"\nr= "<<r<<" teta = "<<o;
cout<<"\nvaleurs exactes : \nr= sqrt("<<carr(x)+carr(y)<<") ";
if (o<0){cout<<"teta= -cos("<<x<<"/sqrt("<<carr(x)+carr(y)<<")) ";}
	
if (o>=0){cout<<"teta= cos("<<x<<"/sqrt("<<carr(x)+carr(y)<<")) ";}
	
}

cin>>a;
return 0;
}

// fonctions :
double carr(double var){
return var*var;
}

Codes Sources

A voir également

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.