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

ayudenme con un programilla

Estas en el tema de ayudenme con un programilla en el foro de C/C++ en Foros del Web. hola a todos me acabo de inscribir en este foro y acabo de empesar a estudiar programacion y me encargaron un programa y ya lo ...
  #1 (permalink)  
Antiguo 23/09/2006, 20:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
ayudenme con un programilla

hola a todos me acabo de inscribir en este foro y acabo de empesar a estudiar programacion y me encargaron un programa y ya lo hice segun yo pero al compilarlo me aparese un error y la vdd no c cual sea pero bno les mostrare como ise el prog ahi va no si este bn o mal pero bueno denme una ayidadilla


/* programa final
jesusalberto
22-sep-06*/

#include <iostream.h>
main () {
char resp,nom;
int cal;

cout<<"\n Capturar el nombre ";
cin>>nom;
cout<<"\n Capturar la calificacion ";
cin>>cal;
if(cal<=5){
cout<<"\n REPROBADO ";
}
else{
if(cal==6){
cout<<"\n SUFICIENTE ";
}

else{
if(cal==7){
cout<<"\n REGULAR ";
}

else{
if(cal==8){
cout<<"\n BIEN ";
}

else{
if(cal==9){
cout<<"\n MUY BIEN ";
}


else{
if(cal==10){
cout<<"\n EXELENTE ";
}

else{
cout<<"\ no selecciono numero ";
}

cout<<"\n precione cualquier tecla para finalizar ";
cin>>resp;

return 0;
}
  #2 (permalink)  
Antiguo 24/09/2006, 03:59
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
tu problema esta en el uso de else if,

cuando lo que queremos evaluar valores enteros, lo recomendable por facilidad y claridad es el switch.
tambien podemos usar el if pero en este caso lo correcto seria.


if(opc1)
{
//hacer 1;
}
else if(opc2)
{
//hacer 2;
}
else if(opc3)
{
//hacer 3;
}
else
{
//caso por default;
}

simepre que tengas una evaluacion mas tienes que usar else + (espacio)+ if
de lo contrario(si ya no compararas mas) usa else.


con switch seria algo como:

switch(cal)
{
case 1: //hacer 1; break;
case 2: //hacer 2; break;
case 3: //hacer 3; break;
case 4:
case 5: //hacer 4 y 5; break;
default: //hacer por default;
}

como puedes ver te permite una sintaxis mas clara y facil.

Que compilador usas?

lo pregunto por que estas usando un estilo, que no se adapta a los mas modernos compiladores de C++. imagino qu eTurbo C++ o alguna vieja vercion del VC++.

en un compilador actual, para incluir una libreria de C++:

#include <iostream> (sin .h).

using namespace std; (para acceder al espacion de nombre estandar de la lib C++).

el main:

int main()// con argumentos seria int main(int argc, char *argv[],[ (muy raramente)char *envp[] ] ).
{
return 0; //al final de tu codigo.
}

Saludos.
  #3 (permalink)  
Antiguo 24/09/2006, 21:54
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
uso visual c++ pero tengo ke usar if else la vdd no entendi mucho esk komo te digo akabo de comensar a estudiar esto
  #4 (permalink)  
Antiguo 25/09/2006, 10:43
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
ayudenmeee porfa miren tambn cuando ia voy a compilar el programa al final me aparese un error qe dice

fatal error C1004: unexpected end of file found

no c si este mal todo el programa pro porfa una ayudadilla
  #5 (permalink)  
Antiguo 25/09/2006, 18:15
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
Bueno, supongo que te explicado bien, es tan solo de modificar tu codigo, usando los tips, que te he mencionad.

en lugar de usar :

if()
{
}
else
{
if ()
{
}
}
else
{
if()
{
}
}
//etc.

una sentencia if, solo puede tener un else, aun que puede tener varios else if.

tu error, puede estar cusado por :

la declaracion de main, y las repetidas sentencioas else para un solo if.

Saludos.
  #6 (permalink)  
Antiguo 25/09/2006, 18:32
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 2 meses
Puntos: 1
Espero que te sirva, por cierto el nombre solo sera de un caracter, si quieres que sea mas larga ponlo en la declaracion(ejemplo para nombre de maximo 10 caracteres:char resp,nom[10];).

/* programa final
jesusalberto
22-sep-06*/

#include <iostream.h>
main () {
char resp,nom;
int cal;

cout<<"\n Capturar el nombre ";
cin>>nom;
cout<<"\n Capturar la calificacion ";
cin>>cal;

if(cal<=5) cout<<"\n REPROBADO ";
else if(cal==6) cout<<"\n SUFICIENTE ";
else if(cal==7) cout<<"\n REGULAR ";

else if(cal==8) cout<<"\n BIEN ";


else if(cal==9) cout<<"\n MUY BIEN ";



else if(cal==10) cout<<"\n EXELENTE ";


else cout<<"\n no selecciono numero ";

cout<<"\n precione cualquier tecla para finalizar ";
cin>>resp;

return 0;
}

Un saludo! y vigila las llaves porque al usar tantas para cada condicion creo que no cerrabas algunas...
  #7 (permalink)  
Antiguo 25/09/2006, 22:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
OK tratare de llevar este programa pero creo k no lo van a qerer asi pork a mi aun no me enseñan a utilisar el if else sin llaves pero bueno kreo ke ya pedi mucho o si aun me quieren ayudar diciendome qe llaves no serre o kual es mi problemilla en ese programa k io hice komokiera muchas gracias si me sirvio el programa ke me pasaste juanjo pero si no resuelvo el error que tengo tendre ke dejarlo asi pero porfilla si me dicen ke error tengo en mi programa o ke llaves no serre estaria perfecto graciaas
  #8 (permalink)  
Antiguo 26/09/2006, 01:42
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 2 meses
Puntos: 1
No cierras ninguno de los else...mira

/* programa final
jesusalberto
22-sep-06*/

#include <iostream.h>
main () {
char resp,nom;
int cal;

cout<<"\n Capturar el nombre ";
cin>>nom;
cout<<"\n Capturar la calificacion ";
cin>>cal;
if(cal<=5)
{
cout<<"\n REPROBADO ";
}
else
{
if(cal==6)
{
cout<<"\n SUFICIENTE ";
}
else
{
if(cal==7)
{
cout<<"\n REGULAR ";
}
else
{
if(cal==8)
{
cout<<"\n BIEN ";
}
else
{
if(cal==9)
{
cout<<"\n MUY BIEN ";
}
else
{
if(cal==10)
{
cout<<"\n EXELENTE ";
}
else
{
cout<<"\n no selecciono numero ";
}
}
}
}
}
}


cout<<"\n precione cualquier tecla para finalizar ";
cin>>resp;

return 0;
}

Prueba ahora, creo que no me deje nada en este PC no puedo comprobarlo, pero creo que las llaves en negritas son las que te dejaste por cerrar.
Tabula los else y ves viendo que no los cerraste que no era tan dificil.

Un saludo!
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 06:49.