elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tengo un problema ayuda!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tengo un problema ayuda!  (Leído 2,546 veces)
Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Tengo un problema ayuda!
« en: 5 Junio 2014, 03:37 am »

(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;
}


« Última modificación: 5 Junio 2014, 04:07 am por Juan821 » En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Tengo un problema ayuda!
« Respuesta #1 en: 5 Junio 2014, 04:14 am »

hola amigo.
bueno supongo que el error radica en que el prototipo de la funcion esta mal por que yo que sepa si no se vana pasar variable no tienes que poner nada en lo parentesis y aparte de que lo indicas que que se pasara una variable int pero ni siquiera poner el nombre de la variable.
y tambien cuando llamas a la funcion solo es el puro nombre sin el int seria algo asi.

Código
  1. //prototipo correcto
  2. int Depor();
  3.  
  4. // cuando se llama a la funcion es asi
  5. Depor();
  6.  

Saludos.
Drewermerc.


En línea

Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo un problema ayuda!
« Respuesta #2 en: 5 Junio 2014, 04:19 am »

Pero cuando lo hago asi me aparece el error de compilacion ya lo intente
En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Tengo un problema ayuda!
« Respuesta #3 en: 5 Junio 2014, 04:22 am »

que error es el que te manda.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Tengo un problema ayuda!
« Respuesta #4 en: 5 Junio 2014, 04:26 am »

Pero cuando lo hago asi me aparece el error de compilacion ya lo intente
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
  1. switch (s) {
  2. case 1: {
  3.   int His();
  4.   break;
  5. }
  6. case 2: {
  7.   int Cien();
  8.   break;
  9. }
  10. case 3: {
  11.   int Depor();
  12.   break;
  13. }
  14. case 4: {
  15.   int Geo();
  16.   break;
  17. }
  18. }
El detalle ahí es que no estas llamando a las funciones, las estas declarando.

Para solucionarlo se debe cambiar a:
Código
  1. // Las funciones no requieren de argumentos
  2. int His();
  3. int Cien();
  4. int Depor();
  5. int Geo();
  6.  
  7. // ...
  8.  
  9. switch (s){
  10. case 1:
  11.   His();
  12.   break;
  13. case 2:
  14.   Cien();
  15.   break;
  16. case 3:
  17.   Depor();
  18.   break;
  19. case 4:
  20.   Geo();
  21.   break;
  22. }

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
  1. switch (rand() % 4 + 1){
  2. // ...

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo un problema ayuda!
« Respuesta #5 en: 5 Junio 2014, 04:31 am »

Bueno el problema que me sale es que la funcion no puede aceptar argumentos 0
En línea

Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo un problema ayuda!
« Respuesta #6 en: 5 Junio 2014, 04:34 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
  1. switch (s) {
  2. case 1: {
  3.   int His();
  4.   break;
  5. }
  6. case 2: {
  7.   int Cien();
  8.   break;
  9. }
  10. case 3: {
  11.   int Depor();
  12.   break;
  13. }
  14. case 4: {
  15.   int Geo();
  16.   break;
  17. }
  18. }
El detalle ahí es que no estas llamando a las funciones, las estas declarando.

Para solucionarlo se debe cambiar a:
Código
  1. // Las funciones no requieren de argumentos
  2. int His();
  3. int Cien();
  4. int Depor();
  5. int Geo();
  6.  
  7. // ...
  8.  
  9. switch (s){
  10. case 1:
  11.   His();
  12.   break;
  13. case 2:
  14.   Cien();
  15.   break;
  16. case 3:
  17.   Depor();
  18.   break;
  19. case 4:
  20.   Geo();
  21.   break;
  22. }

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
  1. switch (rand() % 4 + 1){
  2. // ...

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
En línea

Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo un problema ayuda!
« Respuesta #7 en: 5 Junio 2014, 04:38 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
  1. switch (s) {
  2. case 1: {
  3.   int His();
  4.   break;
  5. }
  6. case 2: {
  7.   int Cien();
  8.   break;
  9. }
  10. case 3: {
  11.   int Depor();
  12.   break;
  13. }
  14. case 4: {
  15.   int Geo();
  16.   break;
  17. }
  18. }
El detalle ahí es que no estas llamando a las funciones, las estas declarando.

Para solucionarlo se debe cambiar a:
Código
  1. // Las funciones no requieren de argumentos
  2. int His();
  3. int Cien();
  4. int Depor();
  5. int Geo();
  6.  
  7. // ...
  8.  
  9. switch (s){
  10. case 1:
  11.   His();
  12.   break;
  13. case 2:
  14.   Cien();
  15.   break;
  16. case 3:
  17.   Depor();
  18.   break;
  19. case 4:
  20.   Geo();
  21.   break;
  22. }

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
  1. switch (rand() % 4 + 1){
  2. // ...

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
En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Tengo un problema ayuda!
« Respuesta #8 en: 5 Junio 2014, 04:38 am »

podrias poner el error que te da el compilador. y tu codigo completo.
En línea

Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo un problema ayuda!
« Respuesta #9 en: 5 Junio 2014, 04:40 am »

No ya resolvi el problema muchas gracias fue un error de mi profesor a enseñarme algo que no era pero porque prodia reemplazar ese getch que necesito para hacer una pausa en el sistema para poder quitar la libreria conio.h
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con este problema que tengo
Java
dj wou 1 1,869 Último mensaje 6 Septiembre 2010, 22:56 pm
por danielo-
Ayuda, tengo un problema
Programación C/C++
Miraii 1 1,380 Último mensaje 16 Noviembre 2012, 03:09 am
por m@o_614
Ayuda tengo un problema con mi portátil
Dudas Generales
Pina_A7x 2 2,418 Último mensaje 10 Agosto 2015, 18:18 pm
por Randomize
Ayuda, tengo un problema en la opcion de salir
Programación C/C++
padiuwu 1 1,349 Último mensaje 24 Agosto 2018, 05:54 am
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines