jueves, 17 de febrero de 2011

Laboratorio01 - Arreglos


Ola este es el Laboratorio 01 del curso de estructuras de datos que trata sobre arreglos unidimensionales y bidimencionales.. espero les ayude.. Saludos

Unidimensionales:

01. Diseñe e Implemente un algoritmo para hallar el mínimo y máximo elemento de un vector :

#include<iostream.h>
#include<conio.h>
using namespace std;
int main()
{
 system("color 9F");
 int V[100];
 int N,mayor, menor;
 char R='S';
 cout<<"\n\n\n\n\n\n";  
 cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
 cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
 cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
 cout<<endl<<"\t     º          Laboratio 01 - Unidimensionales           º  ";
 cout<<endl<<"\t     º                   Ejercicio 01                     º  ";
 cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  ";
 cout<<"\n\n\t  >>Presione cualquier tecla para continuar...";
 getch();
 system("CLS");
 do
 {
 cout<<"\n\n";
 cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
 cout<<endl<<"\t\tº  DISENIE E IMPLEMENTE UN ALGORITMO PARA HALLAR     º  ";
 cout<<endl<<"\t\tº  EL MINIMO Y EL MAXIMO ELEMENTO DE UN VECTOR:      º  ";
 cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  ";
    cout<<endl<<"\n Ingrese Cantidad de Elementos del vector: ";
    cin>>N;

    cout<<endl<<" Elemento 1 : ";
    cin>>V[0];

    mayor = V[0];
    menor = V[0];
     
    for (int i = 1 ; i < N ; i++)
    {
      cout<<" Elemento "<<i+1<<" : ";
      cin>>V[i];
      if( V[i] > mayor )
        mayor = V[i];
      if( V[i] < menor)
        menor = V[i];
    }

    cout<<endl;  
    cout<<" El Elemento Maximo es : "<<mayor<<endl;   
    cout<<" El Elemento Minimo es : "<<menor<<endl<<endl;
    cout<<" DESEA CONTINUAR [S/N]  :  ";
    cin>>R;
    cout<<endl;
    system("CLS");
       
 }
 while ( R == 'S' || R == 's' );
 cout<<"\n\n\n\n\n\n\n\n\n\n\n\t\t\t Visita http://www.infobiks.blogspot.com/ ";
 getch();   
}

02. Verificar si un vector esta en orden ascente :

#include<iostream.h>
#include<conio.h>
using namespace std;
int main()
{
 system("color 9F");
 int V[100],N,i;
 char R = 'S';
       
    cout<<"\n\n\n\n\n\n";
    cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
    cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
    cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
    cout<<endl<<"\t     º          Laboratio 01 - Unidimensionales           º  ";
 cout<<endl<<"\t     º                   Ejercicio 02                     º  ";
 cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  ";
 cout<<"\n\n\t  >>Presione cualquier tecla para continuar...";
    getch();
    system("CLS");
 do
 {
    cout<<"\n\n";
    cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ";
    cout<<endl<<"\t\tº DISENIE E IMPLEMENTE UN ALGORITMO PARA VERIFICAR   º ";
    cout<<endl<<"\t\tº SI UN VECTOR ESTA EN ORDEN ASCENDENTE:             º ";
    cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ \n";
    cout<<endl<<" Ingrese Cantidad de Elementos del Vector: ";
    cin>>N;
    cout<<endl;
     
    for (i = 0 ; i < N ; i++)
       {
         cout<<" Elemento "<<i+1<<" : ";
         cin>>V[i];
       }

    int j = 0;

    for (i = 0 ; i < N ; i++)
         if( V[i+1] > V[i])
            j++;

    if ( i == j )
       {cout<<endl<<" Esta en forma ascendente "<<endl<<endl;}
    else
       {cout<<endl<<" No Esta en forma ascendente "<<endl<<endl;}
   
    cout<<" DESEA CONTINUAR [S/N]  :  ";
    cin>>R;
       
    system("CLS");
       
 }

 while ( R == 'S' || R == 's' );
   
}

03. Interseccion de 2 vectores :

#include<iostream.h>
#include<conio.h>
int main()
{
    system("color 9F");
    int vectorA[50], vectorB[50], A, B, i, j, c, inter=0;
    char R = 'S';
       cout<<"\n\n\n\n\n\n";
       cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
       cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
       cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
       cout<<endl<<"\t     º          Laboratio 01 - Unidimensionales           º  ";
    cout<<endl<<"\t     º                   Ejercicio 04                     º  ";
    cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
    cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  ";
      cout<<"\n\n\t  >>Presione cualquier tecla para continuar...";
      getch();
      system("CLS");
    do
     { cout<<"\n";
       cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
       cout<<endl<<"\t\tº  DISENIE E IMPLEMENTE UN ALGORIMO PARA      º";
      cout<<endl<<"\t\tº  LA INTERSECCION DE DOS VECTORES:           º";
      cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ \n";
       cout<<endl<<"   Ingrese numero de elementos del vector A: ";
       cin>>A;
       for(i=0;i<A;i++)
       {
                    cout<<" Ingrese elemento ["<<i+1<<"] : ";
                    cin>>vectorA[i];
       }
       cout<<endl<<" Ingrese numero de elementos del vector B: ";
       cin>>B;
       for(j=0;j<B;j++)
       {
                    cout<<" Ingrese elemento ["<<j+1<<"] : ";
                    cin>>vectorB[j];
       }
        for(i=0;i<A;i++)
        {    c=0;
             while(c<B)
             {
                   if(vectorA[i]==vectorB[c])
                   {
                        inter++;
                   }
                   c++;
             }
        }
        if(inter==0)
                   cout<<endl<<" No hay intersecciones"<<endl;
        else
        {
                   cout<<endl<<" Las intersecciones son: ";
                   for(i=0;i<A;i++)
                   {
                            c=0;
                            while(c<B)
                            {
                            if(vectorA[i]==vectorB[c])
                            cout<<vectorA[i]<<", ";
                            c++;
                            }
                   }
        }
   
        cout<<endl<<endl;
        cout<<" DESEA CONTINUAR [S/N]  :  ";
        cin>>R;
       
        system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
       
}

04. Calcular la media aritmetica :

#include<iostream.h>
using namespace std;
main()
{
system("color 9F");
int n,A[100];
double cont=0;
char R = 'S';
       
    do
    {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Unidimensionales            º  ";
        cout<<endl<<"\t     º                  Ejercicio 01                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t       LEA N NUMEROS ALMACENELOS EN UN ARRAY, CALCULE LA ";
       cout<<endl<<"\t       MEDIA ARITMETICA Y MUESTRELA EN PANTALLA: "<<endl;
       cout<<"\n >> Ingrese cantidad de elementos: ";
       cin>>n;
       cout<<"\n";
       for(int i=0;i<n;i++)
       { 
          cout<<"     Ingrese elemento ["<<i+1<<"] : ";
          cin>>A[i];     
       }
       for (int i=0;i<n;i++) /////// Suma de elementos del array
       {
           cont=cont+A[i];
       }
       if (n > 0)  ////////// Condicion Media Aritmetica
       {
           cont=cont/n;
       }
       else
       {
           cont=0;
       }
       cout<<"\n >> La media aritmetica del arreglo es : "<<cont;

       cout<<"\n\n";
       cout<<" DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
}

05. Calcular el Promedio Ponderado de un conjunto de notas y sus respectivos Pesos :

#include<iostream.h>
#include<conio.h>
using namespace std;
main()
{
   system("color 9F");
   float A[100],n,B[100];
   float sumprod=0,sumpesos=0,ponderado;
   char R = 'S';
       
   do
   {
   cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
   cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
   cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
   cout<<endl<<"\t     º         Laboratio 01 - Unidimensionales            º  ";
   cout<<endl<<"\t     º                   Ejercicio 02                     º  ";
   cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t\t CALCULE EL PROMEDIO PONDERADO DE UN CONJUNTO  ";
   cout<<endl<<"\t\t DE NOTAS Y SUS RESPECTIVOS PESOS: "<<endl;
  
   cout<<"\n\t >> Cuantas notas desea Ingesar: ";
   cin>>n;
   cout<<"\n";
  
   if(n>0)
   {
          for(int i=0;i<n;i++)
          {
                  cout<<"\t      Nota ["<<i+1<<"] : ";
                  cin>>A[i];
          }
  
          cout<<"\n\t    Ingrese sus respectivos pesos: ";
          cout<<"\n\n";
  
          for(int i=0;i<n;i++)
          {
          cout<<"\t      Peso de la Nota ["<<i+1<<"] : ";
          cin>>B[i];      
          }
  
          /* SUMA DEL PRODUCTO DE LAS NOTAS CON LOS PESOS */
  
          for(int i=0;i<n;i++)
          {
                  sumprod=sumprod+(A[i]*B[i]);
          }
  
          /* SUMA DE LOS PESOS */
  
          for(int i=0;i<n;i++)
          {
                  sumpesos=sumpesos+B[i];     
          }
  
          ponderado=sumprod/sumpesos;
   }
   else
   {
          ponderado=0;   
   }
  
   cout<<"\n\t >> El Promedio Ponderado es: "<<ponderado;
  
   cout<<"\n\n\t DESEA CONTINUAR [S/N]  :  ";
   cin>>R;
       
   system("CLS");
       
   }
   while ( R == 'S' || R == 's' );
}

06. Calcule la Varianza y la Desviacion Estandar almacenados en un conjunto de arrays :

#include<iostream.h>
#include<conio.h>
#include<math.h>
using namespace std;
main()
{
   system("color 9F");
   int A[100],n;
   double suma=0,cont=0,media,varianza,desvestan;
   char R = 'S';
       
   do
   {
   cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
   cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
   cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
   cout<<endl<<"\t     º         Laboratio 01 - Unidimensionales            º  ";
   cout<<endl<<"\t     º                   Ejercicio 04                     º  ";
   cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t\t CALCULE LA VARIANZA Y LA DESVIACION ESTANDAR  ";
   cout<<endl<<"\t\t ALMACENADOS EN UN CONJUNTO DE ARRAYS: "<<endl;
  
   cout<<"\n\t >> Cuantos elementos desea Ingesar: ";
   cin>>n;
   cout<<"\n";
  
   for(int i=0;i<n;i++)
   {
      cout<<"\t      Elemento ["<<i+1<<"] : ";
      cin>>A[i];
   }
  
   /* MEDIA */
  
   for(int i=0;i<n;i++)
   {
      suma=suma+A[i];
   }
  
   media=suma/n;
  
   /* SUMATORIA DE ELEMENTO MENOS LA MEDIA */
  
   for(int i=0;i<n;i++)
   {
      cont=cont+pow((A[i]- media),2);      
   }
   
   if(n>0)
   {
   /* VARIANZA */
   varianza=cont/n;
   /* DESVIACION ESTANDAR */
   desvestan=pow(varianza,0.5);
   }
   else
   {
   varianza=0;
   desvestan=0;
   }
  
   cout<<"\n\t >> La Varianza de los elementos dados es: "<<varianza;
   cout<<"\n\t    y la Desviacion Estandar es: "<<desvestan;
  
   cout<<"\n\n\t DESEA CONTINUAR [S/N]  :  ";
   cin>>R;
       
   system("CLS");
       
   }
   while ( R == 'S' || R == 's' );
}
 

07. Elimine los elementos repetidos en un array :

#include<iostream.h>
#include<string.h>
using namespace std;
main()
{
   system("color 9F");
   int A[100],n;
   char R = 'S';
       
    do
    {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Unidimensionales            º  ";
        cout<<endl<<"\t     º                  Ejercicio 05                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t         ELIMINE LOS ELEMENTOS REPETIDOS DE UN ARRAY: \n";
        cout<<"\n\t >> Ingrese numero de elementos : ";
        cin>>n;
        cout<<"\n";
  
        for(int i=0;i<n;i++)
        {
           cout<<"\t        Elemento ["<<i+1<<"] : ";
           cin>>A[i];       
        }
  
        /* ELIMINACION DE REPETIDOS */
        for (int i=0;i<n;i++)
        {
           for (int j=i+1;j<n;j++)
           {
              if (A[i]==A[j])
              {
                 for (int k=j;k<n-1; k++)
                 {
                    A[k]=A[k+1];
                 }
                 n=n-1;
                 j=i;
              }
           }
        }
  
        cout<<"\n\t >> El areglo queda asi: ";
                
        for(int i=0;i<n;i++)
         {
              cout<<" "<<A[i];
         }
       cout<<"\n\n";
       cout<<"\t DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
}

08. Dado un numero de Dia de un determinado Año, encuentre el Dia, Mes y Año al que corresponde :

#include<iostream.h>
using namespace std;
main()
{
   system("color 9F");
   int numdias,numanio,bis,suma=0,i=0;
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Unidimensionales            º  ";
        cout<<endl<<"\t     º                  Ejercicio 06                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t    DADO UN NUMERO DE DIA DE UN DETERMIADO ANIO, ENCUENTRE ";
       cout<<endl<<"\t    EL DIA, MES Y ANIO AL QUE CORRESPONDE: \n";
        cout<<"\n\t\t >> Ingrese numero de Dias: ";
        cin>>numdias;
        cout<<"\n\t\t >> Ingrese el Anio: ";
        cin>>numanio;
       
        if((numanio % 4==0)&&((numanio % 100 !=0)||(numanio % 400 ==0)))
        { bis=29; }
        else
        { bis=28; }
  
        int meses[12]={31,bis,31,30,31,30,31,31,30,31,30,31};
        while(numdias>suma)
        {
         suma=suma+meses[i];
         i=i+1;
        }
        suma=suma-meses[i-1];
   
        cout<<"\n\t\t >> La Fecha es "<<numdias-suma<<"/"<<i<<"/"<<numanio<<"\n";
       
        cout<<"\n\n\t    ";
       
    system("pause");
}


Bidimensionales:

01. Calcular la Media Aritmetica de los valores de una matriz :

#include<iostream.h>
using namespace std;
main()
{
system("color 9F");
int f,c,A[100][100],suma;
float cont=0;
char R = 'S';
       
    do
    {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Bidimensionales             º  ";
        cout<<endl<<"\t     º                  Ejercicio 01                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"    INGRESAR A UNA MATRIZ DE F FILAS Y C COLUMNAS TODOS SUS VALORES; LUEGO ";
       cout<<endl<<"    CALCULAR LA MEDIA ARITMETICA DE DICHOS VALORES Y MOSTRAR DICHA MATRIZ: "<<endl;
       cout<<"\n\t >> Ingrese numero de filas: ";
       cin>>f;
       cout<<"\t >> Ingrese numero de columnas: ";
       cin>>c;
       cout<<"\n";
      
       suma=f+c;
      
       for(int i=0;i<f;i++) //////// INSERTAR MATRIZ
       { 
          for(int j=0;j<c;j++)
          {
              cout<<"\t     Ingrese elemento ["<<i<<"]["<<j<<"] : ";
              cin>>A[i][j];
          }     
       }
      
       for(int i=0;i<f;i++)  //// SUMA DE ELEMENTOS DE LA MATRIZ
       { 
          for(int j=0;j<c;j++)
          {
              cont=cont+A[i][j];
          }     
       }
      
       if ((f>0)&&(c>0))  ////////// Condicion Media Aritmetica
       {
           cont=cont/suma;
       }
       else
       {
           cont=0;
       }
      
       cout<<"\n\t >> La media aritmetica de los valores es : "<<cont;
       cout<<"\n\n\t >> MATRIZ INGRESADA  :\n\n\t";
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ
       {
          for ( int j=0 ; j<c ; j++ )
              cout<<"\t "<<A[i][j];
              cout<<"\n\n\t";
       }
       cout<<"\n";
       cout<<"\t DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
}

02. Calcular la Transpuesta de una Matriz :

#include<iostream.h>
using namespace std;
main()
{
system("color 9F");
int f,c,A[100][100],B[100][100];
char R = 'S';
       
    do
    {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Bidimensionales             º  ";
        cout<<endl<<"\t     º                  Ejercicio 02                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t\t    ENCUENTRE LA TRANSPUESTA DE UNA MATRIZ: \n";
       cout<<"\n\t >> Ingrese numero de filas: ";
       cin>>f;
       cout<<"\t >> Ingrese numero de columnas: ";
       cin>>c;
       cout<<"\n";
      
       for(int i=0;i<f;i++) //////// INSERTAR MATRIZ
       { 
          for(int j=0;j<c;j++)
          {
              cout<<"\t     Ingrese elemento ["<<i<<"]["<<j<<"] : ";
              cin>>A[i][j];
              B[j][i]=A[i][j];
          }     
       }
       cout<<"\n\n\t >> MATRIZ INGRESADA  :\n\n\t";
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ
       {
          for ( int j=0 ; j<c ; j++ )
              cout<<"\t "<<A[i][j];
              cout<<"\n\n\t";
       }
      
       cout<<"\n\n\t >> TRANSPUESTA DE LA MATRIZ :\n\n\t";
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ
       {
          for ( int j=0 ; j<c ; j++ )
              cout<<"\t "<<B[i][j];
              cout<<"\n\n\t";
       }
       cout<<"\n";
       cout<<"\t DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
}

03. Generar una Matriz Identidad de orden n x n :

#include<iostream.h>
using namespace std;
main()
{
system("color 9F");
int f,c,A[100][100];
char R = 'S';
       
    do
    {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Bidimensionales             º  ";
        cout<<endl<<"\t     º                  Ejercicio 02                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t       GENERAR UNA MATRIZ IDENTIDAD DE DIMENSIONES NxN: \n";
       cout<<"\n\t >> Ingrese numero de filas: ";
       cin>>f;
       cout<<"\t >> Ingrese numero de columnas: ";
       cin>>c;
       cout<<"\n";
      
        for(int i=0;i<f;i++) ///////// TRANSPUESTA DE LA MATRIZ
       { 
          for(int j=0;j<c;j++)
          {
              if(i==j)
              { A[i][j]=1; }
              else
              { A[i][j]=0; }
          }     
       }
             
      
       cout<<"\n\t >> LA MATRIZ IDENTIDAD DE ORDEN ["<<f<<"]["<<c<<"] es :\n\n\t";
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ IDENTIDAD
       {
          for ( int j=0 ; j<c ; j++ )
              cout<<"\t "<<A[i][j];
              cout<<"\n\n\t";
       }
       cout<<"\n";
       cout<<"\t DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
}

04. Insertar Vector en una columna determinada de una Matriz :

#include<iostream.h>
using namespace std;
main()
{
system("color 9F");
int f,c,A[100][100],B[100][100],C[100],pos,k=0;
char R = 'S';
       
    do
    {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Bidimensionales             º  ";
        cout<<endl<<"\t     º                  Ejercicio 02                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t   INSERTE UN VECTOR EN UNA COLUMNA DETERMINADA DE UNA MATRIZ: \n";
       cout<<"\n\t >> Ingrese numero de filas: ";
       cin>>f;
       cout<<"\t >> Ingrese numero de columnas: ";
       cin>>c;
       cout<<"\n";
      
       for(int i=0;i<f;i++) //////// INSERTAR MATRIZ
       { 
          for(int j=0;j<c;j++)
          {
              cout<<"\t     Ingrese elemento ["<<i<<"]["<<j<<"] : ";
              cin>>A[i][j];
          }     
       }
       cout<<"\n\n\t >> MATRIZ INGRESADA  :\n\n\t";
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ
       {
          for ( int j=0 ; j<c ; j++ )
              cout<<"\t "<<A[i][j];
              cout<<"\n\n\t";
       }
      
       cout<<"\n\n\t >> Ingrese la posicion de la columna : ";
       cin>>pos;
      
       for(int i=0;i<f;i++) //////// INSERTAR VECTOR
       {   
              cout<<"\t     Ingrese elemento ["<<i<<"] : ";
              cin>>C[i];    
       }
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ
       {
          for ( int j=0 ; j<c+1 ; j++ )
          {
              if(pos==j)
              { 
                 B[i][j]=C[k];
                 k=k+1;
              }
              else
              {
                  B[i][j]=A[i][j];
              }
          }
       }
      
       cout<<"\n\n\t >> MATRIZ MODIFICADA :\n\n\t";
      
       for ( int i=0 ; i<f ; i++ ) ///////// MOSTRAR MATRIZ MODIFICADA
       {
          for ( int j=0 ; j<c+1 ; j++ )
              cout<<"\t "<<B[i][j];
              cout<<"\n\n\t";
       }
       cout<<"\n";
       cout<<"\t DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
     }
     while ( R == 'S' || R == 's' );
}

05. Hallar el producto de 2 Matrices :

#include<iostream>
#include<conio.h>
using namespace std;
/* FUNCION INGRESAR MATRIZ */
void ingresar(int A[50][50],int f1,int c1)
{
 int i,j;


 for(i=0;i<f1;i++)
  
    for(j=0;j<c1;j++)
        {
         cout<<"    Ingrese["<<i<<"]["<<j<<"] = ";
         cin>>A[i][j];
        }
}     
/* FUNCION MULTIPLICAION DE MATRICES */
void producto(int A[50][50],int B[50][50], int f1,int c1,int c2)
 {
    int C[50][50];

  int i=0, j=0, k=0, s=0;


  for (i=0;i<f1;i++)
      {
      for(j=0;j<c2;j++)
          {
          s=0;
        
          for(k=0;k<c1;k++)
              {
              s+=A[i][k]*B[k][j];
              }
              C[i][j]=s;
          }
    }
  
 cout<<endl<<"   MULTIPLICACION : "<<endl<<endl;

  cout<<"\t A = "<<endl;
      
  for(int i=0;i<f1;i++)
      {
      cout<<endl<<endl;
      for(int j=0;j<c2;j++)
        {
  
       cout<<"\t  "<<C[i][j]<<"\a";
        }
}
}

int main()
  {

  
    system("color 9F");
  
    int  A[50][50],B[50][50];
    char R = 'S';   
    int f1,f2,c1,c2;
  
       cout<<"\n\n\n\n\n\n";
       cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
       cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
       cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
       cout<<endl<<"\t     º           Laboratio 01 - Bidimensionales           º  ";
       cout<<endl<<"\t     º                   Ejercicio 04                     º  ";
       cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
    cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n";
    cout<<endl<<"\t   >> Presione cualquier tecla para continuar...";
    getch();
    system("CLS");
    do
    {
       cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ";
       cout<<endl<<"\t\tº DISENIE E IMPLEMENTE UN ALGORITMO PARA HALLAR  º ";
      cout<<endl<<"\t\tº EL PRODUCTO DE DOS MATRICES AxB:               º ";
      cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n";
  
       cout<<endl<<"  Ingrese 1ra matriz: "<<endl;
  
       cout<<"   # Filas    : ";
       cin>>f1;
  
       cout<<"   # Columnas : ";
       cin>>c1;
  
       ingresar(A,f1,c1);
  
       cout<<endl<<"  Ingrese 2da matriz: "<<endl;
  
       cout<<"   # Filas    : ";
       cin>>f2;
     
      cout<<"   # Columnas : ";
      cin>>c2;
  
      ingresar(B,f2,c2);
      
      
       if ( c1==f2)
    
       producto(A,B,f1,c1,c2);
       else
   
       cout<<"\n  No se Pueden Multiplicar...";
   
  
       cout<<endl<<endl;
       cout<<"\n   DESEA CONTINUAR [S/N]  :  ";
       cin>>R;
       
       system("CLS");
       
    }
    while ( R == 'S' || R == 's' );
       
}
  

06. Hallar la inversa de una Matriz :

#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#define FIL 30
#define COL 30
using namespace std;
void leer_matriz(double[][COL],int,int);
void imp_matriz(double[][COL],int,int);
void inversa(double[][COL],int,double[][COL]);
void pivote(int,int,double[][2*COL]);
main()
{
   system("color 9F");
   double A[FIL][COL],inv[FIL][COL];
   int n;
   char R = 'S';
       
   do
   {
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º         Laboratio 01 - Bidimensionales             º  ";
        cout<<endl<<"\t     º                  Ejercicio 06                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"                   IMPLEMENTAR LA INVERSA DE UNA MATRIZ: \n";
        cout<<"\n\t >> Ingrese Orden de la Matriz: ";
        cin>>n;
  
        leer_matriz(A,n,n);
        cout<<"\n\t >> Matriz Original: "<<endl;
        imp_matriz(A,n,n);
  
        inversa(A,n,inv);
        cout<<"\n\t >> Matriz Inversa: "<<endl;
        imp_matriz(inv,n,n);
        cout<<"\n";
        cout<<"\t >>  DESEA CONTINUAR [S/N]  :  ";
        cin>>R;
       
        system("CLS");
       
   }
   while ( R == 'S' || R == 's' );
}
/* FUNCION LEER MATRIZ */
void leer_matriz(double m[][COL],int f,int c)
{
  int i,j;
  cout<<"\n";
  for(i=0;i<f;i++)
  {
     for(j=0;j<c;j++)
     {
        cout<<"\t\tIngrese elemento ["<<i<<"]["<<j<<"]: ";
        cin>>m[i][j];
     }               
  }    
}
/* FUNCION IMPRIMIR MATRIZ */
void imp_matriz(double m[][COL],int f,int c)
{
   int i,j;
   cout<<"\n\t\t\t    ";
   for(i=0;i<f;i++)
   {
      for(j=0;j<c;j++)
      {
         cout<<m[i][j]<<"\t  ";
        // cout<<endl;               
      }
      cout<<"\n\t\t\t    ";               
   }    
}
/* FUNCION PIVOTE */
void pivote(int i,int n, double c[][2*COL])
{
   int j,piv=i;
   double t,v=c[i][i];
   for(j=i+1;j<n;j++)
   {
      if(fabs(v)<fabs(c[j][i]))
      {
         v=c[j][i];
         piv=j;                       
      }       
     
      if(v==0)
      {
         cout<<"No existe inversa";
         exit(1);       
      }
     
      for(j=i;j<2*n;j++)
      {
         t=c[i][j];
         c[i][j]=c[piv][j];
         c[piv][j]=t;
         c[i][j]=c[i][j]/v;                 
      }         
   }    
}
/* FUNCION INVERSA */
void inversa(double m[][COL],int n,double inv[][COL])
{
   int i,j,k;
   double c[FIL][2*COL];
  
   for(i=0;i<n;i++)
     for(j=0;j<n;j++)
      {
         c[i][j]=m[i][j];
         if(i==j)c[i][j+n]=1;
         else c[i][j+n]=0;                
      }
     
   for(i=0;i<n;i++)
   {
      pivote(i,n,c);
      for(j=0;j<n;j++)
      {  if(i!=j)
         {
            for(k=i+1;k<2*n;k++) 
                   c[j][k]=c[j][k]-c[j][i]*c[i][k];
                   c[j][i]=0;       
         }
      }               
   }               
     
   for(i=0;i<n;i++)
      for(j=0;j<n;j++)
         inv[i][j]=c[i][j+n];               
       
}

07. Crear el Tres en Raya :

#include<iostream.h>  
#include<stdio.h>
#include<stdlib.h>
using namespace std;
void Mostrar_Tablero(char tablero[3][3])
{
     int i, k, salto=0;
     system("cls");
     cout<<endl<<"\t      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
     cout<<endl<<"\t      º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
     cout<<endl<<"\t      º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
     cout<<endl<<"\t      º         Laboratio 01 - Bidimensionales             º  ";
     cout<<endl<<"\t      º          Ejercicio 07 - TRES EN RAYA               º  ";
     cout<<endl<<"\t      º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n\t"<<endl;
     cout<<"\t\t                   1   2   3\n";   
     for(i=0;i<3;i++)
     {  cout<<"\t\t                 ÉÍÍÍÍÍÍÍÍÍÍÍ»\n";
        cout<<"\t\t               "<<i+1<<" º";
        for(k=0;k<3;k++)
        {
           printf(" %c º", tablero[i][k]);
           salto++; //Cuento hasta 3 para dar un salto de linea y dibujar el tablero correctamente
           if(salto==3)
           {
           printf("\n");
           salto=0;
           }
        }
     }
     cout<<"\t\t                 ÍÍÍÍÍÍÍÍÍÍÍÍÍ\n";
     printf("\n\n");
}

void Pedir_Posicion_Player(int pos[2])
{
    int a, b, conta=0, okey=0;
    while(!okey)
    {
       printf("\n\t\t     )- Introduzca la fila: ");
       scanf("%d", &a);
       if(a<1||a>3)
       {
          printf("\nEste numero de fila no es valido, debe ser un numero del 1 al 3\n");
          system("pause > nul");
       }
       else
       {
          pos[conta]=a-1; //Resto uno al valor de la fila dado ya que el programa
                          //empieza a contar por 0 (no por 1) y asi de esta manera
                          //correspondera a la casilla elegida
          conta++;
          printf("\t\t     )- Introduzca la columna: ");
          scanf("%d", &b);
       }
       if(b<1||b>3)
       {
          printf("Este numero de columna no es valido, debe ser un numero del 1 al 3");
          system("pause > nul");
       }
       else
       {
          pos[conta]=b-1; //Resto uno a la columna por el mismo motivo que el anterior
          okey=1;
       }
    }
}

int Comprobar_Posicion(int pos[2], char tablero[3][3])
{
     int ok=0, i, k;
     i=pos[0];
     k=pos[1];
     if(tablero[i][k]==' ')
     { ok=0;}
     else
     { ok=1;}  //Compruebo si la casilla dada esta vacia
     return ok;
}

void Introducir_Posicion(int pos[2], char tablero[3][3], int *jugador)
{
     int i, k;
     i=pos[0];
     k=pos[1];
     if((*jugador)%2==0)
     {tablero[i][k]='X';}
     else
     {tablero[i][k]='O';}
     (*jugador)++; //Incremento en uno el turno del jugador para cambiar al siguiente jugador
}

int Estado_Partida(char tablero[3][3])
{
     int fin=0;
     if(tablero[0][0]=='X'&&tablero[1][0]=='X'&&tablero[2][0]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion | de la columna 0
     if(tablero[0][0]=='O'&&tablero[1][0]=='O'&&tablero[2][0]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[0][1]=='X'&&tablero[1][1]=='X'&&tablero[2][1]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion | de la columna 1
     if(tablero[0][1]=='O'&&tablero[1][1]=='O'&&tablero[2][1]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[0][2]=='X'&&tablero[1][2]=='X'&&tablero[2][2]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion | de la columna 2
     if(tablero[0][2]=='O'&&tablero[1][2]=='O'&&tablero[2][2]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[0][0]=='X'&&tablero[0][1]=='X'&&tablero[0][2]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion - de la fila 0
     if(tablero[0][0]=='O'&&tablero[0][1]=='O'&&tablero[0][2]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[1][0]=='X'&&tablero[1][1]=='X'&&tablero[1][2]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion - de la fila 1
     if(tablero[1][0]=='O'&&tablero[1][1]=='O'&&tablero[1][2]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[2][0]=='X'&&tablero[2][1]=='X'&&tablero[2][2]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion - de la fila 2
     if(tablero[2][0]=='O'&&tablero[2][1]=='O'&&tablero[2][2]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[0][0]=='X'&&tablero[1][1]=='X'&&tablero[2][2]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion \
     if(tablero[0][0]=='O'&&tablero[1][1]=='O'&&tablero[2][2]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     if(tablero[0][2]=='X'&&tablero[1][1]=='X'&&tablero[2][0]=='X') { printf("\n\t\t\t   << Ganan las fichas X !! >>"); fin=1; } //Combinacion /
     if(tablero[0][2]=='O'&&tablero[1][1]=='O'&&tablero[2][0]=='O') { printf("\n\t\t\t   << Ganan las fichas O !! >>"); fin=1; }
     return fin;
}
main () {
     system("color 9F");
     system("Title Tres en Raya en C++ (Hecho por infobiks.blogspot.com)");
    
     int fin=0, pos[2], ok, *jugador;
     char tablero[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' ',}; //Empiezo con el tablero vacio
    
     *jugador++; //Comienzo el turno en 1
    
     while(!fin)
     {
        Mostrar_Tablero(tablero);
        if((*jugador)%2==0) //Si la suma del turno es un numero par, le toca a X
        { printf("\t\t >> Es el turno de las X\n");}
        else //Si es impar, a 0
        { printf("\t\t >> Es el turno de las O\n");}
                                      
        Pedir_Posicion_Player(pos);
        ok=Comprobar_Posicion(pos,tablero);
                
        if(ok==0) //Si la casilla dada fue valida introduce la ficha...
        { Introducir_Posicion(pos,tablero,jugador);}
        else //Si no vuelve a pedir posicion
        { printf("\n\nLa casilla dada esta ocupada!");
          system("pause > nul");
          Mostrar_Tablero(tablero);
        }
                
        Mostrar_Tablero(tablero);
        fin=Estado_Partida(tablero); //Compruebo si hay alguna combinacion ganadora
     }
     system("pause > nul");
}

08. Hallar la Triangulo Superior e Inferior de una Matriz Cuadrada :

#include<iostream>
#include<conio.h>
using namespace std;
float **LeerMatriz (int fila,int columna)
{
    float **A=(float**)malloc(fila*sizeof(float*));
    for (int i=0;i<fila;i++)        A[i]=(float*)malloc(columna*sizeof(float));
    cout<<"\n";
    for (int j=0;j<fila;j++)
    {
        for(int k=0;k<columna;k++)
        {
            cout<<"  INGRESE ELEMENTO A["<<j+1<<"]["<<k+1<<"] : ";
            cin>>A[j][k];
        }
    }
    cout<<"\n\n\t LA MATRIZ ES : ";
    return A;
}
void mostrarMatriz (float **A,int fila,int columna)
{
    cout<<"\n\n";
    for (int i=0;i<fila;i++)
    {
        for (int j=0;j<columna;j++)          
             cout<<"\t "<<A[i][j];
             cout<<endl;
    }
    cout<<"\n\t ";
}
void Triangular_Sup (float **A,int fila,int columna)
{
      cout<<"\n\n\t TRIANGULAR SUPERIOR :\n\n";
      for (int i=0;i<fila;i++)
      {
          for (int j=0;j<columna;j++)
          {
              cout<<"\t ";
              if(j>=i)
                     cout<<A[i][j];
          }
          cout<<endl;
      }
      cout<<"\n\t ";
}
void Triangular_Inf (float **A,int fila,int columna)
{
      cout<<"\n\n\t TRIANGULAR INFERIOR :\n\n";
      for (int i=0;i<fila;i++)
      {
          for (int j=0;j<columna;j++)
          {
              cout<<"\t ";
              if(i>=j)          
                   cout<<A[i][j];
          }
          cout<<endl;
      }
      cout<<"\n\t ";
}
int main ()
{
    int f,c;
    char R = 'S';
    system("color CF");
   
    cout<<"\n\n\n\n\n\n";   
    cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
    cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
    cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
    cout<<endl<<"\t     º           Laboratio 01 - Bidimensionales           º  ";
 cout<<endl<<"\t     º                   Ejercicio 02                     º  ";
    cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n";
 cout<<endl<<"\t  >> Presione cualquier tecla para continuar ...";
 getch();
 system("CLS");

    do
    {
    cout<<endl<<"    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
   cout<<endl<<"    º  DISENIE E IMPLEMENTE UN ALGORITMO PARA HALLAR LA SUMA DEL TRIANGULO  º";
   cout<<endl<<"    º  SUPERIOR AL TRIANGULO INFERIOR EN UNA MATRIZ CUADRADA:               º";
   cout<<endl<<"    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ \n";
    cout<<endl<<"  INGRESE DIMENSIONES DE LA MATRIZ : "<<endl;
    cout<<"  # FILAS    : ";
    cin>>f;
    cout<<"  # COLUMNAS : ";
    cin>>c;
    float **A=LeerMatriz(f,c);
    mostrarMatriz(A,f,c);
    Triangular_Sup(A,f,c);
    Triangular_Inf(A,f,c);
    cout<<endl;
    cout<<"  DESEA CONTINUAR [S/N]  :  ";
    cin>>R;
       
    system("CLS");
       
    }
    while ( R == 'S' || R == 's' );
       
}

09. Hallar una Matriz Magica :

#include <iostream>
#include <conio.h>
using namespace std;
int ** Leer_Matriz (int T)
{
    int **A = (int**)malloc(T*sizeof(int*));
   
    cout<<"\n\n\n\t\t INGRESE MATRIZ \n";
   
    for ( int i=0 ; i<T ; i++)
    {
        A[i] = (int*)malloc(T*sizeof(int));
        for ( int j=0 ; j<T ; j++ )
        {
            cout<<"\n\t\t A["<<i+1<<"]["<<j+1<<"]  =  ";
            cin>>A[i][j];
        }
    }
   
    return A;
}
int Suma_Fila (int **M, int T)
{
    int suma2 = 0;
   
    for ( int i=0 ; i<T ; i++ )
    {
        int suma1 = 0;
       
        for (int j=0 ; j<T ; j++ )
            suma1 += M[j][i];
       
        if ( i == 0 )
            suma2 = suma1;
        else
            if( suma2 != suma1 )
                return -1;
    }
   
    return suma2;
}
int Suma_Columna (int **M, int T)
{
    int suma2 = 0;
   
    for ( int i=0 ; i<T ; i++ )
    {
        int suma1 = 0;
       
        for (int j=0 ; j<T ; j++ )
            suma1 += M[i][j];
       
        if ( i == 0 )
            suma2 = suma1;
        else
            if( suma2 != suma1 )
                return -1;
    }
   
    return suma2;
}
int Suma_Diagonal (int **M, int T)
{
    int suma1 = 0;
    int suma2 = 0;
   
    for ( int i=0 ; i<T ; i++ )
        suma1 += M[i][i];
       
    for ( int i=0 ; i<T ; i++ )
        suma2 += M[i][T-i-1];
   
    if( suma2 != suma1 )
        return -1;
   
    return suma1;
}
void Mostrar_Matriz (int **M,int T)
{
     cout<<"\n\n\n\t\t MATRIZ INGRESADA  :\n\n\n\t";
     for ( int i=0 ; i<T ; i++ )
     {
         for ( int j=0 ; j<T ; j++ )
             cout<<"\t "<<M[i][j];
         cout<<"\n\n\t";
     }
}
int main ()
{
    int **M = NULL;
    int T,V;
    char R = 'S';
   
    system("color CF");
   
        cout<<"\n\n\n\n\n\n";
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
        cout<<endl<<"\t     º           Laboratio 01 - Bidimensionales           º  ";
        cout<<endl<<"\t     º                   Ejercicio 05                     º  ";
        cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n";
     cout<<endl<<"\t  >>Presionar cualquier tecla para continuar...";
     getch();
     system("CLS");
    
    do {
        cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
        cout<<endl<<"\t\tº  DISENIE E IMPLEMENTE UN ALGORITMO PARA VERIFICAR   º";
       cout<<endl<<"\t\tº  SI UNA MATRIZ ES MAGICA O NO:                      º";
       cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n";
      
        cout<<"\n\tINGRESE TAMANIO DE LA MATRIZ  :  ";
        cin>>T;
       
        M = Leer_Matriz(T);
       
        Mostrar_Matriz(M,T);
       
        V = Suma_Fila (M,T);
       
        if( Suma_Columna (M,T) == V &&
           Suma_Diagonal (M,T) == V && V != -1 )
          
           cout<<"\n\n\t\t !!! LA MATRIZ ES MAGICA !!! ";
          
        else
           cout<<"\n\n\t\t !!! LA MATRIZ NO ES MAGICA !!! ";
          
        cout<<"\n\n\n\t DESEA CONTINUAR [S/N]  :  ";
        cin>>R;
       
        system("CLS");
       
        }
     while ( R == 'S' || R == 's' );
       
    return 0;
}

No hay comentarios.:

Publicar un comentario