¿COMO HAGO QUE UN PROGRAMA BORRE PANTALLA Y REGRESE HASTA EL INICIO?

Iniciado por wazausky, 9 Noviembre 2012, 01:51 AM

0 Miembros y 1 Visitante están viendo este tema.

wazausky

QUE TAL.
PUES BIEN NECESITO QUE MI PROGRAMA NO TERMINE HASTA QUE SE SELECCIONE LA OPCION, MIENTRAS NO SE SELECCIONE LA OPCION TIENE QUE REGRESAR HASTA EL PRINCIPIO; TIENE QUE LIMPIAR LA PANTALLA Y VOLVER A CORRER TODO Y ESO SERA HASTA QUE SE SELECCIONE LA OPCION SALIR.
QUIEN ME PUEDA AYUDAR MUCHAS GRACIAS! :)

#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{  
 int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA, CA, RB, CB, O;
 printf("Cuantos renglones quiere que tenga la matriz A: ");
 scanf("%i", &RA);
 printf("\nCuantas columnas quiere que tenga la matriz A: ");
 scanf("%i", &CA);
 printf("\nCuantos renglones quiere que tenga la matriz B: ");
 scanf("%i", &RB);
 printf("\nCuantas columnas quiere que tenga la matriz B: ");
 scanf("%i", &CB);
/*SE GENERA LA MATRIZ A*/
 printf("\nMATRIZ A\n\n");
 for (x=1; x<=RA; x++)
{
 for (y=1; y<=CA; y++)
{
 matrizA[x][y] = rand()%10;
 printf("%i   ", matrizA[x][y]);
}
 printf("\n\n");
}
 printf("\n");
/*SE GENERA LA MATRIZ B*/
 printf("MATRIZ B\n\n");
 for (x=1; x<=RB; x++)
{
 for (y=1; y<=CB; y++)
{
 matrizB[x][y] = rand()%10;
 printf("%i   ", matrizB[x][y]);
}
 printf("\n\n");
}
/*SE ELIGE LA OPERACION*/
 printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
 printf("QUE OPERACION DESEA REALIZAR: ");
 scanf("%i", &O);
/*SE HACE LA OPERACION ELEGIDA*/
 switch (O)
{
/*SUMA*/
 case 1:
 if (RA!=RB || CA!=CB)
{
 printf("\nNO SE PUEDEN SUMAR MATRICES DE DISTINTO ORDEN\n\n");
 break;
}
 else
{
 printf("\nMATRIZ RESULTANTE\n\n");
 for (x=1; x<=RB; x++)
{
 for (y=1; y<=CB; y++)
{
 matrizR[x][y] = matrizA[x][y] + matrizB[x][y];
 printf("%i   ", matrizR[x][y]);
}
 printf("\n\n");
}
 break;
}
/*RESTA (A - B)*/
 case 2:
 if (RA!=RB || CA!=CB)
{
 printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
 break;
}
 else
{
 printf("\nMATRIZ RESULTANTE\n\n");
 for (x=1; x<=RB; x++)
{
 for (y=1; y<=CB; y++)
{
 matrizR[x][y] = matrizA[x][y] - matrizB[x][y];
 printf("%i   ", matrizR[x][y]);
}
 printf("\n\n");
}
 break;
}
/*RESTA (B - A)*/
 case 3:
 if (RA!=RB || CA!=CB)
{
 printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
 break;
}
 else
{
 printf("\nMATRIZ RESULTANTE\n\n");
 for (x=1; x<=RB; x++)
{
 for (y=1; y<=CB; y++)
{
 matrizR[x][y] = matrizB[x][y] - matrizA[x][y];
 printf("%i   ", matrizR[x][y]);
}
 printf("\n\n");
}
 break;
}
 case 4:
 system("PAUSE");
 return 0;
 break;
}
 system("PAUSE");
 return 0;
}

Ferno

Amigo, no se entiende nada.
Primero, aflojá con las mayúsculas, no son necesarias.

Segundo, el código siempre dentro de las etiquetas GeSHi, por favor!

darkangel2125

bueno para borrar pantalla se usa el
clrscr();
despues de que presiones un enter borraras pantalla
ahora para regresar al inicio creo que era

goto 0,0;

Dulce caos

leosansan

#3
CitarMenudo desastre de código  ;D ;D ;D.
A ver si era esto lo que querías:
REEDITO LOS INDICES A CERO
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
   int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA, CA, RB, CB, O;
   printf("Cuantas lineas quiere que tenga la matriz A: ");
   scanf("%d", &RA);
   printf("\nCuantas columnas quiere que tenga la matriz A: ");
   scanf("%d", &CA);
   printf("\nCuantas lineas quiere que tenga la matriz B: ");
   scanf("%d", &RB);
   printf("\nCuantas columnas quiere que tenga la matriz B: ");
   scanf("%d", &CB);

   /*SE GENERA LA MATRIZ A*/

   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   matrizA[x][y] = rand()%10;
               }
       }



   printf("\n");
   /*SE GENERA LA MATRIZ B*/

   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   matrizB[x][y] = rand()%10;
               }

       }
   while (1){
   system("pause");
   system("cls");
   printf("\nMATRIZ A\n\n");
   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   printf("%d   ", matrizA[x][y]);
               }printf("\n");
           printf("\n\n");
       }
   printf("MATRIZ B\n\n");
   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   printf("%d   ", matrizB[x][y]);

               }printf("\n");
       }
           printf("\n\n");
   /*SE ELIGE LA OPERACION*/
   printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
   printf("QUE OPERACION DESEA REALIZAR: ");
   scanf("%d", &O);
   /*SE HACE LA OPERACION ELEGIDA*/
   switch (O)
   {
       /*SUMA*/
         case 1:
         if (RA!=RB || CA!=CB)
           {
               printf("\nNO SE PUEDEN SUMAR MATRICES DE DISTINTO ORDEN\n\n");
               break;
           }
         else
           {
               printf("\nMATRIZ RESULTANTE\n\n");
               for (x=0; x<RB; x++)
                   {
                     for (y=0; y<CB; y++)
                       {
                           matrizR[x][y]=matrizA[x][y]+matrizB[x][y];
                           printf("%d   ",  matrizR[x][y]);
                       }printf("\n");
                 }
               printf("\n\n");
               break;
           }
       /*RESTA (A - B)*/
         case 2:
         if (RA!=RB || CA!=CB)
           {
             printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
             break;
           }
         else
           {
             printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizA[x][y]-matrizB[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
           printf("\n\n");
           break;
           }

       /*RESTA (B - A)*/
         case 3:
         if (RA!=RB || CA!=CB)
           {
             printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
             break;
           }
         else
           {
             printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizB[x][y]-matrizA[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
             printf("\n\n");
             break;
           }

         case 4:
         system("pause");
         return 0;
         break;
       }
   }
     return 0;
}
CitarAunque a mí me gusta más así:
Saludos!.
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
   int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA=0, CA=0, RB=1, CB=1, O;

   while (RA!=RB || CA!=CB){
       printf("Cuantas lineas quiere que tenga la matriz A: ");
       scanf("%d", &RA);
       printf("\nCuantas columnas quiere que tenga la matriz A: ");
       scanf("%d", &CA);
       printf("\nCuantas lineas quiere que tenga la matriz B: ");
       scanf("%d", &RB);
       printf("\nCuantas columnas quiere que tenga la matriz B: ");
       scanf("%d", &CB);
       if (RA!=RB || CA!=CB) printf ("Han de tener las mismas lineas y columnas\npara sumar o restar\n");
}
   /*SE GENERA LA MATRIZ A*/

   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   matrizA[x][y] = rand()%10;
               }
       }
   printf("\n");
   /*SE GENERA LA MATRIZ B*/
   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   matrizB[x][y] = rand()%10;
               }
       }
   while (1){
   system("pause");
   system("cls");
   printf("\nMATRIZ A\n\n");
   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   printf("%d   ", matrizA[x][y]);
               }printf("\n");
           printf("\n\n");
       }
   printf("MATRIZ B\n\n");
   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   printf("%d   ", matrizB[x][y]);

               }printf("\n");
       }
           printf("\n\n");
   /*SE ELIGE LA OPERACION*/
   printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
   printf("QUE OPERACION DESEA REALIZAR: ");
   scanf("%d", &O);
   /*SE HACE LA OPERACION ELEGIDA*/
   switch (O)
   {
       /*SUMA*/
         case 1:

               printf("\nMATRIZ RESULTANTE\n\n");
               for (x=0; x<RB; x++)
                   {
                     for (y=0; y<CB; y++)
                       {
                           matrizR[x][y]=matrizA[x][y]+matrizB[x][y];
                           printf("%d   ",  matrizR[x][y]);
                       }printf("\n");
                 }
               printf("\n\n");
               break;

       /*RESTA (A - B)*/
           case 2:
           printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizA[x][y]-matrizB[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
           printf("\n\n");
           break;


       /*RESTA (B - A)*/
           case 3:
           printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizB[x][y]-matrizA[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
             printf("\n\n");
             break;
           case 4:
           system("pause");
           return 0;
           break;
       }
   }
     return 0;
}

MikeMonostone

1. Para que te borre la pantalla, te recomiendo que leas este enlace    http://www.cplusplus.com/articles/4z18T05o/

2. Para que vuelva al inicio puedes hacer una llamada a la función main(), de esta manera: main();  ya que esta es la función principal.

[SK-DOOM] Pensé que lo que haría sería fingir ser uno de esos sordomudos.

rir3760

Otro detalle a corregir: en C y C++ los indices van desde 0 hasta "N - 1" donde "N" es el numero de elementos en el array. Estos dos bucles y similares:
for (x=1; x<=RA; x++){
   for (y=1; y<=CA; y++){
      ...


Hay que cambiarlos a:
for (x = 0; x < RA; x++){
   for (y = 0; y < CA; y++){
      ...


Un saludo
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

leosansan

CitarREEDITDO "maestro". Eso pasa por querer "aprovechar" lo ya hecho por otro y no estar al loro.
Saludos!. ..... y ¿qué pasa con el "otro" sitio?