Matrices con Numeros Operaciones/ordenamiento


/*  

Programa: "Matrices con Numeros (Operaciones/ordenamiento"

 */

#include <stdio.h>
#include <conio.h>

#define n_f 5
#define n_c 5

void captura (int n, char iden);
void mostrar (int n,char iden);
void sumar  (int op1, int op2, int res);
void restar  (int op1, int op2, int res);
void multiplicar (int op1, int op2, int res);
void ordenar_f (int n, int res);
void ordenar_c (int n, int res);
void menor (int n);
void mayor (int n);
void promedio (int n);

int matriz[n_f][n_c][10],nf,nc,i,j,m,z;
void main ()
{   char opc,opco,opcm;
   do
   {  clrscr();
       printf ("\n\n\n");
       printf ("\t\tOperaciones con matrices\n\n\n");
       printf ("\t*** M e n u ***\n\n");
       printf ("\t1. Capturar\n");
       printf ("\t2. Mostrar\n");
       printf ("\t3. Suma de Matrices\n");
       printf ("\t4. Resta de Matrices\n");
       printf ("\t5. Multiplicacion de Matrices\n");
       printf ("\t6. Ordenar por filas y columnas a la matriz => \n");
       printf ("\t7. Valor Menor, Mayor y Promedio => \n\n");
       printf ("\t8. Salir\n\n");
       printf ("\t\tOpcion ");
       opc=getch();
       switch(opc)
       {   case '1':clrscr();
   printf ("\n\n\tCapturando las matrices A y B\n\n");
   printf ("\t   No. de Filas: ");
   scanf("%d",&nf);
   printf ("\tNo. de Columnas: ");
   scanf("%d",&nc);
   printf("\n");
   captura (0,'A');
   captura (1,'B');
   break;
  case '2':clrscr();
   printf ("\n\n\tLas matrices capturadas son:\n\n");
   mostrar(0,'A');
   mostrar(1,'B');
   getch();
   break;
  case '3':clrscr();
   printf ("\n\n\tLa Suma de las matrices A y B es:\n\n");
   sumar (0,1,2);
   getch();
   break;
   case '4':clrscr();
   printf ("\n\n\tLa Resta de las matrices A y B es:\n\n");
   restar (0,1,3);
   getch();
   break;
   case '5':clrscr();
   printf ("\n\n\tLa Multiplicacion de las matrices A y B es:\n\n");
   multiplicar (0,1,4);
   getch();
   break;
   case '6':do
   { clrscr();
printf ("\n\n\t\t* * Menu ordenar * *\n\n\n");
printf ("\t1. Matriz A\n");
printf ("\t2. Matriz B\n");
printf ("\t3. Volver\n\n");
printf ("\tOpcion ");
opco=getch();
switch(opco)
{    case '1':clrscr();
    printf ("\n\tLa matriz original capturado es:\n\n");
    mostrar(0,'A');
    printf ("\n\n\n");
    ordenar_f(0,7);
    printf ("\n\n\n");
    ordenar_c(0,6);
    getch();
    break;
   case '2':clrscr();
    printf ("\n\tLa matriz original capturado es:\n\n");
    mostrar(1,'B');
    printf ("\n\n\n");
    ordenar_f(1,7);
    printf ("\n\n\n");
    ordenar_c(1,6);
    getch();
    break;
}
   }
   while(opco!='3');
   break;
   case '7':do
   {
clrscr();
printf ("\n\n\t* * Menu Menor, Mayor, Promedio * *\n\n\n");
printf ("\t1. Matriz A\n");
printf ("\t2. Matriz B\n");
printf ("\t3. Volver\n\n");
printf ("\tOpcion ");
opcm=getch();
switch(opcm)
{
   case '1':clrscr();
    menor(0);
    mayor(0);
    promedio(0);
    getch();
    break;
   case '2':clrscr();
    menor(1);
    mayor(1);
    promedio(1);
    getch();
    break;
}
   }
   while(opcm!='3');
   break;
       }
   }
   while(opc!='8');
}
void captura(int n, char iden)
{   int i,j;
   printf ("\n\tMatriz %c:\n ",iden);
   printf ("\n");
   for (i=0;i<nf;i++)
       for (j=0;j<nc;j++)
       {
  printf ("\tElemento [%d][%d]: ",i+1,j+1);
  scanf ("%d",&matriz[i][j][n]);
       }
   printf("\n\n");
}

void mostrar (int n, char iden)
{   int i,j;
   printf ("\tMatriz %c:\n",iden);
   printf ("\n");
   for (i=0;i<nf;i++)
   {
for (j=0;j<nc;j++)
printf ("   %4d\t", matriz[i][j][n]);
printf ("\n");
   }
}

void sumar (int op1, int op2, int res)
{   int i,j;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       {
matriz[i][j][res] += matriz[i][j][op1] + matriz[i][j][op2];
       }
   }
   printf("\n\tResultado:\n\n");
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
  printf ("%4d",matriz[i][j][op1]);
  if (i!=1)
   printf ("     ");
   else
   printf ("  +  ");
   for (j=0;j<nc;j++)
   printf("%4d",matriz[i][j][op2]);
   if(i!=1)
   printf ("     ");
   else
   printf ("  =  ");
   for (j=0;j<nc;j++)
   printf ("%4d",matriz[i][j][res]);
   printf ("\n");
   }
}

void restar (int op1, int op2, int res)
{
   int i,j;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       {
matriz[i][j][res] += matriz[i][j][op1] - matriz[i][j][op2];
       }
   }
   printf("\nResultado:\n\n");
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
  printf ("%4d",matriz[i][j][op1]);
  if (i!=1)
   printf ("     ");
   else
   printf ("  -  ");
   for (j=0;j<nc;j++)
   printf("%4d",matriz[i][j][op2]);
   if(i!=1)
   printf ("     ");
   else
   printf ("  =  ");
   for (j=0;j<nc;j++)
   printf ("%4d",matriz[i][j][res]);
   printf ("\n");
   }
}

void multiplicar (int op1, int op2, int res)
{
   int i,j,k;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       {
  for (k=0;k<nc;k++)
      matriz[i][j][res] += matriz[i][k][op1] * matriz[k][j][op2];
       }
   }
   printf("\nResultado:\n\n");
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
  printf ("%4d",matriz[i][j][op1]);
  if (i!=1)
   printf ("     ");
   else
   printf ("  X  ");
   for (j=0;j<nc;j++)
   printf("%4d",matriz[i][j][op2]);
   if(i!=1)
   printf ("     ");
   else
   printf ("  =  ");
   for (j=0;j<nc;j++)
   printf ("%4d",matriz[i][j][res]);
   printf ("\n");
   }
}

void ordenar_f(int n, int res)
{
   int i,j,k,aux;
   for (i=0;i<nf;i++)
   {
for (j=0;j<nc;j++)
matriz[i][j][res]=matriz[i][j][n];
   }
   for (j=0;j<nf;j++)
   {
       for (i=0;i<nc-1;i++)
       {
  for (k=i+1;k<nc;k++)
  {
      if (matriz[j][i][res] > matriz[j][k][res])
      {
  aux = matriz[j][i][res];
  matriz[j][i][res] = matriz[j][k][res];
  matriz[j][k][res] = aux;
      }
  }
       }
   }
   printf ("\n\tOrdenado por filas\n\n");
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
  printf ("   %4d\t", matriz[i][j][res]);
  printf ("\n");
   }
   printf ("\n");
}

void ordenar_c(int n, int res)
{
   int i,j,k,aux;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       matriz[i][j][res]=matriz[i][j][n];
   }
   for (j=0;j<nc;j++)
   {
       for (i=0;i<nf-1;i++)
       {
  for (k=i+1;k<nf;k++)
  {
      if (matriz[i][j][res] > matriz[k][j][res])
      {
  aux = matriz[i][j][res];
  matriz[i][j][res] = matriz[k][j][res];
  matriz[k][j][res] = aux;
      }
  }
       }
   }
   printf ("\n\tOrdenado por culumnas\n\n");
   for (i=0;i<nf;i++)
   {
      for (j=0;j<nc;j++)
 printf ("   %4d\t", matriz[i][j][res]);
 printf ("\n");
   }
   printf ("\n");
}

void menor(int n)
{
   int i,j,auxm=1,posf=0,posc=0;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       {
  if (auxm > matriz[i][j][n])
  {
      auxm=matriz[i][j][n];
      posf=i;
      posc=j;
  }
       }
   }
   printf ("\n\n\tEl numero menor es: %d posicion [%d][%d] ",auxm,posf+1,posc+1);
}

void mayor(int n)
{
   int i,j,auxM=0,posf=0,posc=0;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       {
  if (auxM < matriz[i][j][n])
  {
      auxM=matriz[i][j][n];
      posf=i;
      posc=j;
  }
       }
   }
   printf ("\n\n\tEl numero mayor es: %d posicion [%d][%d] ",auxM,posf+1,posc+1);
}

void promedio(int n)
{
   int i,j;
   float acu=0,p;
   for (i=0;i<nf;i++)
   {
       for (j=0;j<nc;j++)
       {
  acu+=matriz[i][j][n];
       }
   }
   p = acu/(nf*nc);
   printf ("\n\n\tEl promedio la matriz es: %4.2f",p);
}

Descarga

No response to “Matrices con Numeros Operaciones/ordenamiento”