Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Juan821

#21
Cita de: rir3760 en  5 Junio 2014, 04:26 AM
Pues habra que revisar tu codigo fuente actualizado ya que las indicaciones de Drewermerc deben solucionar el problema siempre y cuando las apliques correctamente.

Explicando un poco mas a detalle el problema se genera en los casos de (la sentencia condicional) switch:
Código (cpp) [Seleccionar]
switch (s) {
case 1: {
   int His();
   break;
}
case 2: {
   int Cien();
   break;
}
case 3: {
   int Depor();
   break;
}
case 4: {
   int Geo();
   break;
}
}

El detalle ahí es que no estas llamando a las funciones, las estas declarando.

Para solucionarlo se debe cambiar a:
Código (cpp) [Seleccionar]
// Las funciones no requieren de argumentos
int His();
int Cien();
int Depor();
int Geo();

// ...

switch (s){
case 1:
   His();
   break;
case 2:
   Cien();
   break;
case 3:
   Depor();
   break;
case 4:
   Geo();
   break;
}


Otras partes que se deben modificar en el programa son:

* Utilizar el nombre correcto de los encabezados en C++: <cstdlib> y <ctime>, el encabezado <stdio.h> no es necesario en el programa y su directiva de inclusión debe eliminarse.

* Evitar el uso de la biblioteca conio de Borland, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

* La llamada a srand hay que colocarla justo al principio de la función main pero fuera del bucle.

* No es necesaria la variable "s" ya que puedes utilizar la expresión "rand() % 4 + 1" directamente para controlar la rama de ejecución en el condicional:
Código (cpp) [Seleccionar]
switch (rand() % 4 + 1){
// ...


Un saludo

Pero ya solucione el problema lo de la libreria conio.h porque la reemplazaria necesito la pausa en el sistema hasta que se presione una tecla
#22
Cita de: rir3760 en  5 Junio 2014, 04:26 AM
Pues habra que revisar tu codigo fuente actualizado ya que las indicaciones de Drewermerc deben solucionar el problema siempre y cuando las apliques correctamente.

Explicando un poco mas a detalle el problema se genera en los casos de (la sentencia condicional) switch:
Código (cpp) [Seleccionar]
switch (s) {
case 1: {
   int His();
   break;
}
case 2: {
   int Cien();
   break;
}
case 3: {
   int Depor();
   break;
}
case 4: {
   int Geo();
   break;
}
}

El detalle ahí es que no estas llamando a las funciones, las estas declarando.

Para solucionarlo se debe cambiar a:
Código (cpp) [Seleccionar]
// Las funciones no requieren de argumentos
int His();
int Cien();
int Depor();
int Geo();

// ...

switch (s){
case 1:
   His();
   break;
case 2:
   Cien();
   break;
case 3:
   Depor();
   break;
case 4:
   Geo();
   break;
}


Otras partes que se deben modificar en el programa son:

* Utilizar el nombre correcto de los encabezados en C++: <cstdlib> y <ctime>, el encabezado <stdio.h> no es necesario en el programa y su directiva de inclusión debe eliminarse.

* Evitar el uso de la biblioteca conio de Borland, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

* La llamada a srand hay que colocarla justo al principio de la función main pero fuera del bucle.

* No es necesaria la variable "s" ya que puedes utilizar la expresión "rand() % 4 + 1" directamente para controlar la rama de ejecución en el condicional:
Código (cpp) [Seleccionar]
switch (rand() % 4 + 1){
// ...


Un saludo

Lo de las librerias me exige visual studio que sea asi, lo de la variable a la final fue por lo que no me daba intentado solucionarlo he llegado hasta alla y lo otro ya lo arregle pero me sigue saliendo el error que no acepta 0 argumentos
#23
Bueno el problema que me sale es que la funcion no puede aceptar argumentos 0
#24
Pero cuando lo hago asi me aparece el error de compilacion ya lo intente
#25
(uso visual studio 2010) en este programa trato de que entre a una categoria cualquiera para hacer una serie de preguntas pero ese es el error que no entra a ninguno de los casos

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
int His(int);
int Cien(int);
int Depor(int);
int Geo(int);
int c=1;
int main()
   {
      int s,tot,u=0;
       while (c==1)
      {
      cout<<"Presione cualquier tecla para escoger su categoria"<<endl;
      getch();
      srand(time(NULL));
      s=rand()% 4 + 1;
      cout<<"Presione cualquier tecla para escoger su categoria"<<s<<endl;
      switch (s)
      {
      case 1:
         {
            int His();
            break;
         }
      case 2:
         {
            int Cien();
            break;
         }
      case 3:
         {
            int Depor();
            break;
         }
      case 4:
         {
            int Geo();
            break;
         }
      }
      }
      system ("pause");
      return 0;
   }

int His()
{
   system ("cls");
   cout<<"<===============Su categoria es historia===============>"<<endl;
   cout<<"Presione cualquier tecla para continuar"<<endl;
   getch();
   return 0;
}
int Depor()
{
   system ("cls");
   cout<<"<===============Su categoria es Ciencia===============>"<<endl;
   cout<<"Presione cualquier tecla para continuar"<<endl;
   getch();
   return 0;
}
int Cien()
{
   system ("cls");
   cout<<"<===============Su categoria es Deportes===============>"<<endl;
   cout<<"Presione cualquier tecla para continuar"<<endl;
   getch();
   return 0;
}
int Geo()
{
   system ("cls");
   cout<<"<===============Su categoria es Deportes===============>"<<endl;
   cout<<"Presione cualquier tecla para continuar"<<endl;
   getch();
   return 0;
}