Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  tuputamadre
Language: C/C++
Code:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int tanp,resp_maes,sumx,sumy,resx,resy,prim_vect, segun_vect,res_pers,respuesta,i,j,r,c,vecxt=0,vecyt=0,t=1;
float x,y,z;
int nv,vec_select,esc,vect_mult_uno,vect_mult_dos,mv;
int vecp, vece,sumz,resz,xpc,ypc,zpc,pcvu,pcvd;
float vecxp[64],vecyp[64],veczp[64],vecypp,suma_tx,suma_ty,resta_ty,resta_tx,resta_tz,suma_tz,mult_vectx,mult_vecty,mult_vectz;
double vecxe[64],vecye[64],vecze[64],PI = 3.14159265358979323846;
float vecx [64], vecy[64], vecz[64], multpunt;
int polares();
int muestra_final();
int personal();
int mult_cruz();
int mult_vector_esc();
int mult_vect_vect();
int menu();
int sumar_todos();
int restar_todos();
int muestra();
int lectura ();
int polares(){
     for(int z=1;z<=nv;z++){
          vecp=pow(vecx[z],2)+pow(vecy[z],2);
          vecxp[z]=pow(vecp,.5);
          vecypp=vecy[z]/vecx[z];
          vecyp[z]= atan(vecypp)*(180/PI);
          veczp[z]= vecz[z];
          }
     return 0;
     }
int esfericas(){
         for(int s=1;s<=nv;s++){
          vece=pow(vecx[s],2)+pow(vecy[s],2)+pow(vecz[s],2);
          vecxe[s]= pow(vece,.5);
          vecye[s]= (acos(vecz[s]/vecxe[s]))*(180/PI);
          vecze[s]= (atan(vecy[s]/vecx[s]))*(180/PI);
          }
          return 0;
}     
int main(){
     lectura();
     muestra();
     menu();
     switch (respuesta){
          case 1: 
          mult_vector_esc();
          break;
          case 2:
          mult_vect_vect();
          break;
          case 3:
          mult_cruz();
          break;
          case 4:
          sumar_todos();
          break;
          case 5:
          restar_todos();
          break;
          case 6:
          personal();
          break;
     }
     printf("¿Deseas hacer otra operacion?n");
     printf("Si.............................(1)n");
     printf("No.............................(2)n");
     scanf("%d",&resp_maes);
     while (resp_maes!=1 && resp_maes!=2){
          printf("Opcion invalidan");
          printf("¿Deseas hacer otra operacion?n");
          printf("Si.............................(1)n");
          printf("No.............................(2)n");
          scanf("%d",&resp_maes);
          }
     while(resp_maes==1){
          muestra();
     menu();
     switch (respuesta){
          case 1: 
          mult_vector_esc();
          break;
          case 2:
          mult_vect_vect();
          break;
          case 3:
          mult_cruz();
          break;
          case 4:
          sumar_todos();
          break;
          case 5:
          restar_todos();
          break;
          case 6:
          personal();
          break;
     }
     printf("¿Deseas hacer otra operacion?n");
     printf("Si.............................(1)n");
     printf("No.............................(2)n");
     scanf("%d",&resp_maes);
     while (resp_maes!=1 && resp_maes!=2){
          printf("Opcion invalidan");
          printf("¿Deseas hacer otra operacion?n");
          printf("Si.............................(1)n");
          printf("No.............................(2)n");
          scanf("%d",&resp_maes);
          }
          }
polares();
esfericas();
muestra_final();
return 0;
     }
int personal(){
     printf("En este modo solo puedes operar con 2 vectoresnlos resultados se almacenaran junto con losndemás vectores por si quieres seguirncalculando con ellosn");
     printf("Sumar vectores........(1)n");
     printf("Restar vectores.......(2)n");
     scanf("%d",&res_pers);
     while(res_pers!=1 && res_pers!=2){
          printf("Opcion invalidan");
          printf("En este modo solo puedes operar con 2 vectoresnlos resultados se almacenaran junto con losndemás vectores por si quieres seguirncalculando con ellos");
          printf("Sumar vectores........(1)n");
          printf("Restar vectores.......(2)n");
          scanf("%d",&res_pers);
          }
     muestra();
     printf("Seleciona el primer vectorn");
     scanf("%d",&prim_vect);
     printf("Seleciona el segundo vectorn");
     scanf("%d",&segun_vect);
     nv++;
     switch(res_pers){
          case 1:
          sumx=vecx[prim_vect]+vecx[segun_vect];
          sumy=vecy[prim_vect]+vecy[segun_vect];
          sumz=vecz[prim_vect]+vecz[segun_vect];
          vecx[nv]=sumx;
          vecy[nv]=sumy;
          vecz[nv]=sumz;
          break;
          case 2:
          resx=vecx[prim_vect]-vecx[segun_vect];
          resy=vecy[prim_vect]-vecy[segun_vect];
          resz=vecz[prim_vect]-vecz[segun_vect];
          vecx[nv]=resx;
          vecy[nv]=resy;
          vecz[nv]=resz;
          break;
     }
     printf("el resultado (%0.2f,%0.2f,%0.2f)se guardo en el vector %dn",vecx[nv],vecy[nv],vecz[nv],nv);     
     return 0;
     }
int restar_todos(){
     nv++;
     for(i=1;i<=nv;i++){
     resta_tx=resta_tx-vecx[i];
     resta_ty=resta_ty-vecy[i];
     resta_tz=resta_tz-vecz[i];
     }
     vecx[nv]=resta_tx;
     vecy[nv]=resta_ty;
     vecz[nv]=resta_tz;
     printf("La resta total esta en la posicion %d y es de (%0.2f,%0.2f,%0.2f)n",nv,vecx[nv],vecy[nv],vecz[nv]);
     
     return 0;
     }
int sumar_todos(){
     for(i=1;i<=nv;i++){
          suma_tx=suma_tx+vecx[i];
          suma_ty=suma_ty+vecy[i];
          suma_tz=suma_tz+vecz[i];
     }
     nv++;
     vecx[nv]=suma_tx;
     vecy[nv]=suma_ty;
     vecz[nv]=suma_tz;
     printf("La suma total es de (%0.2f,%0.2f,%0.2f)n",suma_tx,suma_ty,suma_tz);
     return 0;
     }     
int lectura(){
          for(j=1;j<=64;++j){
          printf("Ingresa el valor de x en tu %d vector n",j);
          scanf("%f",&x);
          vecx[j]=x;
          printf("Ingresa el valor de y en tu %d vector n",j);
          scanf("%f",&y);
          vecy[j]=y;
          printf("Ingresa el valor de z en tu %d vector n",j);
          scanf("%f",&z);
          vecz[j]=z;
          printf("¿Deseas agregar otro vector?n");
          printf("No.........(cualquier tecla)n");
          printf("Sí.......................(1)n");
          scanf("%d",&r);
          system("clear");
          nv ++;
          if(r!=1) break;
          }
          system("clear");
     return 0;
     }
int menu(){
     printf("¿Que deseas hacer? n");
          printf("Multiplicar vector por un escalar.................(1)n");
          printf("Multiplicar vector por otro vector(punto).........(2)n");
          printf("Multiplicar vector por otro vector(cruz)..........(3)n");
          printf("Sumar todos los vectores..........................(4)n");
          printf("Restar todos los vectores.........................(5)n");
          printf("Personalizada.....................................(6)n");
     scanf("%d",&respuesta);
     while(respuesta<=0 || respuesta >=7){
          printf("Opcion invalidan");
          printf("¿Que deseas hacer? n");
          printf("Multiplicar vector por un escalar.................(1)n");
          printf("Multiplicar vector por otro vector(punto).........(2)n");
          printf("Multiplicar vector por otro vector(cruz)..........(3)n");
          printf("Sumar todos los vectores..........................(4)n");
          printf("Restar todos los vectores.........................(5)n");
          printf("Personalizada.....................................(6)n");
          scanf("%d",&respuesta);
          }
          system("clear");
     return respuesta;
     }
int mult_vect_vect(){
     muestra();
     printf("Selecciona el vector a multiplicarn");
     scanf("%d",&vect_mult_uno);
     printf("Selecciona el otro vector a multiplicarn");
     scanf("%d",&vect_mult_dos);
     mult_vectx=vecx[vect_mult_uno]*vecx[vect_mult_dos];
     mult_vecty=vecy[vect_mult_uno]*vecy[vect_mult_dos];
     mult_vectz=vecz[vect_mult_uno]*vecz[vect_mult_dos];
     multpunt=mult_vectx+mult_vecty+mult_vectz;
printf("El resultado es de %0.2fn",multpunt);
     return 0;
     }
int muestra(){
          for(i=1;i<=nv;++i){
          printf("EL vector %d =(%0.2f,%0.2f,%0.2f)n",i,vecx[i],vecy[i],vecz[i]);
          }
return 0;
     }
int mult_vector_esc (){
     muestra();
     printf("Ingresa el numero del vector elegidon");
     scanf("%d",&vec_select);
     while(vec_select<nv && vec_select>nv){
          printf("Vector no registrado, intente nuevamenten");
          muestra();
     scanf("%d",&vec_select);
          }
     printf("Ingresa el escalar a multiplicar por (%0.2f,%0.2f,%0.2f)n",vecx[vec_select],vecy[vec_select],vecz[vec_select]);     
     scanf("%d",&esc);
     nv++;
     vecx[nv]=vecx[vec_select]*esc;
     vecy[nv]=vecy[vec_select]*esc;
     vecz[nv]=vecz[vec_select]*esc;
     printf("El vector resultante se guardo en %d y es = (%0.2f,%0.2f,%0.2f)n",nv,vecx[nv],vecy[nv],vecz[nv]);
     return 0;
     }
int muestra_final(){
     system("clear");
    printf("Cartesiana                     Polar                     Esferican");
    for(int w=1; w<=nv; w++){
    printf("(%0.2f,%0.2f,%0.2f)         ((%0.2f),(%.2f°),(%.2f)        ((%0.2f),(%0.2f°),(%0.2f°))n",vecx[w],vecy[w],vecz[w],vecxp[w],vecyp[w],veczp[w],vecxe[w],vecye[w],vecze[w]);
    }
    return 0;
}
int mult_cruz(){
     muestra();
     printf("Selecciona el primer vector para la multiplicacion cruzn");
     scanf("%d",&pcvu);
     printf("Selecciona el primer vector para la multiplicacion cruzn");
     scanf("%d",&pcvd);
     xpc=-(vecy[pcvd]*vecz[pcvu])+(vecy[pcvu]*vecz[pcvd]);
     ypc=(vecz[pcvu]*vecx[pcvd])-(vecz[pcvd]*vecx[pcvu]);
     zpc=(vecx[pcvu]*vecy[pcvd])-(vecx[pcvd]*vecy[pcvu]);     
     nv++;
     vecx[nv]=xpc;
     vecy[nv]=ypc;
     vecz[nv]=zpc;
     muestra();
     return 0;
}

          
Comments: