/* 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();
}
miércoles, 27 de junio de 2012
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
Suscribirse a:
Entradas (Atom)