Cálculos con vectores

Laura Miralles Millas

/* CALCULO CON VECTORES */
/* Este programa permite sumar, restar y obtener el producto escalar de dos vectores de cualquier dimensión que se introduzca. Y a raíz de eso te da alguna información como que si los vectores elegidos son perpendiculares y la base que forman. Además si el usuario quiere podrá calcular el punto medio de los dos vectores, el punto simétrico del vector que elija y el baricentro. */

#include <iostream>
#include <cmath>
#define N 100
using namespace std;

main()
{
int i;
int n, suma=0, prod_esc=0, resta=0, modulo1, modulo2, mod=0;
int v[N], w[N], u[N];
char resp1, resp2, resp3;
double medio=0.0, y, z, simetrico=0.0, baric=0.0;

cout << “Dame la dimension de los vectores:” << endl;
cin>> n;

cout <<“Escribe las ” <<n<< ” componentes del vertor v:” << endl;
for (i=0; i<n; i++)
{
cin >> v[i] ;
}
cout <<“Escribe las ” <<n<< ” componentes del vertor w:” << endl;
for (i=0; i<n; i++)
{
cin >> w[i] ;
}

cout << “Al sumar los dos vectores obtenemos un nuevo vector: ” <<endl;
for (i=0; i<n; i++)
{
suma= v[i] + w[i];
cout << ” cuya componente ” << 1+i <<” : ” << suma <<endl; }

cout << “Al restar los dos vectores obtenemos un nuevo vector: “<<endl;
for (i=0; i<n; i++)
{
resta= v[i] – w[i];
cout << ” cuya componente ” << 1+i <<” : ” << resta <<endl;}

cout <<endl <<endl;
for (i=0; i<n; i++)
{
prod_esc+= v[i]*w[i];
}
cout << “El producto escalar de tus vectores es: ” <<prod_esc<< endl;
if (prod_esc==0) {cout << “Los vectores son perpendiculares “;

for (i=0; i<n; i++)
{
mod+= pow ((v[i]), 2);
}
modulo1 = sqrt (mod);

for (i=0; i<n; i++)
{
mod+= pow ((w[i]), 2);
}
modulo2 = sqrt (mod);

if (modulo1==1 & modulo2==1) {cout <<” y forman una base ortonormal \n” ;}
else {cout << ” y forman una base ortogonal\n ” << endl;}
}

cout <<endl << endl << endl;
cout << “Quieres calcular el punto medio? : (s/n) ” <<endl;
cin >> resp1;

if (resp1==’s’) {cout << “El punto medio del segmento tiene dimension ” << n <<endl<<endl;
for (i=0; i<n; i++)
{ medio=(v[i]+w[i])/2.0;
cout << ” la componente ” << i+1 << “es: ” << medio <<endl<<endl;} }

if (resp1==’n’) { cout <<endl;}

cout << “Quieres calcular el punto simetrico respecto otro vector? : (s/n)” <<endl<<endl;
cin >> resp2;

if (resp2==’s’)
{
cout << “Punto simetrico, de que vector: 1 o 2? ” << endl<<endl;
cin >> y;

if (y==1) {cout << “Respecto al vector 2 o a otro nuevo (3)?” << endl<<endl;
cin >> z;

if (z==2) { cout <<endl << “El punto simetrico tiene como: ” <<endl;
for (i=0;i<n;i++)
{simetrico=v[i]+ (2.0*w[i]);
cout << ” componente ” << i+1 << “: ” <<simetrico<<endl<<endl;} }

else { cout <<endl <<“Escribe las ” <<n<< ” componentes del nuevo vector:” << endl<<endl;
for (i=0; i<n; i++)
{cin >> u[i] ;}
cout << “El punto simetrico tiene como: ” <<endl;
for (i=0;i<n;i++)
{simetrico=v[i]+ (2.0*u[i]);
cout << ” componente ” << i+1 << “: ” <<simetrico<<endl;} }
}

else {cout << “Respecto al vector 1 o a otro nuevo (3)?” << endl;
cin >> z;
if (z==1) { cout << “El punto simetrico tiene como: “<<endl;
for (i=0;i<n;i++)
{simetrico=w[i]+ (2.0*v[i]);
cout << ” componente ” << i+1 << “: ” <<simetrico<<endl;} }

else if (z==3) { cout <<“Escribe las ” <<n<< ” componentes del nuevo vector:” << endl;
for (i=0; i<n; i++)
{cin >> u[i] ;}
cout << “El punto simetrico tiene como: “;
for (i=0;i<n;i++)
{simetrico=w[i]+ (2.0*u[i]);
cout << ” componente ” << i+1 << “: ” <<simetrico<<endl;} }
}

}
else {cout<<endl;}

cout <<“Quieres calcular las coordenadas del baricentro? : (s/n) “<<endl;
cin >> resp3;

if (resp3==’s’)
{
cout << “Para el calculo de las coordenadas del baricentro introduzca un tercer vector: ” << endl;
for (i=0;i<n;i++) {cin >> u[i]; }
cout << “Las coordenadas del baricentro de estos tres puntos son: ” << endl;
for (i=0; i<n;i++)
{
baric= (v[i]+w[i]+u[i])/3.0;

cout << ” La ” << i+1 << ” : ” <<baric <<endl;}
}

else {cout <<endl<<“End!” << endl << endl;}

return 0;

}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s