Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema al llamar funciones en c++

Estas en el tema de problema al llamar funciones en c++ en el foro de C/C++ en Foros del Web. bueno soy nuevo usando c++ y aun tengo algunos problemas y es que al llamar funciones a un switch (es decir juntar varios problemas que ...
  #1 (permalink)  
Antiguo 09/12/2014, 02:50
 
Fecha de Ingreso: diciembre-2014
Ubicación: Veracruz
Mensajes: 6
Antigüedad: 9 años, 4 meses
Puntos: 0
Exclamación problema al llamar funciones en c++

bueno soy nuevo usando c++ y aun tengo algunos problemas y es que al llamar funciones a un switch (es decir juntar varios problemas que ya habia hecho anterior mente y crear un menu) y al momento de elegirlas simplemente termina el programa y no ejecuta el bloque de codigo que esta en las funciones , mi pregunta es , que estoy haciendo mal ? de antemano gracias por la ayuda

Código:
#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;

int circuito_mixto();
int VCA();
int determinantes();

int main()//aqui esta mi funcion principal<===============
{
 int ele;
 cout<<"Eleige una de las siguientes obciones \n1)Calcular circuito mixto\n2)Calcular circuito alterno\n3)Calcular determinantes "<<endl;
 cin>>ele;
 switch(ele)//comiensa a elegir y llamar a la funcion  o eso se supone que deveria hacer
 {
 	case'1':circuito_mixto();break;
 	case'2':VCA();break;
 	case'3':determinantes();break;
 	
 }
 return EXIT_SUCCESS;
}

//Mi primer problema en el menu<===============

int circuito_mixto()
{
float V,rs,ram,rp,RS[10],RPs[10],RAM[10];//valores que ingresa el usuario
float sumars=0,sumrm[10]={0},SRP=0,VS[10],PS[10],SVS=0,I[10],P[10];//variables dentro de ciclos for
float RP,RT,IT,PT,VP;//variables estaticas (fuera del ciclo for)
cout<<"::::::PROGRAMA PARA CALCAULAR RESISTENCIAS DE CIRCUITOS MIXTOS::::::"<<endl;
cout<<"--------(no se calcularan circuitos con sub resistencias)-----------"<<endl;
cout<<"Por favor ingresa el voltaje de tu circuito"<<endl;
cin>>V;//valor del voltaje del circuito
cout<<"\n\nPor favor ingresa el numero de resistencias en serie del circuito"<<endl;
cin>>rs;//resistencias en serie
cout<<"Por favor ingresa el numero de ramas del circuito"<<endl;
cin>>ram;//ramas o caidas del voltaje del circuito a calcular
cout<<"Ahora por favor ingresa el numero de resistencias paralelas"<<endl;
cin>>rp;//resistencias paralelas
cout<<"\n\n"<<endl;
for(int i=1;i<=rs;i++)//se guardaran las resistencias en serie en un vector y se pediran con un for segun cuantas halla
{
cout<<"Cual es el valor de la resistencia en serie  ["<<i<<"] :  ";cin>>RS[i];
sumars+=RS[i];
}
cout<<"\n\n"<<endl;
for(int i=1;i<=rp;i++)//se guardaran las resistencias en serie en un vector y se pediran en un for segun cuantas halla
{
cout<<"Por favor ingresa la resistencia en parelelo : ";cin>>RPs[i];
cout<<"en que rama se encuentra dicha resistencia : ";cin>>RAM[i];
cout<<"\n";
}
cout<<"\n\n"<<endl;
for(int i=1;i<=ram;i++)//se inicia un ciclo segun la cantidad de resistencias paralelas que halla
{
	for(int j=1;j<=rp;j++)//se inicia otro ciclo segun la cantidad de ramas que halla
	{
		if(RAM[j]==i)//se verifica que lo ingresado en la posicion del vector sea igual a j si si aculara dicha resistencia
 		{sumrm[i]+=RPs[j];}
	}
}
for(int i=1;i<=ram;i++)
{
	SRP+=(1/sumrm[i]);//ya con la cantidad de resistencias sumadas en su respectiva rama , se procede a dividir 1 por cada rama aculada de resistencias
}
RP=(1/SRP);
RT=RP+sumars;//despues de obtener 1 entre cada rama y ser acumulado , se vuelve a dividir entre 1 lo que fue acumulado
IT=V/RT;//se dividira el voltaje entre la resistencia total para obtener la intencidad total del circuito
PT=V*IT;//se multiplicara el voltaje por la intencidad total para saber la potencia total , por que ?? por que el masetruli asi lo quiere JAJAJAJAJAJA
for(int i=1;i<=rs;i++)//segun la cantidad de resistencias en serie  se obtendra el votaje de cada una de ellas
{
	VS[i]=IT*RS[i];
	PS[i]=RS[i]*pow(IT,2);
	cout<<"El voltaje en serie "<<i<<" es  : "<<VS[i]<<" Volt's"<<endl;
	cout<<"La potencia en serie "<<i<<" es : "<<PS[i]<<" Volt's"<<endl;
	SVS+=VS[i];//se acumulara dicho voltaje en una sola variable por cada resistencia
}
cout<<"\n"<<endl;
VP=V-SVS;//al voltaje del circuito se le restara la acumulacion del voltaje en serie para obtener el voltaje en parelelo
for(int i=1;i<=ram;i++)
{
	I[i]=VP/sumrm[i];//se sacara una caida de voltaje segun la suma de la cantidad de resistncias de una rama dividido por el voltaje paralelo
   cout<<"La caida de voltaje en la rama ["<<i<<"] es de : "<<I[i]<<" Amp"<<endl;
}
cout<<"\n"<<endl;
for(int i=1;i<=rp;i++)//se inicia un ciclo segun la cantidad de resistencias paralelas que halla
{
	for(int j=1;j<=ram;j++)//se inicia otro ciclo segun la cantidad de ramas que halla
	{
		if(RAM[i]==j)//se verifica que lo ingresado en la posicion del vector sea igual a j si si culara dicha resistencia
		{P[i]=RPs[i]*pow(I[j],2);cout<<"La potencia de la resitencia "<<i<< "es de : "<<P[i]<<" Watts"<<endl; }
	}
}
cout<<"\n\nEl valor del voltaje paralelo es   : "<<VP<<" Volt's"<<endl;
cout<<"El valor de la resistencia paralela es : "<<RP<<" Ohms"<<endl;
cout<<"El valor de la resistencia total es    : "<<RT<<" Ohms"<<endl;
cout<<"El valor de la intencidad total es de  : "<<IT<<" Amp"<<endl;
cout<<"El valor de la potencia total es de    : "<<PT<<" Watts"<<endl;
return EXIT_SUCCESS;
}

//Mi segundo problema en el menu<===============

int VCA()
{
	char mc[2],ml[2];
	double xc,xl,x,z,i,csang,ang,ptz;
	double vol,her,res,cap,indu;
    double ncap,nindu;
    double pi=3.1416;	
	cout<<":::::PROGRAMA PARA CALCULAR CIRCUITOS PARALELOS:::::\n\n"<<endl;
	cout<<"Por favor ingrese el valor del voltaje : ";cin>>vol;
	cout<<"Por favor ingrese el valor de la frecuencia : ";cin>>her;
	cout<<"Por favor ingrese el valor de la resistencia del circuito : ";cin>>res;
	cout<<"ahora ingrese el valor de la capacitancia y su unidad de medida : ";cin>>cap>>mc;
	cout<<"ahora ingrese el valor de la inductancia  y su unidad de medida : ";cin>>indu>>ml;
	switch(mc[0])
	{
	case('u'):ncap=cap*pow(10,-6);break;
	case('p'):ncap=cap*pow(10,-9);break;
    }
    switch(ml[0])
	{
	case('m'):nindu=indu/1000;break;
	case('h'):nindu=indu;break;
    }
    
	xc=1/(2*pi*her*ncap);
	xl=(2*pi*her*nindu);
	x=xl-xc;
	z=sqrt(pow(x,2)+pow(res,2));
	i=vol/z;
	csang=res/z;
	ang=((acos(csang))*180)/pi;
	ptz=i*vol*csang;
	cout<<"\nLa reactancua capacitiva del circuito es de :------- "<<xc<<" ohms"<<endl;
	cout<<"\nLa reactancia inductiva del circuito es de :-------- "<<xl<<" ohms"<<endl;
	cout<<"\nLa reactancia total es de :------------------------- "<<x<<" ohms"<<endl;
	cout<<"\nLa ipedancia es de :-------------------------------- "<<z<<" ohms"<<endl;
	cout<<"\nLa caida de voltaje es de :------------------------- "<<i<<" Amp"<<endl;
	cout<<"\nEl angulo de fase es de :--------------------------- "<<ang<<char(248)<<endl;
	cout<<"\nLa potencia del circuito es de :-------------------- "<<ptz<<" Watts"<<endl;
	return EXIT_SUCCESS;
}

//Y mi tercer problema en el menu<===============

int determinantes()
{
float x[3],y[3],z[3];
float DS,DX,DY,Xr,Yr,lx[3],ly[3];
char ci,cx,cy;
int a=65;
cout<<"::::PROGRAMA PARA CALCULAR DETERMINANTES::::\n\n"<<endl;
for(int i=1;i<=2;i++)
{
cout<<"Por favor ingrese la formula general "<<char(a)<<" tal cual como la tiene"<<endl;
cin>>x[i]>>cx>>y[i]>>cy>>ci>>z[i];
a++;
}
cout<<"\n"<<endl;
DS=(x[1]*y[2])-(x[2]*y[1]);
DX=(z[1]*y[2])-(z[2]*y[1]);
DY=(x[1]*z[2])-(x[2]*z[1]);
Xr=DX/DS;
Yr=DY/DS;
for(int i=1;i<=2;i++)
{
	lx[i]=z[i]/x[i];
	ly[i]=z[i]/y[i];
	cout<<"el punto "<<i<<"X es: "<<lx[i]<<endl;
	cout<<"el punto "<<i<<"Y es: "<<ly[i]<<endl;
	cout<<"\n"<<endl;
}
cout<<"la determinante x es : "<<DX<<endl;
cout<<"la determinante Y es : "<<DY<<endl;
cout<<"la determinante sistema es : "<<DS<<endl;
cout<<"el punto de intersepcion de  x es : "<<Xr<<endl;
cout<<"el purto de intercepcion de  y es : "<<Yr<<endl;
return EXIT_SUCCESS;
}
  #2 (permalink)  
Antiguo 09/12/2014, 03:13
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: problema al llamar funciones en c++

El problema es que '1' no es lo mismo que 1. '1' es un char y la codificación del carácter '1' no coincide con el dígito 1. Quita esas comillas simples en el switch.

Un saludo
  #3 (permalink)  
Antiguo 09/12/2014, 08:44
 
Fecha de Ingreso: diciembre-2014
Ubicación: Veracruz
Mensajes: 6
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: problema al llamar funciones en c++

creo que pase muy por alto eso jajaja de verdad muchisimas gracias compañero!!!

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:28.