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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con C++ , no encuentro un error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con C++ , no encuentro un error  (Leído 3,191 veces)
Ozharu-Ad

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Ayuda con C++ , no encuentro un error
« en: 14 Noviembre 2013, 03:16 am »

Hola , me han pedido desarrollar un examen en c++ , es decir, escribir los reactivos y las posibles respuestas y que al ejecutarse se selecciones una respuesta, de ser correcta en pantalla se debe mostrar "Felicidades, respuesta correcta" , o "Respuesta incorrecta" , además de mostrarle la calificacion obtenida al usuario.

me gusta ir "por partes" , ir comprobando que algo me quedó bien para continuar con lo que siguiera , he escrito mis 10 reactivos y mis 10 respuestas, pero aqui viene el problema, al "contruir" esta parte no me marca errores , pero al ejecutar el programa me escribe los 10 reactivos y HASTA las respuestas que le corresponden al 9, me marca error en el programa (ventana emergente en windows "el pprograma no funciona correctamente..").

Ya he intantido quitar y poner por todos lados ,¿ me podrían ayudar?

El código que llevo es:

#include <stdio.h>
#include <string.h>
#include <math.h>


char* Reactivos[9];
char* Incisos[9];
char Respuestas[2];
int promedio;


int main()
{

Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion";
Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:";
Reactivos[2]="\n3. Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion.";
Reactivos[3]="\n4.  Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.";
Reactivos[4]="\n5. Indicar cual de los siguientes no es un dispositivo de entrada";
Reactivos[5]="\n6. Compuerta logica que realiza la funcion de producto logico";
Reactivos[6]="\n7. Lenguaje de programacion orientado a manipulacion de objetos";
Reactivos[7]="\n8. Instruccion que no es de utilidad para elaborar un ciclo";
Reactivos[8]="\n9. Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);";
Reactivos[9]="\n10.int es una variable de tipo";

Incisos[0]="\na)Desarrollo el codigo binario\nb)Establecio la arquitectura de computadoras \nc)Fabricacion del primer chip.";
Incisos[1]="\na)AB01\nb) 101\nc) 30B";
Incisos[2]="\na)Codigo Madre\nb)Codigo ASCII\nc)Lenguaje Maquina.";
Incisos[3]="\na)Tomas de corriente\nb)Perifericos\nc)Puertos USB";
Incisos[4]="\na)Mouse\nb)Monitor\nc)Teclado";
Incisos[5]="\na)OR\nb)AND\nc)CROSS";
Incisos[6]="\na) Pascal\nb)C++\nd)C";
Incisos[7]="\na)for\nb)strcpy\nc)while do";
Incisos[8]="\na)1\nb)2\nc)3";
Incisos[9]="\na)flotante \nb)entero \nc)caracter";

Respuestas[0]="a";
Respuestas[1]="b";
Respuestas[2]="c";

int i;
for ( i=0; i<10; i++)
 {
 printf("%s\n",Reactivos);
     printf("%s\n",Incisos);
 }
 return (0);
}


En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Ayuda con C++ , no encuentro un error
« Respuesta #1 en: 14 Noviembre 2013, 04:11 am »

de esta manera si que me va bien. :-*
Código
  1. #include <iostream>
  2.  
  3. #include <stdio.h>
  4. #include <math.h>
  5. using namespace std;
  6.  
  7.  
  8. char* Reactivos[9];
  9. char* Incisos[9];
  10. char Respuestas[2];
  11. int promedio;
  12.  
  13.  
  14. int main()
  15. {
  16.  
  17. Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion";
  18. Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:";
  19. Reactivos[2]="\n3.Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion.";
  20. Reactivos[3]="\n4.Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.";
  21. Reactivos[4]="\n5.Indicar cual de los siguientes no es un dispositivo de entrada";
  22. Reactivos[5]="\n6.Compuerta logica que realiza la funcion de producto logico";
  23. Reactivos[6]="\n7.Lenguaje de programacion orientado a manipulacion de objetos";
  24. Reactivos[7]="\n8.Instruccion que no es de utilidad para elaborar un ciclo";
  25. Reactivos[8]="\n9.Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);";
  26. Reactivos[9]="\n10.int es una variable de tipo";
  27.  
  28. Incisos[0]="\na)Desarrollo el codigo binario\nb)Establecio la arquitectura de computadoras \nc)Fabricacion del primer chip.";
  29. Incisos[1]="\na)AB01\nb) 101\nc) 30B";
  30. Incisos[2]="\na)Codigo Madre\nb)Codigo ASCII\nc)Lenguaje Maquina.";
  31. Incisos[3]="\na)Tomas de corriente\nb)Perifericos\nc)Puertos USB";
  32. Incisos[4]="\na)Mouse\nb)Monitor\nc)Teclado";
  33. Incisos[5]="\na)OR\nb)AND\nc)CROSS";
  34. Incisos[6]="\na) Pascal\nb)C++\nd)C";
  35. Incisos[7]="\na)for\nb)strcpy\nc)while do";
  36. Incisos[8]="\na)1\nb)2\nc)3";
  37. Incisos[9]="\na)flotante \nb)entero \nc)caracter";
  38.  
  39.  
  40.  
  41. int i;
  42. for ( i=0; i<10; i++){
  43.    cout << Reactivos[i];
  44.    cout << Incisos[i];
  45.    cout << endl;
  46.     //printf("%s\n",Reactivos);
  47.     //printf("%s\n",Incisos);
  48. }
  49. return (0);
  50. }
  51.  
  52.  


En línea

Ozharu-Ad

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con C++ , no encuentro un error
« Respuesta #2 en: 14 Noviembre 2013, 04:56 am »

Muchas gracias , en verdad me ha ayudado, y como lo has dico, funciona sin problemas, ahora a insertarle el loop para las respuestas, a que las contabilice y sacar el promedio.

Por cierto, se que es mucho pedir, pero ¿no hay forma de que no me marque el error anterior sin usar iostream?
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Ayuda con C++ , no encuentro un error
« Respuesta #3 en: 14 Noviembre 2013, 12:10 pm »

Lo eh echo asi por encima y apesar de que me funciona en dev me da avisos.
A ver si alguien echa un ojo por que hasta la tarde no tengo tiempo. :D

Código
  1.    //#include <iostream>
  2.    #include <strings.h>
  3.    #include <stdio.h>
  4.    #include <math.h>
  5.    using namespace std;
  6.  
  7.  
  8.    char* Reactivos[9];
  9.    char* Incisos[9];
  10.    char Respuestas[2];
  11.    int promedio;
  12.  
  13.  
  14.    int main()
  15.    {
  16.  
  17.    Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion";
  18.    Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:";
  19.    Reactivos[2]="\n3.Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion.";
  20.    Reactivos[3]="\n4.Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.";
  21.    Reactivos[4]="\n5.Indicar cual de los siguientes no es un dispositivo de entrada";
  22.    Reactivos[5]="\n6.Compuerta logica que realiza la funcion de producto logico";
  23.    Reactivos[6]="\n7.Lenguaje de programacion orientado a manipulacion de objetos";
  24.    Reactivos[7]="\n8.Instruccion que no es de utilidad para elaborar un ciclo";
  25.    Reactivos[8]="\n9.Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);";
  26.    Reactivos[9]="\n10.int es una variable de tipo";
  27.  
  28.    Incisos[0]="\na)Desarrollo el codigo binario\nb)Establecio la arquitectura de computadoras \nc)Fabricacion del primer chip.";
  29.    Incisos[1]="\na)AB01\nb) 101\nc) 30B";
  30.    Incisos[2]="\na)Codigo Madre\nb)Codigo ASCII\nc)Lenguaje Maquina.";
  31.    Incisos[3]="\na)Tomas de corriente\nb)Perifericos\nc)Puertos USB";
  32.    Incisos[4]="\na)Mouse\nb)Monitor\nc)Teclado";
  33.    Incisos[5]="\na)OR\nb)AND\nc)CROSS";
  34.    Incisos[6]="\na) Pascal\nb)C++\nd)C";
  35.    Incisos[7]="\na)for\nb)strcpy\nc)while do";
  36.    Incisos[8]="\na)1\nb)2\nc)3";
  37.    Incisos[9]="\na)flotante \nb)entero \nc)caracter";
  38.  
  39.  
  40.  
  41.    int i;
  42.    for ( i=0; i<10; i++){
  43.       //cout << Reactivos[i];
  44.       //cout << Incisos[i];
  45.       //cout << endl;
  46.        printf("%s\n",Reactivos[i]);
  47.        printf("%s\n",Incisos[i]);
  48.    }
  49.    return (0);
  50.    }
  51.  

En línea

BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda con C++ , no encuentro un error
« Respuesta #4 en: 14 Noviembre 2013, 12:13 pm »

Muchas gracias , en verdad me ha ayudado, y como lo has dico, funciona sin problemas, ahora a insertarle el loop para las respuestas, a que las contabilice y sacar el promedio.

Por cierto, se que es mucho pedir, pero ¿no hay forma de que no me marque el error anterior sin usar iostream?

Que promedio?
En línea

- Pásate por mi web -
https://codeisc.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda con C++ , no encuentro un error
« Respuesta #5 en: 14 Noviembre 2013, 17:52 pm »

me han pedido desarrollar un examen en c++
Un problema con el programa es que no tiene nada de C++, después de solucionar los errores compila como C sin generar mensajes de error.


al ejecutar el programa me escribe los 10 reactivos y HASTA las respuestas que le corresponden al 9, me marca error en el programa (ventana emergente en windows "el pprograma no funciona correctamente..").
Eso sucede porque en C y C++ cuando se declara un array se indica su numero de elementos "N":
Código
  1. char* Reactivos[9];
  2. char* Incisos[9];
  3. char Respuestas[2];
Y se accede a los elementos del array mediante los indices 0 .. N-1.

No se puede, como es tu caso, utilizar el indice N porque ese elemento no existe:
Código
  1. Reactivos[9] = "\n10.int es una variable de tipo";
  2. Incisos[9] = "\na)flotante \nb)entero \nc)caracter";
  3. Respuestas[2] = "c";
La solución aquí es declarar los tres arrays con un elemento adicional.

Otro error se encuentra en las asignaciones utilizando el array "Respuestas":
Código
  1. char Respuestas[2]; /* Hay que cambiar el numero de elementos a tres */
  2.  
  3. /* ... */
  4.  
  5. Respuestas[0] = "a";
  6. Respuestas[1] = "b";
  7. Respuestas[2] = "c";
Ya que es un array de caracteres debes asignar caracteres literales y estos se delimitan con la comilla simple, en otras palabras debes utilizar 'a', 'b' y 'c'.

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
Ozharu-Ad

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con C++ , no encuentro un error
« Respuesta #6 en: 14 Noviembre 2013, 22:23 pm »

Que promedio?

Lo que me pide hacer es "un exámen" mstrarle al usuario las preguntas y las opciones, y dependiendo si responde bien, en pantalla debe aparecer el mensaje de felicidades o que se ha equivocado.
Al final debo promediar las respuestas correctas y en el mismo programa mostrarle la calificación

Un problema con el programa es que no tiene nada de C++, después de solucionar los errores compila como C sin generar mensajes de error.

Eso sucede porque en C y C++ cuando se declara un array se indica su numero de elementos "N":
Código
  1. char* Reactivos[9];
  2. char* Incisos[9];
  3. char Respuestas[2];
Y se accede a los elementos del array mediante los indices 0 .. N-1.

No se puede, como es tu caso, utilizar el indice N porque ese elemento no existe:
Código
  1. Reactivos[9] = "\n10.int es una variable de tipo";
  2. Incisos[9] = "\na)flotante \nb)entero \nc)caracter";
  3. Respuestas[2] = "c";
La solución aquí es declarar los tres arrays con un elemento adicional.

Otro error se encuentra en las asignaciones utilizando el array "Respuestas":
Código
  1. char Respuestas[2]; /* Hay que cambiar el numero de elementos a tres */
  2.  
  3. /* ... */
  4.  
  5. Respuestas[0] = "a";
  6. Respuestas[1] = "b";
  7. Respuestas[2] = "c";
Ya que es un array de caracteres debes asignar caracteres literales y estos se delimitan con la comilla simple, en otras palabras debes utilizar 'a', 'b' y 'c'.

Un saludo

Gracias , bueno, ese es como un "roce" con el profesor , el dice que nos "enseña" c++ , pero por lo que he investigado nos quedamos en c , por eso agradezco al usuario vangodp para guiarme y no usar iostream.

En lo de los arrays, no encontré la falla en el primer bosquejo que hice , no se que haya hecho vangodp pero ya me "muestra" las 10 preguntas con sus opciones sin necesidad de un elemento extra , aun asi, si en lo que sigo observo fallas tomare eso en cuenta.

Y bueno, estoy empezando con C , C++ , pero creo que lo de una comillar un carácter si fue un buen resbalón , muchas gracias a todos por su ayuda. Aunque parece que d enuevo estoy atorado, intentaré ver como salir
En línea

Ozharu-Ad

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con C++ , no encuentro un error
« Respuesta #7 en: 15 Noviembre 2013, 06:09 am »

Hola de nuevo , ya pude hacer que el programa me compare las respuestas y muestre en pantalla si es o no correcto.
Pero no logro hacer que haga el promedio de las respuestas, o por lo menos que muestre la suma (ayuda mucho que me pidieron 10 ya que el resultado de la suma seria la calificación). intenté guardar un 1 si se selecciona la opcion correcta para despues sumarlos y que me muestre el resultado, pero no me lo da correctamente, el compilador no me marca error, pero siempre me da que "Tu calificacion es 34".
El código que llevo es:

#include <strings.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>


char* Reactivos[9];
char* Incisos[9];
int promedio;
int x[9];

int func()
{
int i=0;
    int a=1;
    int b=2;
    int c=3;
    int resp;
    printf("Escribe tu respuesta");
    scanf("%i",&resp);


    if (resp==2)
    {
        printf("Respuesta correcta");

        x=1;

    }
    else{
        printf("Incorrecto , la respuesta es 2");
        x=0;

    }
    system("pause");

}
int promd()
{
    int R;

    R=x[0]+x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]+x[9];

}

    int main()
    {

    Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion";
    Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:";
    Reactivos[2]="\n3.Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion.";
    Reactivos[3]="\n4.Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.";
    Reactivos[4]="\n5.Indicar cual de los siguientes no es un dispositivo de entrada";
    Reactivos[5]="\n6.Compuerta logica que realiza la funcion de producto logico";
    Reactivos[6]="\n7.Lenguaje de programacion orientado a manipulacion de objetos";
    Reactivos[7]="\n8.Instruccion que no es de utilidad para elaborar un ciclo";
    Reactivos[8]="\n9.Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);";
    Reactivos[9]="\n10.int es una variable de tipo";

    Incisos[0]="\n1)Desarrollo el codigo binario\n2)Establecio la arquitectura de computadoras \n3)Fabricacion del primer chip.";
    Incisos[1]="\n1)AB01\n2) 101\n3) 30B";
    Incisos[2]="\n1)Codigo Madre\n2)Codigo ASCII\n3)Lenguaje Maquina.";
    Incisos[3]="\n1)Tomas de corriente\n2)Perifericos\n3)Puertos USB";
    Incisos[4]="\n1)Mouse\n2)Monitor\n3)Teclado";
    Incisos[5]="\n1)OR\n2)AND\n3)CROSS";
    Incisos[6]="\n1) Pascal\n2)C++\n3)C";
    Incisos[7]="\n1)for\n2)strcpy\n3)while do";
    Incisos[8]="\n1)1\n2)2\n3)3";
    Incisos[9]="\n1)flotante \n2)entero \n3)caracter";


int R;
int i;
    for ( i=0; i<10; i++){

        printf("%s\n",Reactivos);
        printf("%s\n",Incisos);
        func();
        promd ();


}
printf("Tu calificacion es %i",R);
    return (0);
    }

.
.
después de analizarlo por mas tiempo ya vi mi error , mi funcion func la movi a main , es decir, puse a que ahi contara las x y si funcionó , ahora para pulir mi programa veré como en ves de incisos 1 2 3 queden a b c
« Última modificación: 15 Noviembre 2013, 07:40 am por Ozharu-Ad » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error Ejercicio JButton, no encuentro el error[Resuleto, se puede cerrar]
Java
MinW 0 1,805 Último mensaje 27 Diciembre 2013, 17:59 pm
por MinW
ayuda no encuentro el error!
PHP
ediporey2000 1 1,685 Último mensaje 23 Febrero 2014, 22:49 pm
por engel lex
[Resuelto] AYUDA esto me esta mantando (CODIGO PHP) no encuentro el error
PHP
invdoolca 1 1,751 Último mensaje 30 Enero 2015, 22:05 pm
por MinusFour
AYUDA no encuentro error . C++
Programación C/C++
seanagu 3 2,876 Último mensaje 19 Octubre 2017, 17:03 pm
por srWhiteSkull
No encuentro el error ayuda! C
Programación C/C++
Mozzard 4 1,734 Último mensaje 14 Noviembre 2018, 18:52 pm
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines