miércoles, 27 de junio de 2012

9.1 Concurso de Baile (Ingreso de datos)

/* Una matriz de 10 filas y 7 columnas contiene las puntuaciones de 10 participantes de un concurso de baile (números reales con 1 decimal). La puntuación final de cada participante se obtiene como la suma de sus puntuaciones
excluyendo la mayor y la menor (con lo cual se suman 5 puntuaciones para cada participante). Diseñar un programa que indique quien es el ganador del concurso.*/


#include "iostream"
#include "conio.h"
using namespace std;
int main()
    {
  float mat1[11][8];
  float may, men, ganador, suma;
  int k, posGanador,i,j;
  posGanador=0;

//Llenar notas de los 10 participantes
cout<<"\n \t \t Concurso de Baile, Eleccion del ganador con Ingreso de Datos";
 for (i=1;i<=10;i++)
 {
   for (j=1;j<=7;j++)
   {     do{
        cout<<"\n \t \t Ingrese un valor en la posicion (" <<i <<" , "<<j <<")\t";
        cin>>(1,1,mat1[i][j]);
       }
    while(mat1[i][j]);
   }
 }

 //Imprime la Matriz

 for (i=1;i<=10;i++)
 {
  cout<<"\n \t \t";
   for (j=1;j<=7;j++)
   {

       cout<<mat1[i][j];
       cout<<"\t";
   }

 }
   cout<<"\nBuscando ganador\n";
   cout<<"Eliminando la mayor y menor nota queda: \n";

 //Eliminar mayor y menor

 ganador=0;
 for (i=1;i<=10;i++)
 {
  cout<<"\n";
   //Buscando mayor y menor de la fila
   may = mat1[i][1];
   men = mat1[i][1];

   for (k=2;k<=7;k++)
   {
       //si es mayor del mayor
       if(may < mat1[i][k])
       {
       may = mat1[i][k];
       }
       //si es menor del menor

       if(men>mat1[i][k])
       {
       men=mat1[i][k];
       }
   }
    suma=0;
   for (j=1;j<=7;j++)
   {
      if (mat1[i][j] == may || mat1[i][j] == men)
      {}
      else
    {
     suma +=  mat1[i][j];
     cout<< mat1[i][j];
     cout<<"\t";
    }
      if( j==7 )
      {
       if(ganador < suma)
    {
     posGanador=i;
     ganador=suma;
       //cout<<"\t\t%.1f",ganador);
    }
    }
   }
 }
 cout<<"\n El gandor es el  participante  "<<posGanador;
 cout<<"\n Con puntos =  "<<ganador;
 getch();
  }

1. Pares e Impares


/* Dado un vector A de 10 elementos, generar dos vectores adicionales B y C 
en los cuales se almacenen en el vector B los pares y en el vector C los impares.*/




#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
int a[10],b[10],c[10],i;
cout<<" \n \n \t \t Separacion de Pares e Impares de un vector\n \n \n";
for(i=0;i<=9;i++)
{
cout<<"\t \t Ingrese el "<<i <<" valor para el vector ";
cin>>a[i];
}

for(i=0;i<=9;i++)
{
if(a[i]%2==0)
{
   b[i]=a[i];
}
else
b[i]=0;


if(a[i]%2==1)
c[i]=a[i];
else
c[i]=0;


}


cout<<" \n Pares e Impares \n \n";

for(i=0;i<=9;i++)
{
if(b[i]!=0)
cout<<b[i]<<" ";
}
cout<<"\n";
for(i=0;i<=9;i++)
{
if(c[i]!=0)
cout<<c[i]<<" ";
}

getch();
}

2. Números Primos


/* Dado un vector A de 10 elementos, generar un segundo vector B en donde se almacenarán únicamente 
los números primos encontrados en el vector A. */




#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int A[10],B[10],i,j,cont;
cout<<"\n \t \t \t Numeros Primos\n \n";
for(i=0;i<=9;i++)
{
cout<<" \t \t Ingrese la posicion " <<i <<" del vector ";
cin>>A[i];
}
for(i=0;i<=9;i++)
{
cont=0;
for(j=1;j<=A[i];j++)
{
if (A[i]%j==0)
{
         cont++;
}
}

if (cont==2)
{
B[i]=A[i];
}
else
B[i]=0;
}
cout<<"\n \t \t \t Los numeros primos son:\n \n";
for(i=0;i<=9;i++)
{
if (B[i]!=0)
cout<<B[i]<<"\t \t";
}
getch();
}

3. Intercambio Diagonales Principales



/* Dadas dos matrices cuadradas A y B (5x5) intercambiar sus diagonales principales.*/


#include "iostream"
#include "conio.h"
using namespace std;
int main()
  {
  int mat[5][5],mat1[5][5];
  int i,j,aux;
  cout<<"\t \t \tIntercambio de las Diagonales Principales\n \n";
    cout<<"\n \t \t \t \t INGRESE LA 1ra MATRIZ \n\n";


  for (i=1;i<=5;i++)
  {
   for (j=1;j<=5;j++)
   {
     cout<<" \t \t \t Valor en la posicion  " <<"("<<i <<" , "<<j<<") "<<"\t";
     cin>>mat[i][j];
   }
  }
  cout<<"\n \t \t \t \t INGRESE LA 2da MATRIZ \n\n ";


  for (i=1;i<=5;i++)
  {
   for (j=1;j<=5;j++)
   {
     cout<<" \t \t \t Valor en la posicion  " <<"("<<i;
     cout<<" , "<<j<<") "<<"\t";
       cin>>mat1[i][j];
   }
  }


     // IMPRIME 1era MATRIZ //
  cout<<"\n \n \t \t \t \t  1ra MATRIZ \n";
   
 for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }


   // IMPRIME 2da MATRIZ
cout<<"\n \n \t \t \t \t  2da MATRIZ \n";
for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=5;j++)
   {
        cout<<mat1[i][j]<<"\t";
   }
  }


//Intercambio de Diagonales 
 cout<<"\n \n\n\t \t \t Intercambio diagonales principales\n ";
 for (i=1;i<=5;i++)
 {
  for (j=1;j<=5;j++)
   {
  if (i==j)
  {
         aux=mat[i][j];
mat[i][j]=mat1[i][j];
mat1[i][j]=aux;
  }
   }
}
   // IMPRIME MATRIZ 1 CON NUEVO RESULTADO
cout<<"\n \n \t  \t \t \t  1ra MATRIZ   \n";
   
 for (i=1;i<=5;i++)
 {
cout<<"\n \t \t\t";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }


   // IMPRIME MATRIZ 2 CON NUEVO RESULTADO
cout<<"\n \n \t \t \t \t  2da MATRIZ  \n";
for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=5;j++)
   {
        cout<<mat1[i][j]<<"\t";
   }
 }
getch();
}

4. Diagonal Principal por Secundaria


/* Dada una matriz cuadrada A (5x5) intercambiar la diagonal principal con la diagonal secundaria*/




#include "iostream"
#include "conio.h"
using namespace std;
int main()
  {
  int mat[5][5];
  int i,j,k,aux;
  cout<<"\n \n \t Intercambio de la Diagonal Principal por la Diagonal Secundaria\n \n";
    cout<<"\n  \t \t \t \t INGRESE LA MATRIZ \n \n";
  for (i=1;i<=5;i++)
  {
   for (j=1;j<=5;j++)
   {
     cout<<"\t \t \t Valor en la posicion  " <<"( "<<i <<" , ";
     cout<<j <<" )"<<"\t";
       cin>>mat[i][j];
   }
  }
  //IMPRIME MATRIZ
cout<<"\n \t \t \t \t\tMATRIZ  5x5 \n \n";
for (i=1;i<=5;i++)
 {
 cout<<"\n \t \t \t ";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }


//Intercambia diagonales principales x secundaria
 cout<<"\n\n\t \t \t \tIntercambio de diagonales \n \n";
k=5;
 for (i=1;i<=5;i++)
 { 
   for (j=1;j<=5;j++)
   {
 if (i==j)
  {
         aux=mat[i][k];
mat[i][k]=mat[i][j];
mat[i][j]=aux;
k--;
  }
   }
}
   // IMPRIME MATRIZ RESULTANTE
    for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t ";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }
getch();
}

5. Posición máximo y mínimo de una matriz


/* Dada una matriz A de 5 filas y 4 columnas, determinar el valor máximo y mínimo de la matriz,
indicando además las posiciones en las que se encuentran estos valores.*/




#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int a[5][4],i=4,j=3,mayor,men,p1,p2,p3,p4;
cout<<"\n \t \t Maximo, minimo y posiciones de una matriz\n \n ";
for(i=0;i<=4;i++)
{
for(j=0;j<=3;j++)
{
cout<<"\t \t \t Ingrese el valor ("<<i<<" "<<j<<") ";
cin>>a[i][j];
}
}
mayor=a[0][0];
p1=0;
p4=0;
men=a[0][0];
p2=0;
p3=0;
for(i=0;i<=4;i++)
{
      for(j=0;j<=3;j++)
  {
  if(i!=0 && j!=0)
  {
if(a[i][j]>mayor)
{
mayor=a[i][j];
p1=i;
p4=j;
}

if(a[i][j]<men)
{
men=a[i][j];
p2=i;
p3=j;
}
}
 }
}
cout<<"\n \t \t \t El mayor es: " <<mayor;
cout<<"\n \t \t \t La posicion del mayor es: "<<p1 <<"," <<p4;
cout<<"\n\n \t \t \t El menor es: " << men;
cout<<"\n \t \t \tLa posicion del menor es: "<<p2 <<","<<p3;
cout<<"\n \n";
for(i=0;i<=4;i++)
{
cout<<"\n \t \t \t ";
for(j=0;j<=3;j++)
{
cout<<a[i][j]<<"\t";
}
}
getch();
}

6. Triangular Superior


/*Dada una matriz cuadrada A (5x5) colocar el número 0 en su triangular superior.*/




#include "iostream"
#include "conio.h"
using namespace std;
int main()
{
int mat[6][6];
int n,i,j;
cout<<"\n \t \t \t Coloca 0 en la Triangular Superior\n \n ";   
for (i=1;i<=5;i++)
  {
   for (j=1;j<=5;j++)
   {
     cout<<"\t \t \t Valor en la posicion ("<<i<<" , "<<j<<") ";
       cin>>mat[i][j];
   }
  }


  //IMPRIME MATRIZ
cout<<"\n \t \t La matriz es: \n";
for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }
cout<<" \n \n Presione Enter para colocar el numero 0 en su triangular superior\n";
  getch();


 //Diagonal Superior con 0
for (i=1;i<=5;i++)
  {
for (j=1;j<6;j++)
   {
       if(j>i)
       {
mat[i][j]=0;
       }
   }
 }

// matriz la triangular superior con el numero 0
cout<<" \n \t Colocado el numero 0 en su triangular superior la Matriz es:\n";


   // IMPRIME MATRIZ CON RESULTADOS
for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }

7. Máximo de una Fila


/* Escribir un programa que lea una matriz de 5 filas y 5 columnas de valores enteros.
A continuación, el programa debe pedir el número de una fila (entre 1 y 5). 
El programa deberá devolver el valor máximo de esa fila.*/




#include "iostream"
#include "conio.h"
using namespace std;
 int main()
{
  int mat[6][6];
  int n,i,j;
  cout<<"\n \t \t \t Obtiene el valor maximo de x fila \n \n";
  for (i=1;i<=5;i++)
  {
   for (j=1;j<=5;j++)
   {
    cout<<"\t \t \tValor en la posicion ("<<i<<" , "<<j<<") \t";
      cin>>mat[i][j];
   }
  }


  // IMPRIME LA MATRIZ
  cout<<"\n \t \t La Matriz es: \n";
 for (i=1;i<=5;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=5;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
 }
//Calcula máximo de la fila
int max;
cout<<"\n \n \t Para devolver el maximo de una fila, Ingrese el numero de fila \t";
cin>>i;
     max=mat[i][1];
   for (j=2;j<6;j++)
   {
       if(max<mat[i][j])
       {
max=mat[i][j];
       }
   }
 cout<<"\n \n \t \t \t El valor maximo de la fila "<<i <<" es: " <<max;
 getch();
}

8. Intercambio de Filas


/*Escribir un programa que lea una matriz de enteros de 4 filas y 4 columnas 
y a continuación intercambie la fila i con la fila j, siendo i y j dos valores introducidos por teclado.*/




#include "iostream"
#include "conio.h"
using namespace std;
 int main()
  {
  int mat[6][6];
  int n,i,j,f1,f2,aux;
 cout<<"\n \t \t Intercambia Valores entre las filas i y j \n";
  for (i=1;i<=4;i++)
  {
   for (j=1;j<=4;j++)
   {
    do
{
cout<<"\t \t \tValor en la posicion ("<<i<<" , "<<j<<") \t";
cin>>mat[i][j];
}
while(mat[i][j]<0);
   }
  }
   // IMPRIME MATRIZ
cout<<"\n La matriz es: \n";
for (i=1;i<=4;i++)
 {
cout<<"\n \t \t \t";
   for (j=1;j<=4;j++)
   {
        cout<<mat[i][j]<<"\t";
   }
}
cout<<" \n \n\t \t \t Para Intercambiar las filas";
cout<<" \n \n Ingrese el numero de la 1ra. fila: ";cin>>f1;
cout<<" \n Ingrese el numero de la 2da. fila: ";cin>>f2;


//Intercambiando
  for (j=1;j<=4;j++)
   {     aux=mat[f1][j];
mat[f1][j]=mat[f2][j];
mat[f2][j]=aux;
   };


//La nueva matriz
 for (i=1;i<=4;i++)
 {
  cout<<"\n \t \t \t";
   for (j=1;j<=4;j++)
   {
cout<<mat[i][j];
cout<<"\t";
   }
 }
 getch();
}

9. Concurso de Baile


/* Una matriz de 10 filas y 7 columnas contiene las puntuaciones de 10 participantes de un concurso de baile (números reales con 1 decimal).
La puntuación final de cada participante se obtiene como la suma de sus puntuaciones excluyendo la mayor y la menor 
(con lo cual se suman 5 puntuaciones para cada participante). Diseñar un programa que indique quien es el ganador del concurso.*/




#include "iostream"
#include "conio.h"
using namespace std;
int main()
{
  float mat1[11][8];
  float may, men, ganador, s;
  int k, posGanador,i,j;
  posGanador=0;


//Notas de participantes
  cout<<"\n \t \t \t Encuentra al participant ganador del concurso \n \n";
  for (i=1;i<=5;i++)
 for (i=1;i<=10;i++)
 {
   for (j=1;j<=7;j++)
   {
mat1[i][j]=((i+j*20)/j)*0.7;
   }
 }


 //Imprimiendo la matriz
 cout<<"\n \t  La matriz es: \n ";
 for (i=1;i<=10;i++)
 {
  cout<<"\n \t \t";
   for (j=1;j<=7;j++)
   {
  cout<<mat1[i][j];
       cout<<"\t";
   }
 }
   cout<<"\nBuscando ganador\n.....................................................................................";
   cout<<"\n Eliminando la mayor y menor nota queda: \n";


 //Elimina mayor y menor


 ganador=0;
 for (i=1;i<=10;i++)
 {
  cout<<"\n";
   //Busca mayor y menor de la fila
   may = mat1[i][1];
   men = mat1[i][1];


   for (k=2;k<=7;k++)
   {
       //si es mayor del mayor
       if(may < mat1[i][k])
       {
       may = mat1[i][k];
       }
       //si es menor del menor
  if(men>mat1[i][k])
       {
       men=mat1[i][k];
       }
   }
    s=0;
   for (j=1;j<=7;j++)
   {
      if (mat1[i][j] == may || mat1[i][j] == men)
      {}
      else
{
s +=  mat1[i][j];
cout<< mat1[i][j];
cout<<"\t";
}
      if( j==7 )
      {
       if(ganador < s)
{
posGanador=i;
ganador=s;
}
    }
   }
 }
 cout<<"\n El gandor es el  participante  "<<posGanador;
 cout<<"\n Con puntos =  "<<ganador;
 getch();
  }

10. Cuadrado Mágico


/* Un cuadrado mágico 3 x 3 es una matriz 3 x 3 formada por números del 1 al 9 donde la suma de sus filas, sus columnas y sus diagonales son idénticas. Crear un programa que permita introducir un cuadrado por teclado y determine si este cuadrado es mágico o no. El programa deberá comprobar que los números introducidos son correctos, es decir, están entre el 1 y el 9.*/




#include "iostream"
#include "conio.h"
using namespace std;
int main()
{
  int mat[4][4];
  int n,i,j,aux,suma,cont;
 cout<<" \n \n \t \t \t \tCuadrado Magico \n \n";
  cout<<"\t \t Valores de 1 al 9 ( los numeros no se deben repitir)\n \n\n";
      cout<<"\n \t \t \t \tINGRESE LA MATRIZ \n\n";
   


  for (i=1;i<=3;i++)
  {
   for (j=1;j<=3;j++)
   {
      do
      { cout<<" \t \t \t \tValor "<<"("<<i;
cout<<" "<<j<<") ";
cin>>aux;
       }
       while(aux<1 || aux>9) ;
mat[i][j]=aux;
        
   }
  }
 // Imprime la  matriz
for (i=1;i<=3;i++)
 {
  cout<<"\n \t \t \t \t";
   for (j=1;j<=3;j++)
   {


       cout<<mat[i][j];
       cout<<"\t";
   }
   }
 cont=0; aux=0;
      //sumando filas
      for (i=1;i<=3;i++)
{ suma=0;
  for (j=1;j<=3;j++)
  {
   suma+=mat[i][j];
  }
  if(i==1)
  { aux=suma;
  }
  if(aux==suma)
   {
     cont++;
   }
}


//Suma las columnas


for (i=1;i<=3;i++)
{ suma=0;
  for (j=1;j<=3;j++)
  {
   suma+=mat[j][i];
  }
 if(aux==suma)
   {
     cont++;
   }
}


//Suma las diagonales


 suma=0;
   suma+=mat[1][1];
   suma+=mat[2][2];
   suma+=mat[3][3];
  if(aux==suma)
   { cont++;
   }
 suma=0;
   suma+=mat[1][3];
   suma+=mat[2][2];
   suma+=mat[3][1];


  if(aux==suma)
   {
     cont++;
   }
 if (cont==8)
 {
  cout<<"\n\n \t \t \t \t Es un cuadro magico";
 }
 else
 { cout<<"\n \n\t \t \t \t No es un cuadro magico";
 }
 getch();
  }

martes, 26 de junio de 2012

Ejercicios


Bienvenido a  nuestro blog. 
En él encontrarás ejercicios de vectores y matrices fáciles de interpretar y comprender. 
Los mismos que te ayudarán en el diseño de nuevos programas, en dichos ejercicios se detalla el procedimiento de cada bloque que te servirá para identificar de mejor forma cada parte del programa.




  • Ejercicio 1