Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Riverxz en 21 Agosto 2016, 20:42 pm



Título: Problema con "misplaced else"
Publicado por: Riverxz en 21 Agosto 2016, 20:42 pm
Buenas  :D, recien estoy comenzando a programar el C++  y tengo el siguiente problema.
El programa debe recibir 3 notas, validarlas (entre 0 y 20), eliminar la menor y calcular el promedio. Mi problema está al validar la tercera nota, pues el programa manda el error "misplaced else"  :o
 Aqui les dejo mi código:

Usuario: UNI
la clave: 100
//definir librerias
# include<iostream>
# include<stdlib.h>
# include<stdlib.h>
# include<conio.h>
# include<stdio.h>
# include<time.h>
# include<windows.h>
# include<iomanip>

# define linea "------------------------------------------------------------"

void main ()
 {   char user[10];
   int psw,pc1,pc2,pc3;
  system("color 1B");system("title el mejor programa del mundo®");
  gotoxy(20,3);cout<<"MODELO DE VALIDACION";
  gotoxy(10,8);cout<<linea;
  gotoxy(10,15);cout<<linea;

    // getche();//ver mis resultados temporalmente

 //lectura de datos

 gotoxy(15,11);cout<<"usuario = "; gets(user);
 gotoxy(25,11);cout<<"****";
 gotoxy(15,13);cout<<"clave = ";cin>>psw;
 gotoxy(23,13);cout<<"***";
 getche();
 if((strcmp(strupr(user),"UNI")==0)&&(psw==100))
    {clrscr();system("color 3A");
      gotoxy(10,4);cout<<"bienvenido.....";
      getche();
            gotoxy(10,4);cout<<" calcular promedio...";
            gotoxy(5,5);cout<<linea;

            gotoxy(15,6);cout<<"Pc1="; cin>>pc1;
            if(pc1>=0 && pc1<=20)
             {
              gotoxy(15,10);cout<<"Correcto!";
              gotoxy(10,12);cout<<"PC2= ";cin>>pc2;
                if(pc2>=0 && pc2<=20)
                 {
                  gotoxy(15,13);cout<<"Correcto!";
                  gotoxy(15,15);cout<<"PC3= ";cin>>pc3;
                    if(pc3>=0 && pc3<=20)
                    {
                      gotoxy(15,13);cout<<"Correcto!";

                      //busqueda del nùmero menor
                      int menor=20;

                      if(menor>pc1)
                      {menor=pc1;
                      }
                      if(menor>pc2)
                      {menor=pc2;
                      };
                      if(menor>pc3)
                      {menor=pc3;
                      }
                      gotoxy(15,17);cout<<"MENOR NOTA = "<<menor;
                      float pp;
                      pp=((pc1+pc2+pc3)-menor)/2.0;
                      gotoxy(15,19);cout<<"Promedio... = "<<pp;
                      gotoxy(15,20);
                      cout<<setw(10)<<setprecision(3)<<pp;
                    }
                    else
                    {
                      gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                    }
                else
                 {
                  gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                 }
             }
            else
             {
               gotoxy(39,12);cout<<"Ha ingresado mal los datos";
             }




   }
 else
 {
    clrscr();system("color 4A");
    gotoxy(30,12);cout<<"Sr. sus datos estàn errados";
 }
 getche ();//ver mis resultados temporalmente;
 gotoxy(30,22);system("pause");//resultados en pantalla y mensaje "presina cualquier tecla para continuar";


 }
}


Título: Re: Problema con "misplaced else"
Publicado por: AlbertoBSD en 21 Agosto 2016, 20:58 pm
Hola antes que nada podrias decirnos en que linea esta el error?

Muchos no se molestan en leer codigos asi de largos por mas que quieran ayudar el tiempo invertido seria "excesivo"

Trata de colocar tu codigo en la etiqueta geshi:

Código
  1. int main() {
  2. //Código....
  3. }


La otra es que como estas apenas iniciando con la programación, trata de concentrarte en el codigo y dejes de lado el formato de salida ya que todos esos Gotoxy y clrscr solo estan estorbando el verdadero codigo.

La otra es que no uses la libreria Conio.h ya que no es estandar y la verdad te desvia del verdadero aprendizaje.


Saludos.


Título: Re: Problema con "misplaced else"
Publicado por: Riverxz en 21 Agosto 2016, 21:25 pm
Hola antes que nada podrias decirnos en que linea esta el error?

Muchos no se molestan en leer codigos asi de largos por mas que quieran ayudar el tiempo invertido seria "excesivo"

Trata de colocar tu codigo en la etiqueta geshi:

Código
  1. int main() {
  2. //Código....
  3. }


La otra es que como estas apenas iniciando con la programación, trata de concentrarte en el codigo y dejes de lado el formato de salida ya que todos esos Gotoxy y clrscr solo estan estorbando el verdadero codigo.

La otra es que no uses la libreria Conio.h ya que no es estandar y la verdad te desvia del verdadero aprendizaje.


Saludos.

Sorry olvidé mencionar la linea del error

//definir librerias
# include<iostream>
# include<stdlib.h>
# include<stdlib.h>
# include<conio.h>
# include<stdio.h>
# include<time.h>
# include<windows.h>
# include<iomanip>

# define linea "------------------------------------------------------------"

void main ()
 {   char user[10];
   int psw,pc1,pc2,pc3;
  system("color 1B");system("title el mejor programa del mundo®");
  gotoxy(20,3);cout<<"MODELO DE VALIDACION";
  gotoxy(10,8);cout<<linea;
  gotoxy(10,15);cout<<linea;

    // getche();//ver mis resultados temporalmente

 //lectura de datos

 gotoxy(15,11);cout<<"usuario = "; gets(user);
 gotoxy(25,11);cout<<"****";
 gotoxy(15,13);cout<<"clave = ";cin>>psw;
 gotoxy(23,13);cout<<"***";
 getche();
 if((strcmp(strupr(user),"UNI")==0)&&(psw==100))
    {clrscr();system("color 3A");
      gotoxy(10,4);cout<<"bienvenido.....";
      getche();
            gotoxy(10,4);cout<<" calcular promedio...";
            gotoxy(5,5);cout<<linea;

            gotoxy(15,6);cout<<"Pc1="; cin>>pc1;
            if(pc1>=0 && pc1<=20)
             {
              gotoxy(15,10);cout<<"Correcto!";
              gotoxy(10,12);cout<<"PC2= ";cin>>pc2;
                if(pc2>=0 && pc2<=20)
                 {
                  gotoxy(15,13);cout<<"Correcto!";
                  gotoxy(15,15);cout<<"PC3= ";cin>>pc3;
                    if(pc3>=0 && pc3<=20)
                     {
                      gotoxy(15,13);cout<<"Correcto!";

                      //busqueda del nùmero menor
                      int menor=20;

                      if(menor>pc1)
                      {menor=pc1;
                      }
                      if(menor>pc2)
                      {menor=pc2;
                      };
                      if(menor>pc3)
                      {menor=pc3;
                      }
                      gotoxy(15,17);cout<<"MENOR NOTA = "<<menor;
                      float pp;
                      pp=((pc1+pc2+pc3)-menor)/2.0;
                      gotoxy(15,19);cout<<"Promedio... = "<<pp;
                      gotoxy(15,20);
                      cout<<setw(10)<<setprecision(3)<<pp;
                     }
                    else
                     {
                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
                     }
                else//aqui menciona el error
                {
                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                }
             }
            else
             {
               gotoxy(39,12);cout<<"Ha ingresado mal los datos";
             }
   }
 else
 {
    clrscr();system("color 4A");
    gotoxy(30,12);cout<<"Sr. sus datos estan errados";
 }
 getche ();//ver mis resultados temporalmente;
 gotoxy(30,22);system("pause");//resultados en pantalla y mensaje "presina cualquier tecla para continuar";


 }
}

gracias de antemano


Título: Re: Problema con "misplaced else"
Publicado por: AlbertoBSD en 21 Agosto 2016, 21:56 pm
TE FALTO LA ETIQUETA GESHI....

Gracias por leer, te falto cerrar una llave:

Tu codigo actual esta asi:

Código
  1.                    else
  2.                     {
  3.                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
  4.                     }
  5.                else//aqui menciona el error
  6.                {
  7.                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
  8.                }

Y deberia de estar asi:

Código
  1.                    else
  2.                     {
  3.                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
  4.                     }
  5.               }// Te falto este fin de if.....
  6.                else//aqui menciona el error
  7.                {
  8.                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
  9.                }

Repito si te concentras mas en la funcionalidad y menos en el formato vas a aprender mas

Saludos


Título: Re: Problema con "misplaced else"
Publicado por: Riverxz en 21 Agosto 2016, 21:58 pm
TE FALTO LA ETIQUETA GESHI....

Gracias por leer, te falto cerrar una llave:

Tu codigo actual esta asi:

Código
  1.                    else
  2.                     {
  3.                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
  4.                     }
  5.                else//aqui menciona el error
  6.                {
  7.                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
  8.                }

Y deberia de estar asi:

Código
  1.                    else
  2.                     {
  3.                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
  4.                     }
  5.               }// Te falto este fin de if.....
  6.                else//aqui menciona el error
  7.                {
  8.                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
  9.                }

Repito si te concentras mas en la funcionalidad y menos en el formato vas a aprender mas

Saludos

Muchas gracias, para la próxima lo tomaré en cuenta  :D :D :D