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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Lenguaje C] Volver al menu principal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Lenguaje C] Volver al menu principal  (Leído 23,735 veces)
Whiteseba

Desconectado Desconectado

Mensajes: 4


Ver Perfil
[Lenguaje C] Volver al menu principal
« en: 3 Marzo 2012, 09:38 am »

Hola, soy nuevo en el foro y tambien nuevo en la programacion. Vi algunas cosas en la escuela y hoy quise recordarlas y ponerme a tono ya que en esta semana empiezo de vuelta el ultimo año de la carrera y no quiero olvidarme.
Hice una calculadora de valores de resistencias (electronica), el proceso lo hace todo bien sin ningun error, pero lo que quiero es que despues de que termine de calcular una resistencia pueda volver al primer menu. Esta todo hecho con switchs, aca les dejo el codigo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {  int color1;
  6.    int color2;
  7.    int color3;
  8.    int opcion;
  9.    printf("0) Negro\n 1) Marron\n 2) Rojo\n 3) Naranja\n 4) Amarillo\n 5) Verde\n 6) Azul\n 7) Violeta\n 8) Gris\n 9) Blanco\n");
  10.    printf("\n");
  11.    scanf("%d",&color1);
  12.    switch(color1){
  13. case 0:
  14. color1 = 0;
  15. printf("\n");
  16. printf("El primer color seleccionado es el Negro\n");
  17. break;
  18.  
  19. case 1:
  20. color1 = 1;
  21. printf("\n");
  22. printf("El primer color seleccionado es el Marron\n");
  23. break;
  24.  
  25. case 2:
  26. color1 = 2;
  27. printf("\n");
  28. printf("El primer color seleccionado es el Rojo\n");
  29. break;
  30.  
  31. case 3:
  32. color1 = 3;
  33. printf("\n");
  34. printf("El primer color seleccionado es el Naranja\n");
  35. break;
  36.  
  37. case 4:
  38. color1 = 4;
  39. printf("\n");
  40. printf("El primer color seleccionado es el Amarillo\n");
  41. break;
  42.  
  43. case 5:
  44. color1 = 5;
  45. printf("\n");
  46. printf("El primer color seleccionado es el Verde\n");
  47. break;
  48.  
  49. case 6:
  50. color1 = 6;
  51. printf("\n");
  52. printf("El primer color seleccionado es el Azul\n");
  53. break;
  54.  
  55. case 7:
  56. color1 = 7;
  57. printf("\n");
  58. printf("El primer color seleccionado es el Violeta\n");
  59. break;
  60.  
  61. case 8:
  62. color1 = 8;
  63. printf("\n");
  64. printf("El primer color seleccionado es el Gris\n");
  65. break;
  66.  
  67. case 9:
  68. color1 = 9;
  69. printf("\n");
  70. printf("El primer color seleccionado es el Blanco\n");
  71. break;
  72. }
  73. printf("\n");
  74. printf("0) Negro\n 1) Marron\n 2) Rojo\n 3) Naranja\n 4) Amarillo\n 5) Verde\n 6) Azul\n 7) Violeta\n 8) Gris\n 9) Blanco\n");
  75. printf("\n");
  76. scanf("%d",&color2);
  77. switch(color2){
  78. case 0:
  79. color2 = 0;
  80. printf("\n");
  81. printf("El segundo color seleccionado es el Negro\n");
  82. break;
  83.  
  84. case 1:
  85. color2 = 1;
  86. printf("\n");
  87. printf("El segundo color seleccionado es el Marron\n");
  88. break;
  89.  
  90. case 2:
  91. color2 = 2;
  92. printf("\n");
  93. printf("El segundo color seleccionado es el Rojo\n");
  94. break;
  95.  
  96. case 3:
  97. color2 = 3;
  98. printf("\n");
  99. printf("El segundo color seleccionado es el Naranja\n");
  100. break;
  101.  
  102. case 4:
  103. color2 = 4;
  104. printf("\n");
  105. printf("El segundo color seleccionado es el Amarillo\n");
  106. break;
  107.  
  108. case 5:
  109. color2 = 5;
  110. printf("\n");
  111. printf("El segundo color seleccionado es el Verde\n");
  112. break;
  113.  
  114. case 6:
  115. color2 = 6;
  116. printf("\n");
  117. printf("El segundo color seleccionado es el Azul\n");
  118. break;
  119.  
  120. case 7:
  121. color2 = 7;
  122. printf("\n");
  123. printf("El segundo color seleccionado es el Violeta\n");
  124. break;
  125.  
  126. case 8:
  127. color2 = 8;
  128. printf("\n");
  129. printf("El segundo color seleccionado es el Gris\n");
  130. break;
  131.  
  132. case 9:
  133. color2 = 9;
  134. printf("\n");
  135. printf("El segundo color seleccionado es el Blanco\n");
  136. break;
  137. }
  138. printf("\n");
  139. printf("0) Negro\n 1) Marron\n 2) Rojo\n 3) Naranja\n 4) Amarillo\n 5) Verde\n 6) Azul\n 7) Violeta\n 8) Gris\n 9) Blanco\n");
  140. printf("\n");
  141. scanf("%d",&color3);
  142. switch(color3){
  143. case 0:
  144. printf("\n");
  145. printf("La resistencia tiene un valor de %d%d Ohm",color1,color2);
  146. break;
  147.  
  148. case 1:
  149. color3 = 0;
  150. printf("\n");
  151. printf("La resistencia tiene un valor de %d%d%d Ohm",color1,color2,color3);
  152. break;
  153.  
  154. case 2:
  155. color3 = ("00");
  156. printf("\n");
  157. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  158. break;
  159.  
  160. case 3:
  161. color3 = ("000");
  162. printf("\n");
  163. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  164. break;
  165.  
  166. case 4:
  167. color3 = ("0000");
  168. printf("\n");
  169. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  170. break;
  171.  
  172. case 5:
  173. color3 = ("00000");
  174. printf("\n");
  175. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  176. break;
  177.  
  178. case 6:
  179. color3 = ("000000");
  180. printf("\n");
  181. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  182. break;
  183.  
  184. case 7:
  185. color3 = ("0000000");
  186. printf("\n");
  187. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  188. break;
  189.  
  190. case 8:
  191. color3 = ("00000000");
  192. printf("\n");
  193. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  194. break;
  195.  
  196. case 9:
  197. color3 = ("000000000");
  198. printf("\n");
  199. printf("La resistencia tiene un valor de %d%d%s Ohm",color1,color2,color3);
  200. break;}
  201.  
  202. printf("\n");
  203.  
  204. printf("\n");
  205. printf("Deseas volver al menu principal?\n 1. Si\n 2. No\n");
  206. scanf("%d",opcion);
  207. return 0;
  208. }

Como veran, despues del scanf("%d,opcion); no hay nada, porque no se que poner para poder volver al primer printf

Alguien que me ayude se lo agradeceria muchisimo


« Última modificación: 3 Marzo 2012, 23:38 pm por Whiteseba » En línea

elgeneradordenvolupant

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: [Lenguaje C] Volver al menu principal
« Respuesta #1 en: 3 Marzo 2012, 13:01 pm »

Yo probaría con do...while para crear un bucle.


En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [Lenguaje C] Volver al menu principal
« Respuesta #2 en: 3 Marzo 2012, 16:06 pm »

Yo te recomendaría que uses funciones y sentencias if
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: [Lenguaje C] Volver al menu principal
« Respuesta #3 en: 3 Marzo 2012, 17:50 pm »

Yo te recomendaría que uses funciones y sentencias if

Seria un desperdicio ocupar un if...else porque esta analizando siempre la misma variable en ambos casos.

Yo de verdad te recomendaria ocupar las etiquetas GeSHi con resaltado para cpp xd
Luego de donde dice "code" le agregas "=cpp" o "=c", todo dentro de los corchetes.

Para hacer lo del menu principal debes usar un while(1), que espera a que 1 = 0 o se rompa con el bucle, y cuando se elija salir, haces un break, o tambien creas una variable int, te lo explico.

Código
  1. int salir = 0;
  2. while(salir) {
  3.        /* Aca va el codigo */
  4.        if(variable_de_eleccion_del_menu==valor_para_salir) salir++;
  5. }
Y con eso haces un bucle que te mantenga en el programa hasta que el usuario quiera salir.
Tambien he visto esto:
Código
  1. while(1) {
  2. /* Aca va el codigo */
  3.        if(variable_de_eleccion_del_menu==valor_para_salir) break;
  4. }
Pero no recuerdo si este ultimo era en C o en alguna de sus variantes, yo prefiero usar la primera opcion que di.

Saludos
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Whiteseba

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: [Lenguaje C] Volver al menu principal
« Respuesta #4 en: 3 Marzo 2012, 21:35 pm »

Seria un desperdicio ocupar un if...else porque esta analizando siempre la misma variable en ambos casos.

Yo de verdad te recomendaria ocupar las etiquetas GeSHi con resaltado para cpp xd
Luego de donde dice "code" le agregas "=cpp" o "=c", todo dentro de los corchetes.

Para hacer lo del menu principal debes usar un while(1), que espera a que 1 = 0 o se rompa con el bucle, y cuando se elija salir, haces un break, o tambien creas una variable int, te lo explico.

Código
  1. int salir = 0;
  2. while(salir) {
  3.        /* Aca va el codigo */
  4.        if(variable_de_eleccion_del_menu==valor_para_salir) salir++;
  5. }
Y con eso haces un bucle que te mantenga en el programa hasta que el usuario quiera salir.
Tambien he visto esto:
Código
  1. while(1) {
  2. /* Aca va el codigo */
  3.        if(variable_de_eleccion_del_menu==valor_para_salir) break;
  4. }
Pero no recuerdo si este ultimo era en C o en alguna de sus variantes, yo prefiero usar la primera opcion que di.

Saludos

Ese codigo que me decis es para salir del programa solamente no? Porque yo quiero que al apretar un 1 vuelva al primer printf que me da los primero colores
En línea

armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: [Lenguaje C] Volver al menu principal
« Respuesta #5 en: 3 Marzo 2012, 23:37 pm »

Ese codigo que te digo te mantiene en el programa con un bucle infinito a menos que el usuario decida salir, es decir, cada vez que termine de ejecutarse el codigo le "preguntas" al usuario si desea salir.
Algo asi como esto:
Código
  1. int salir = 0;
  2. while(salir) {
  3.        /*        ...        */
  4.        printf("Desea realizar otra operacion? [s/n] ");
  5.        char *resp;
  6.        getchar(resp);
  7.        if(strcmp(res,"s")!=0) salir++;
  8. }
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Whiteseba

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: [Lenguaje C] Volver al menu principal
« Respuesta #6 en: 4 Marzo 2012, 01:02 am »

Gracias por las respuestas, al final lo pude solucionar con un while =D
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [Lenguaje C] Volver al menu principal
« Respuesta #7 en: 4 Marzo 2012, 02:15 am »

Hay dos errores en tu fragmento de código.

* Si se utiliza una variable como bandera para controlar (y eventualmente terminar) un bucle "while" esta debe iniciar con un valor distinto de cero (si no es así nunca entraría en el bucle).

* No es necesario utilizar un puntero a carácter y este inicia con un valor "no definido".

Y para la comparación basta con utilizar el operador de comparación (el "==").

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
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: [Lenguaje C] Volver al menu principal
« Respuesta #8 en: 4 Marzo 2012, 02:42 am »

* No es necesario utilizar un puntero a carácter y este inicia con un valor "no definido".

Y para la comparación basta con utilizar el operador de comparación (el "==").
No es necesario en caso que se utilice otra forma para manejar, por ejemplo, en el menu principal utilizar una orden para terminar el programa, en cualquier caso esto lo puse como ejemplo para explicar y no me detuve en revisar los errores. Para la comparacion basta con un == si es un char, pero podriamos usar scanf (o talvez vez sea mejor idea utilizar fscanf) para almacenar una cadena en caso de que se requiera.
Por cierto, gracias por las correciones.

Saludos
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Lenguaje C] Volver al menu principal
« Respuesta #9 en: 4 Marzo 2012, 11:21 am »

armizh: revisa el codigo que dejas, no sirve de nada pretender ayudar (O FIGURAR EN EL FORO) de esta manera.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(solucionado)volver menu principal
Programación C/C++
cundre 7 6,220 Último mensaje 11 Febrero 2011, 17:18 pm
por cundre
Volver al menú principal sin usar goto « 1 2 3 »
Programación C/C++
martin_poipon 20 15,176 Último mensaje 3 Julio 2011, 11:19 am
por Foxy Rider
Menú mediante lenguaje C ¨Necesito ayuda.
Programación C/C++
OreOBooM 1 1,941 Último mensaje 6 Noviembre 2013, 04:09 am
por Vaagish
netbeans abrir ventana secuandaria y volver a los procesos de la principal
Java
PhipexX 2 2,424 Último mensaje 2 Enero 2017, 19:05 pm
por ThinkByYourself
"Ayuda" No se como volver al menu principal C#
Programación C/C++
MaximuZ 1 4,365 Último mensaje 6 Junio 2017, 06:28 am
por yoelmend
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines