Principales respuestas
Alguna sugerencia

Pregunta
-
hola amigos, gracias de antemano, este prorama cuenta con 5 casos independientes, los 3 primeros corren bien y ejecutan las instrucciones pero los 2 ultimos no, me podrian hechar una mano con el.
#include<iostream>
using namespace std;
void main()
{
int n,cper=0,cp=0,r=0,a,b,op,hmen=0,hm=0,mm=0,mmen=0,q=0,z=0,x=0,c=0,v=0,f,d,s,h=0,i,k=0,e,t,p,bn=0,ap=0,j=0,y,por;cout<<"1. CAULCULADOR DE NOTAS "<<endl;
cout<<"2. CALCULADOR DE EDAD Y SEXO "<<endl;
cout<<"3. CALCULADOR DE ESTATURA PARA ESTUDIANTES "<<endl;
cout<<"4. CALCULADOR DE NUMEROS DE VENTAS Y COMISIONES "<<endl;
cout<<"5. CALCULADOR DE DEPORTISTAS DEL COLDEPORTE "<<endl;
cout<<"DIGITE LA OPCION ";
cin>>op;
switch(op)
{
case 1:
cout<<"DIGITE LA NOTA: ";
cin>>n;
while (n!=-1)
{
if (n>=0 && n<3)
cper++;
else
if (n>=3 && n<=5)
cp++;
else
{
cout<<"NOTA NO VALIDA"<<endl;
}
cin>>n;
}
cout<<"PASARON= " <<cp<< "PERDIERON= " <<cper<<endl;
break;
case 2:
char b;
cout<<"DIGITE LA EDAD ";
cin>>a;
cout<<"DIGITE EL SEXO ";
cin>>b;
while(a!=0)
{
if (a>18 && b=='h')
hm++;
else
if (a<18 && b=='h')
hmen++;
else
if (a>18 && b=='m')
mm++;
else
if (a<18 && b=='m')
mmen++;
else
{
cout<<"SEXO NO VALIDO"<<endl;
}
cout<<"DIGITE LA EDAD";
cin>>a;
cout<<"DIGITE EL SEXO";
cin>>b;
}
cout<<" HAY HOMBRE MAYORES " <<hm<< " HAY HOMBRE MENORES " <<hmen<< " HAY MUJERES MAYORES " <<mm<<" HAY MUJERES MENORES "<<mmen<<endl;
break;
case 3:cout<<"DIGITE LA ESTATURA: ";
cin>>n;
while (n!=0)
{
if (n<=160)
q++,z++;
else
if (n>1.60 && n<170)
q++,x++;
else
if (n>=1.70 && n<180)
q++,c++;
else
if (n>180)
q++,v++;
else
{
cout<<"ESTATURA NO VALIDA"<<endl;
}
cin>>n;
}
cout<<" NUMERO DE ESTUDIANTES " <<q<< " ESTUDIANTES CON ESTATURA DE 160 " <<z<< " ESTUDIANTES CON ESTATURA ENTRE 160 Y 170 " <<x<< " ESTUDIANTES CON ESTATURA ENTRE 170 Y 180 " <<c<< " ESTUDIANTES CON ESTATURA MAYOR A 180 " <<v<<endl;
break;
case 4:
cout<<"DIGITE EL VALOR DE LA VENTA ";
cin>>a;
while(a!=0)
{
if (a<=5000000)
{
c=a*0.05;
h++;
k=k+c;
cout<<"SU COMISION ES "<<c<<endl;
}
else
if (a>5000001 && a<10000000)
{
d=a*0,075;
h++;
k=k+d;
cout<<" SU COMISION ES "<< d<<endl;
}
else
if (a>10000001 && a<2000000)
{
s=a*0.1;
h++;
k=k+s;
cout<<" SU COMISION ES "<< s<<endl;
}
else
if (a>20000000)
{
f=a*0.15;
h++;
k=k+f;
cout<<" SU COMISION ES "<<f<<endl;
}
cout<<"DIGITE EL VALOR DE LA VENTA ";
cin>>a;
}
cout<<"SUS VENTAS REALIZADAS SON: "<<h<<endl;
cout<<"SU COMISION TOTAL ES " <<k<<endl;
case 5 :
cout<<"INGRESE EDAD DEL DEPORTISTA ";
cin>>e;
cout<<"INGRESE TALLA DEL DEPORTITA ";
cin>>t;
cout<<"INGRESE PESO DEL DEPORTISTA ";
cin>>p;
while(e!=0)
{
if (e<18 && t>=180 && p<=80)
ap++;bn++;
y=j+bn;por=ap*100/y;
cout<<"EL NUMERO DE DEPORTISTA ES "<<y<<endl;cout<<"INGRESE EDAD DEL DEPORTISTA ";
cin>>e;
cout<<"INGRESE TALLA DEL DEPORTITA ";
cin>>t;
cout<<"INGRESE PESO DEL DEPORTISTA";
cin>>p;
}
cout<<"EL NUMERO DE DEPROTISTAS DE COLDEPORTES ES :"<<y<<endl;
cout<<"EL NUMERO DE DEPROTISTAS APTOS SON "<<ap<<endl;
cout<<"EL NUMERO DE DEPORTITAS NO APTOS SON "<<bn<endl;
cout<<"EL PORCIENTO ENTRE EL TOTAL D DEPORTISTAS Y LOS APTOS SON "<<por<<endl;
default:cout<<"CASO NO EXISTE";
}
}
Respuestas
-
En cierta medida dedoz tiene razón, pero voy a ampliarte el tema sin darte la solución (lo siento, va en contra de mis principios hacerlo por muchos motivos que no vienen al caso).
Ambos problemas son el mismo problema: resolución de polinomios mediante un programa. Aquí entramos en temas de matemáticas básicas (al menos eran básicas cuando yo estudié, lo mismo ahora, con los nuevos planes, forma parte de los estudios universitarios -lo siento, no puedo evitar ser sarcástico). Un polinomio tiene la forma
f(x)=a*x^n + b*x^(n-1) + c*x^(n-2) + ... p
en donde a, b, c, etc son los coeficientes y n, n-1, n-2, etc son los exponentes.
En tu caso, el primer problema resuelve en
f(x)=3*x-5,
una función lineal.
En el segundo,
f(n)=n*(n-1)=n^2-n
una función de segundo grado.
Ambas representaciones tienen su equivalencia exacta ec C++:
int x,n;
int f_de_x=3*x-5;
int f_de_n=n*(n-1); //también n*n-n; o incluso pow(n,2)-n;
Tan sólo te queda meter esa ecuación en el bucle e ir imprimiéndola. Para que te hagas una idea, la variable contadora del primer bucle for es x y la del segundo, n.
Lo demás viene en la ayuda del compilador.
Nota: existe una forma genérica de operar y transformar polinomios y en general todo tipo de funciones colocando los coeficientes dentro de matrices y asumiendo que el índice de la matriz es el exponente y teniendo en cuenta de poner a cero aquellas posiciones no usadas. Luego se opera mediante bucles con los coeficientes de la matriz, y de ahí al infinito... ;-)- Editado RFOGModerator domingo, 12 de abril de 2009 11:01 corrección sintáctica
- Propuesto como respuesta webJoseModerator viernes, 1 de febrero de 2013 14:33
- Marcado como respuesta webJoseModerator domingo, 3 de febrero de 2013 19:00
Todas las respuestas
-
¿Y qué es lo que te pasa en las opciones 4 y 5? Yo no veo ningún problema de sintaxis, pero la lógica no la entiendo. QUizás tengas algún desbordamiento de buffer en las multiplicaciones. Además, todo lo estás haciendo con enteros, por lo que siempre obtendrás un sensible grado de error acumulativo en las multiplicaciones y divisiones.
Por otro lado, lo mejor que puedes hacer (si es un problema de lógica en tu programa) es depurarlo con el depurador integrado del IDE y ver dónde falla.- Propuesto como respuesta webJoseModerator viernes, 1 de febrero de 2013 14:33
- Votado como útil webJoseModerator viernes, 1 de febrero de 2013 14:33
-
muchas gracias amigo, sos un duro, me podrias echar una mano con estos ejercicios que la verdad no entiendo como hacerlos usando el FOR muchas gracias
1. Resolver la funcion f (x)= x+x+x-5, para x tomando valores desde 0 hasta 10 en incremento de 1
2. Calcular el numero de lineas directas necesarias para mantener una red conectada en forma directa para n telefonos. 2<=n<=100.
El sistema debe entregar de respuesta la cantidad de lineas necesarias para la conexion de 2 a 100 telefonos.
El numero de lineas directas necesarias para mantener una red conectada en forma directa para n telefonos esta dada por la formula: n(n-1) lineas = 2
por ejemplo las instituciones financieras de wall street, utilizan este tipo de red para mantener continuamente lineas telefonicas directas y abiertas entre las empresas.
Para conectar 4 telefonos en forma directa requiere 6 lineas individuales.
espero su gran colaboracion, muchas gracias -
Hola Jamescua
Si no sabes implementar x+x+x-5 con un for, lo mejor es que te busques un manual basico de programacion, de cualquier lenguaje estructurado, puesto que la implementacion de tal tarea es bastante trivial. Seguramente estas aprendiendo a programar, donde te han dado estos ejercicios. Aprovechalos, para aprender, no busques a otro que te los resuelva.
// estructura tipica de un for
for ( inicializacion ; condiciones de termino ; incrementos )
// un FOR tipico luce como
for ( i = 0 ; i < limite ; i++ )
....instrucciones....
saludos -
-
En cierta medida dedoz tiene razón, pero voy a ampliarte el tema sin darte la solución (lo siento, va en contra de mis principios hacerlo por muchos motivos que no vienen al caso).
Ambos problemas son el mismo problema: resolución de polinomios mediante un programa. Aquí entramos en temas de matemáticas básicas (al menos eran básicas cuando yo estudié, lo mismo ahora, con los nuevos planes, forma parte de los estudios universitarios -lo siento, no puedo evitar ser sarcástico). Un polinomio tiene la forma
f(x)=a*x^n + b*x^(n-1) + c*x^(n-2) + ... p
en donde a, b, c, etc son los coeficientes y n, n-1, n-2, etc son los exponentes.
En tu caso, el primer problema resuelve en
f(x)=3*x-5,
una función lineal.
En el segundo,
f(n)=n*(n-1)=n^2-n
una función de segundo grado.
Ambas representaciones tienen su equivalencia exacta ec C++:
int x,n;
int f_de_x=3*x-5;
int f_de_n=n*(n-1); //también n*n-n; o incluso pow(n,2)-n;
Tan sólo te queda meter esa ecuación en el bucle e ir imprimiéndola. Para que te hagas una idea, la variable contadora del primer bucle for es x y la del segundo, n.
Lo demás viene en la ayuda del compilador.
Nota: existe una forma genérica de operar y transformar polinomios y en general todo tipo de funciones colocando los coeficientes dentro de matrices y asumiendo que el índice de la matriz es el exponente y teniendo en cuenta de poner a cero aquellas posiciones no usadas. Luego se opera mediante bucles con los coeficientes de la matriz, y de ahí al infinito... ;-)- Editado RFOGModerator domingo, 12 de abril de 2009 11:01 corrección sintáctica
- Propuesto como respuesta webJoseModerator viernes, 1 de febrero de 2013 14:33
- Marcado como respuesta webJoseModerator domingo, 3 de febrero de 2013 19:00
-
salio el duro del c++, de todos modos gracias demuestralo, no con el primero sino con el segundo, ese es el que no logrointerpretar
"Si no sabes implementar x+x+x-5 con un for, lo mejor es que te busques un manual basico de programacion"
No fue mi intencion tratarte de novato, quiza me exprese mal =( , simplemente veo que es un problema tipico de los que nos entregan cuando partimos aprendiendo programacion, y lo mejor es aprovechar la instancia para aprender, mas que para resolver el problema.
Saludos. -
Hola,
Esta es una calculadora de polinomios en c# que facilmente se puede convertir en c++ y usar la clase que hacen los calculos. Esero sea util:
http://xgeeker.blogspot.com/2012/11/ejemplo-de-una-calculadora-de.html
Jose Mendez.
Blog
Ejemplos de codigos/Code Samples
If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
Si un Post responde a tu pregunta, por favor "Marcala como Respondida" y "Vota como útil".