Escolar Documentos
Profissional Documentos
Cultura Documentos
Problema 1:
(30 Pts.) Cree un programa en C que realice lo siguiente:
1) Una función para leer por teclado los elementos de una matriz cuadrada de enteros de tamaño nxn con
valores entre 5 al 30.
2) Una función para mostrar una matriz de nxn con su respectivo formato.
3) Una función que calcule transpuesta de una matriz de nxn.
4) Una función que determine si dos matrices son iguales.
5) En la función main:
Leer el valor de n validando que esté en el rango [1,6]
Generar las matrices A y B
Mostrar las matrices A y B
Calcular y mostrar Bt
Determinar si se cumple que A es simétrica, es decir, que A=At
#include <iostream.h>
#include <conio.h> main()
{ int n,A[6][6],B[6][6],At[6][6],Bt[6][6];
void leer(int X[6][6],int n) //" Leer el valor de n validando que esté en el rango [1,6]
{ do{
int i,j; cout<<"Ingrese dimension de la matriz cuadrada:";
for(i=1;i<=n;i++) cin>>n;
for(j=1;j<=n;j++) }while((n<0)||(n>6));
do{ cin>>X[i][j];
}while((X[i][j]<5)||(X[i][j]>30)); //" Generar las matrices A y B
} cout<<"\nIngrese datos de la matriz A:\n";
leer(A,n);
void mostrar(int X[6][6],int n) cout<<"\nIngrese datos de la matriz B:\n";
{ leer(B,n);
int i,j;
for(i=1;i<=n;i++) //" Mostrar las matrices A y B
{for(j=1;j<=n;j++) cout<<"\nLa matriz A es:\n";
cout<<"\t"<<X[i][j]; mostrar(A,n);
cout<<"\n"; cout<<"\nLa matriz B es:\n";
} mostrar(B,n);
}
//" Calcular y mostrar Bt
void transpuesta(int X[6][6],int n,int Xt[6][6]) transpuesta(B,n,Bt);
{ cout<<"\nLa transpuesta de B es:\n";
int i,j; mostrar(Bt,n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) //" Determinar si se cumple que A es simétrica
Xt[j][i]=X[i][j]; transpuesta(A,n,At);
} if(igual(A,At,n)==0) cout<<"\nA es simetrica\n";
else cout<<"\nA NO es simetrica\n";
int igual(int X[6][6],int Y[6][6],int n) getche();
{ }
int i,j,res=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(Y[i][j]!=X[i][j]) res=1;
return(res);
}
Problema 2:
(30 Pts.) Implemente un programa en C++ que realice lo siguiente:
1) Una función que lea y/o genere los datos de los arreglos para almacenar los nombres de los trabajadores
de una empresa minera y la cantidad de días trabajados de cada uno en los meses de enero, febrero y
marzo considerando:
• Enero con la cantidad de días en el rango de 14 a 31
• Febrero con la cantidad de días en el rango de 7 a 27
• Marzo con la cantidad de días en el rango de 10 a 30
• Totales es la suma de los días obtenidos en los 3 meses
//funcion 4
void orden(int n,char T[95][10])
{
int i,j;
char aux[10];
for(i=1;i<=n;i++)
for(j=1;j<=n-i;j++)
if (strcmp(T[j],T[j+1])<0) {strcpy(aux,T[j]);
strcpy(T[j],T[j+1]);
strcpy(T[j+1],aux);}
cout<<"\n Los trabajadores son:\n";
for(i=1;i<=n;i++)
cout<<"\n"<<T[i];
}
main()
{ int n,enero[95],febrero[95],marzo[95],total[95];
char nombre[95][10];
//Indique el nombre de los trabajadores con más días trabajados en enero y febrero
cout<<"\nMayor dias trabajados en Enero: "<<nombre[mayor(n,enero)];
cout<<"\nMayor dias trabajados en Febrero: "<<nombre[mayor(n,febrero)];
getche();
}