Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: wossy666 en 4 Agosto 2011, 16:08 pm



Título: Correr Programa c
Publicado por: wossy666 en 4 Agosto 2011, 16:08 pm
Bueno otra vez yo molestado :/

se puede correr un progrma dentro de un menu :D

Gracias
:D


Título: Re: Correr Programa c
Publicado por: PiroskY en 4 Agosto 2011, 18:27 pm
Si se puede, explicate mejor.


Título: Re: Correr Programa c
Publicado por: wossy666 en 4 Agosto 2011, 18:49 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. void main(){
  6.     char op='s';
  7.     char a='a';
  8.     char continuar='o';
  9.     do{
  10.          printf("**Bienvenido**\n");
  11.          printf("1-Metodos De Ordenamiento\n");
  12.          printf("2-Metodos De Busqueda\n");
  13.          printf("3 -Salir\n");
  14.          scanf("%c", &op);
  15.          switch(op){ //este es el switch del menu principal
  16.               case '1':
  17.               printf("**Metodos De Ordenamiento**\n");
  18.               printf("1- Burbuja\n");
  19.               printf("2- Quiksort\n");
  20.               scanf("%c", &a);
  21.               switch(a){ //este es el switch de sub menu de ordenamiento.
  22.                    case '1':
  23.                    printf("Burbuja \n"); //aqui llamaria a la funcion burbuja.
  24.                    break; //despues de cada case debe poner un break.
  25.  
  26.                    case '2':
  27.                    printf("Quiksort \n"); //aqui llamaria a la funcion quilsort
  28.                    break;
  29.  
  30.               } //aqui termina el switch del sub mmenu de ordenamiento.
  31.               break; //aqui termina el case del MENU PRINCIPAL!
  32.  
  33.               case '2':
  34.               printf("Busqueda. \n");
  35.               //Aqui anida otro sqitch case.
  36.               break;
  37.  
  38.               case '3':
  39.               printf("Gracias... \n");
  40.               continuar = 'S';
  41.               break;
  42.  
  43.               default:
  44.               printf("Opcion invalida\n");
  45.               break;
  46.          }
  47.          system("pause");
  48.          system("cls");
  49.     }while(continuar != 's' && continuar != 'S');
  50. }


Yo tengo ese codigo pero cuando le en la opcion de burbuja el programa de la burbuja debe de correr
me explico?? xD


Título: Re: Correr Programa c
Publicado por: enrmarc en 4 Agosto 2011, 22:35 pm
¿Tienes un programa 'Burbuja' (el .exe o a.out) o un método Burbuja() ?
Si es el primer caso échale un vistazo a execv y en el segundo caso simplemente llama al método.



Título: Re: Correr Programa c
Publicado por: greenchar en 5 Agosto 2011, 04:08 am
Me imagino que lo que tratas de hacer es una vez que, digamos, selecciones la opción burbuja, se ejecute todo el procedimiento.
Para llamar a una función seria mas o menos esto:

Código
  1. case '1':
  2.                    printf("Burbuja \n"); //aqui solo imprime Burbuja
  3.                    metodo_burbuja(); // Realmente aqui se llama a la funcion (supongo que no necesita argumentos)
  4.                    break; //despues de cada case debe poner un break.

Espero haberte ayudado ;D

¿Tienes un programa 'Burbuja' (el .exe o a.out) o un método Burbuja() ?
Si es el primer caso échale un vistazo a execv y en el segundo caso simplemente llama al método.
En el caso de que necesites que se ejecute otro programa externo investiga sobre la librería execv como dice enrmarc (no la conozco)


Título: Re: Correr Programa c
Publicado por: wossy666 en 5 Agosto 2011, 05:19 am
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. void main(){
  6.     char op='s';
  7.     char a='a';
  8.     char continuar='o';
  9.     do{
  10.          printf("**Bienvenido**\n");
  11.          printf("1-Metodos De Ordenamiento\n");
  12.          printf("2-Metodos De Busqueda\n");
  13.          printf("3 -Salir\n");
  14.          scanf("%c", &op);
  15.          switch(op){ //este es el switch del menu principal
  16.               case '1':
  17.               printf("**Metodos De Ordenamiento**\n");
  18.               printf("1- Burbuja\n");
  19.               printf("2- Quiksort\n");
  20.               printf("3 -Regresar al menu Principal\n");
  21.               scanf("%c", &a);
  22.               switch(a){
  23.                    case '1':
  24.                    printf("Burbuja \n");
  25.                     #define TAM 10000
  26.  
  27. int a[TAM], temp, i, j;
  28.  
  29. clrscr();
  30.  
  31. randomize(); //Inicializa el generador de numeros aleatorios
  32.  
  33. printf ("Llenando arreglo con números aleatorios\n");
  34.  
  35. for (i=0; i< TAM; i++)
  36. a[i]=random(10000);
  37.  
  38. //Implementacion de Ordenamiento por burbuja de mayor a menor
  39.  
  40. for (j=1; j <= TAM; j++)
  41.  
  42. for (i=0; i< TAM-1; i++)
  43.  
  44. if (a[i] < a[i+1]){
  45.  
  46. temp = a[i];
  47. a[i] = a[i+1];
  48. a[i+1] = temp;
  49. }
  50.  
  51. printf ("\nArreglo ordenado\n");
  52.  
  53. for (i=0; i< TAM; i++)
  54. printf ("a[%d] = %d\n", i, a[i]);
  55.  
  56.                    break;
  57.  
  58.                    case '2':
  59.                    printf("Quiksort \n");
  60.                    break;
  61.  
  62.               }
  63.               break;
  64.  
  65.               case '2':
  66.               printf("Metodos De Busqueda. \n");
  67.               printf("1- Secuencial\n");
  68.               printf("2- Binaria\n");
  69.               printf("3 -Regresar al menu Principal\n");
  70.                scanf("%c", &a);
  71.               switch(a){
  72.               case '1':
  73.                    printf("Secuencial \n");
  74.               }
  75.               break;
  76.  
  77.                case '2a':
  78.                    printf("Quiksort \n");
  79.                    break;
  80.  
  81.               case '3':
  82.               printf("Gracias... \n");
  83.               continuar = 'S';
  84.               break;
  85.  
  86.               default:
  87.               printf("Opcion invalida\n");
  88.               break;
  89.          }
  90.          system("pause");
  91.          system("cls");
  92.     }while(continuar != 's' && continuar != 'S');
  93. }

Obviamente falta meter el quicksort y el metodo de busqueda
pero ahora tengo duda, cuando le doy 1 se mete al submenu metodos de ordenamiento y cuando le doy otro 1 deberia de correr el bubble sort pero no lo hace xD
(http://i.imgur.com/TA1Do.png)


Título: Re: Correr Programa c
Publicado por: greenchar en 5 Agosto 2011, 06:56 am
No encuentro por que la falla, pero lo seguire pensando (esta es una respuesta rapida)  :-X
Te recomiendo que metas todo esto en una función para que después la llames y asi sea más fácil de leer tu código   :-*
Código
  1.  
  2. //TODO ESTO EN UNA FUNCION
  3.           printf("Burbuja \n");
  4.                     #define TAM 10000
  5. int a[TAM], temp, i, j;
  6.  
  7. clrscr();
  8.  
  9. randomize(); //Inicializa el generador de numeros aleatorios
  10.  
  11. printf ("Llenando arreglo con números aleatorios\n");
  12.  
  13. for (i=0; i< TAM; i++)
  14. a[i]=random(10000);
  15.  
  16. //Implementacion de Ordenamiento por burbuja de mayor a menor
  17.  
  18. for (j=1; j <= TAM; j++)
  19.  
  20. for (i=0; i< TAM-1; i++)
  21.  
  22. if (a[i] < a[i+1]){
  23.  
  24. temp = a[i];
  25. a[i] = a[i+1];
  26. a[i+1] = temp;
  27. }
  28.  
  29. printf ("\nArreglo ordenado\n");
  30.  
  31. for (i=0; i< TAM; i++)
  32. printf ("a[%d] = %d\n", i, a[i]);
  33.  
  34.                    break;
  35.  
  36.  
  37.