Laboratorio Domiciliario #4
Laboratorio Domiciliario #4
Laboratorio Domiciliario #4
FACULTAD DE INGENIERÍA
ESCUELA DE FORMACIÓN PROFESIONAL DE SISTEMAS Y COMPUTACIÓN
ARRAYS (MATRICES)
#include<iostream>
/*PROBLEMA 1. Crear una tabla bidimensional de tamaño 5x5 y rellenarla de la siguiente forma:
la posición T[n,m] debe contener n+m. Después se debe mostrar su contenido.
*/
int main(){
int num[5][5];
return 0;
}
PROBLEMA 2. Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no, es decir si
se obtiene la misma tabla al cambiar las filas por columnas.
#include<iostream>
/*PROBLEMA 2. Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no,
es decir si se obtiene la misma tabla al cambiar las filas por columnas.
*/
int main() {
int num[4][4];
bool simetrico;
cout<<"\nComprobando Simetria\n\n";
simetrico = true;
int control = 4;
int i=0;
while (i < control && simetrico == true) {
int j=0;
while (j < control && simetrico == true) {
if(num[i][j] != num[j][i]){
simetrico = false;
}
j++;
}
i++;
}
if(simetrico){
cout<<"\n\nLa tabla es Simetrica.";
}
else{
cout<<"\n\nLa tabla no es Simetrica.";
}
}
PROBLEMA 3. Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.
#include<iostream>
/*PROBLEMA 3. Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.
*/
int main() {
cout<<"\n\nMatriz B: \n\n";
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<"B["<<i+1<<"]["<<j+1<<"]: = ";
cin>>b[i][j];
}
}
// hacemos la suma
for (i=0;i<3;i++){
for (j=0;j<3;j++){
#include<iostream>
int main() {
int num[3][3];
cout<<"Ingrese los números \n\n";
for (int i = 0; i < 3; i++) {//Dimensión Uno.
for (int j = 0; j < 3; j++) {//Dimensión Dos.
cout<<"["<<i+1<<"]"<<"["<<j+1<<"]"<<" = ";
cin>>num[i][j];
}
}
cout<<"\n\nImprimiendo Tabla Original \n\n";
for (int i = 0; i < 3; i++){
cout<<endl;
for (int j = 0; j < 3; j++) {
cout<<num[i][j]<<" ";
}
}
//Transponiendo Tabla
int aux;
for (int i = 1; i < 3; i++) {
for (int j = 0; j < 3; j++) {
aux = num[i][j];
num[i][j] = num[j][i];
num[j][i] = aux;
}
}
cout<<"\n\nMostrando Tabla transpuesta\n\n";
for (int i = 0; i < 3; i++) {
cout<<endl;
for (int j = 0; j < 3; j++) {
cout<<num[i][j]<<" ";
}
}
return 0;
}
PROBLEMA 5. Crear una tabla de tamaño 7x7 y rellenarla de forma que los elementos de la
diagonal principal sean 1 y el resto 0.
#include<iostream>
using namespace std;
/*PROBLEMA 5. Crear una tabla de tamaño 7x7 y rellenarla de forma que los elementos de la diagonal principal sean
1 y el resto 0.
*/
int main(){
int matriz[7][7],i,j;
for (i=0;i<7;i++){
for (j=0;j<7;j++){
if(i==j){
matriz[i][j]=1;
}
else{
matriz[i][j]=0;
}
}
}
cout<<"\n\nImprimiendo matriz \n\n";
for (i = 0; i < 7; i++){
cout<<endl;
for (j = 0; j < 7; j++) {
cout<<matriz[i][j]<<" ";
}
}
return 0;
}
PROBLEMA 6. Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de
los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.
#include<iostream>
int matriz[8][8],sumacolumnas[8],sumafilas[8],comb[16],i,j,suma,suma1;
return 0;
}
PROBLEMA 7. Crear y cargar una tabla de tamaño 10x10, mostrar la suma de cada fila y de
cada columna.
#include<iostream>
/*PROBLEMA 7. Crear y cargar una tabla de tamaño 10x10, mostrar la suma de cada fila y de cada
columna.
*/
int main(){
int matriz[10][10],sumacolumnas[10],sumafilas[10],i,j,suma,suma1;
return 0;
}
PROBLEMA 8. Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los
números
almacenados son ceros, cuantos son positivos y cuantos son negativo
#include<iostream>
/*PROBLEMA 8. Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números
almacenados son ceros, cuantos son positivos y cuantos son negativo
*/
int main(){
int matriz[5][6],i,j,mas=0,menos=0,cero=0;
if(matriz[i][j]==0){
cero++;
}
else{
if(matriz[i][j]>0){
mas++;
}
else{
menos++;
}
}
}
}
}
cout<<"\n";
}
cout<<"\n\nLa cantidad de numeros positivos en la matriz es : "<<mas;
cout<<"\n\nLa cantidad de numeros negativos en la matriz es : "<<menos;
cout<<"\n\nLa cantidad de ceros en la matriz es : "<<cero;
return 0;
}
PROBLEMA 9. Utilizando dos tablas de tamaño 5x9 y 9x5, cargar la primera y trasponerla en
la segunda.
#include<iostream>
/*PROBLEMA 9. Utilizando dos tablas de tamaño 5x9 y 9x5, cargar la primera y trasponerla en la segunda.
*/
int main(){
int matriz1[5][9],matriz2[9][5];
for(int i=0;i<5;i++){
for(int j=0;j<9;j++){
cout<<"Matriz["<<i+1<<"]["<<j+1<<"] : ";
cin>>matriz1[i][j];
}
}
// Transponiendo la matriz
for(int i=0;i<9;i++){
for(int j=0;j<5;j++){
matriz2[i][j]= matriz1[j][i];
}
}
return 0;
}
PROBLEMA 10. Crear una matriz “marco” de tamaño 8x6: todos sus elementos deben
ser 0 salvo los de los bordes que deben ser 1. Mostrarla.
#include<iostream>
/*PROBLEMA 10. Crear una matriz "marco" de tamaño 8x6: todos sus elementos deben ser 0 salvo los de
los bordes que deben ser 1. Mostrarla.
*/
int main(){
int matriz[8][6],i,j;
for(i=0;i<8;i++){
for(j=0;j<6;j++){
}
else{
matriz[i][j]=0;
}
}
}
for(i=0;i<8;i++){
for(j=0;j<6;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
#include<iostream>
/*Se pretende realizar un programa para gestionar la lista de participaciones en una competición de salto de longitud.
El número de plazas disponible es de 10. Sus datos se irán introduciendo en el mismo orden que vayan inscribiéndose
los atletas.
Diseñar el programa que muestre las siguientes opciones:
a. Inscribir un participante.
b. Mostrar listado de datos.
c. Mostrar listado por marcas.
d. Finalizar el programa.
Si se selecciona 1, se introducirán los datos de uno de los participantes: Nombre, mejor marca del 2016,
mejor marca del 2015 y mejor marca del 2014.
Si se elige la opción 2, se debe mostrar un listado por número de dorsal.
La opción 3 mostrará un listado ordenado por la marca del 2016, de mayor a menor.
Tras procesar cada opción, se debe mostrar de nuevo el menú inicial, hasta que se seleccione la opción 4, que
terminará el programa.
*/
int main(){
int TAM=10,D=0,M0=1,M1=2,M2=3;
int opc,numc,dorsal,i,aux;
bool d_rep,inter;
int part[TAM][4];
numc=0;
opc=0;
do{
cout<<"\n\n--------------------------------";
cout<<"\n1. Inscribir participantes";
cout<<"\n2. Mostrar listado por datos";
cout<<"\n3. Mostrar listado por marcas";
cout<<"\n4. Salir";
cout<<"\n--------------------------------";
cout<<"\n\nPor favor, introduzca una opcion : ...>>";
cin>>opc;
cout<<endl<<endl;
switch(opc){
case 1: if(numc==20){
cout<<"Listado completo";
}
else{
do{
cout<<"Introduzca dorsal: ";
cin>>dorsal;
d_rep=false;
i=0;
if(part[i][D]==dorsal){
cout<<" Dorsal registrado ";
cout<<"Por favor intente de nuevo";
d_rep=true;
}
i++;
}
}while(d_rep==true);
if(d_rep==false){
part[numc][D]=dorsal;
cout<<"Introduzca marca del 2000: ";
cin>>part[numc][M0];
cout<<"Introduzca marca del 2001: ";
cin>>part[numc][M1];
cout<<"Introduzca marca del 2002: ";
cin>>part[numc][M2];
cout<<endl;
numc++;
}
}
break;
inter=true;
while(inter==true){
inter=false;
aux=part[j][k];
part[j][k]=part[j+1][k];
part[j+1][k]=aux;
}
inter=true;
}
}
}
case 3:
inter=true;
while(inter==true){
inter=false;
if(part[j][M2]>part[j+1][M2]){
aux=part[j][k];
part[j][k]=part[j+1][k];
part[j+1][k]=aux;
}
inter=true;
}
}
}
cout<<part[j][k]<<" ";
}
}
break;
}
}while(opc!=4);
return 0;
}
PROBLEMA 12. El dueño de una cadena de tiendas de artículos deportivos desea controlar
sus ventas
por medio de una computadora. Los datos de entrada son:
a) El número de la tienda (1 a 50)
b) Un número que indica el deporte del articulo (1 a 20)
c) El costo del artículo.
Hacer un pseudocódigo que escriba al final del día lo siguiente
1. Las ventas totales en el día para cada tienda
2. Las ventas totales para cada uno de los deportes.
3. Las ventas totales de todas las tiendas.
#include<iostream>
/*PROBLEMA 12. El dueño de una cadena de tiendas de artículos deportivos desea controlar sus ventas
por medio de una computadora. Los datos de entrada son:
*/
int main(){
int matriz[50][20],a=0,stotal=0,sdeporte=0,t,deporte;
int costo,salir=0,h,i,j;
while(salir!=1){
cout<<"Digite el numero de las tiendas (1 a 50): ";
cin>>t;
while(t>50 || t<0){
while(deporte>20 || deporte<0){
matriz[t-1][deporte-1]=matriz[t-1][deporte-1]+costo;
h=0;
for(i=0;i<20;i++){
sdeporte=0;
cout<<"\n\n";
for(j=0;j<50;j++){
sdeporte=sdeporte+matriz[j][i];
}
stotal=stotal+sdeporte;
h=h+1;
return 0;
}
PROBLEMA 13. Dado el vector T de tamaño n. Si el tamaño es para invertir los elementos de la
mitad de los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]
#include<stdio.h>
#include<conio.h>
/*PROBLEMA 13. Dado el vector T de tamaño n. Si el tamaño es para invertir los elementos de la mitad de los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]
*/
fin1 = d;
for (int j = (d / 2) + 1 ; j <= (d / 2) + 1 ; j++)
{
aux1 = V [j];
V [j] = V [fin1];
V [fin1] = aux1;
fin1--;
}
}
int main ()
{
int V[20];
int d;
printf ("Inserte dimen. del vector: "); scanf("%d",&d);
llenar (V, d);
printf ("\nVECTOR ORIGINAL: \n");
mostrar (V, d);
printf ("\n\nVECTOR LUEGO DE LA INVERSION: \n");
invierte (V, d);
mostrar (V, d);
}
#include<iostream>
#include<time.h>
#include<stdlib.h>
*/
int main(){
int matriz[100][100], columnas, filas,i,j,sumacolumnas[100],sumafilas[100],suma,suma1;
srand(time(NULL));
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
matriz[i][j]=10+rand()%(100-10);
}
}
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
if(filas==columnas){
cout<<endl<<"DIAGONAL PRIMARIA\n"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(i==j){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}
cout<<endl<<"DIAGONAL SECUNDARIA\n"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(j+1==filas-i){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}
}
else{
cout<<endl<<"NO EXISTE DIAGONALES POR QUE LA MATRIZ NO ES CUADRADA : \n"<<endl;
}
return 0;
}
PROBLEMA 15. Generar la matriz:
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
#include<iostream>
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
.
*/
int main(){
int matriz[3][4],i,j,cont=1;
return 0;
}
#include<iostream>
[01][02][03][04]
[05][06][07][00]
[08][09][00][00]
[10][00][00][00]
.
*/
int main(){
int matriz[4][4],i,j,cont=1,cont2=4;
if(j>=cont2){
matriz[i][j]=0;
}
else{
matriz[i][j]=cont;
cont++;
}
}
cont2--;
}
cout<<" Imprimiendo Matriz \n\n";
for (int i = 0;i<4; i++) {
if(matriz[i][j] <=9){
cout<<"0";
}
cout<<matriz[i][j]<<" ";
}
cout<<"\n";
}
return 0;
}
PROBLEMA 17. Dadas dos matrices A y B intercambiar los mínimos de A con los máximos de B.
#include <iostream>
/*PROBLEMA 17. Dadas dos matrices A y B intercambiar los mínimos de A con los máximos de B.
*/
void intercambiar (int A[20][20], int fa, int ca, int B[20][20], int fb, int cb)
{
int min_a = menor (A, fa, ca);
int max_b = maximo (B, fb, cb);
//para cambiar los minimos de A con los maximos de B
for (int i = 1 ; i <= fa ; i++)
{
for (int j = 1 ; j <= ca ; j++)
{
if (A[i][j] == min_a)
A[i][j]=max_b;
}
}
//para intercambiar los maximos de con los minimos de A
for (int i = 1 ; i <= fb ; i++)
{
for (int j = 1 ; j <= cb ; j++)
{
if (B[i][j] == max_b)
B[i][j]=min_a;
}
}
}
int main ()
{
//lectura de matrices
printf ("\nINSERTANDO DATOS EN MATRIS A: \n");
llenar (A, fa, ca);
printf ("\nINSERTANDO DATOS EN MATRIS B: \n");
llenar (B, fb, cb);
printf ("\nMATRICES ORIGINALMENTE INSERTADAS: ");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
printf ("\n");
//intercambiando elementos
intercambiar (A, fa, ca, B, fb, cb);
printf ("\nMATRICES DESPUES DEL INTERCAMBIO:");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
PROBLEMA 18. Considere un arreglo para 10 elementos donde se guardará los nombres de
ciudades y otro arreglo para guardar las tarifas de transporte hacia dichas ciudades. Diseñe una
aplicación que permita realizar lo siguiente:
Inicializar el arreglo de nombres con 10 nombres de ciudad.
Generar tarifas aleatorias entre 15 y 51 guardándolas e el arreglo de tarifas.
Dependiendo del monto de una persona disponga para viajar a alguna ciudad
mostrar las ciudades a las cuales podría viajar con dicho monto.
Determina cuales la ciudad cuya tarifa es la más alta.
#include<iostream>
#include <string>
#include<time.h>
#include<stdlib.h>
/*PROBLEMA 18. Considere un arreglo para 10 elementos donde se guardará los nombres de ciudades y otro arreglo
para guardar las tarifas de transporte hacia dichas ciudades. Diseñe una aplicación que permita realizar lo siguiente:
" Dependiendo del monto de una persona disponga para viajar a alguna ciudad mostrar las
ciudades a las cuales podría viajar con dicho monto.
*/
int main(){
string Ciudades[10];
int Tarifas[10],Monto,TarifaAlta,num,i,j,pos;
string CiudadTarifaAlta;
srand(time(NULL));
Ciudades[0]="Pasco";
Ciudades[1]="Lima";
Ciudades[2]="Huanuco";
Ciudades[3]="Ayacucho";
Ciudades[4]="Cuzco";
Ciudades[5]="Puno";
Ciudades[6]="Ica";
Ciudades[7]="Huancavelica";
Ciudades[8]="Arequipa";
Ciudades[9]="Tumbes";
for(i=0;i<=9;i++){
num=15+rand()%(52-15);
Tarifas[i]=num;
}
for(i=0;i<=9;i++){
cout<<"TARIFA : ["<<Tarifas[i]<<"] ";
cout<<"CIUDAD : ["<< Ciudades[i]<<"] \n";
}
cout<<"\n\nIngrese Monto : ";
cin>>Monto;
for(i=0;i<=9;i++){
if(Tarifas[i]<=Monto){
for(i=0;i<=9;i++){
if(TarifaAlta<Tarifas[i]){
TarifaAlta=Tarifas[i];
pos=i;
}
}
return 0;
}
PROBLEMA 19. Considere una matriz de n x m. Diseñe una aplicación que permita ingresar el
tamaño de la matriz y realice los siguientes procesos:
#include<iostream>
#include<time.h>
#include<stdlib.h>
/*PROBLEMA 19. Considere una matriz de n x m. Diseñe una aplicación que permita ingresar el tamaño de la matriz
y realice los siguientes procesos:
*/
int main(){
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
matriz[i][j]=10+rand()%(100-10);
}
}
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
if(filas==columnas){
cout<<endl<<"DIAGONAL PRIMARIA\n"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(i==j){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}
cout<<endl<<"DIAGONAL SECUNDARIA\n"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(j+1==filas-i){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}
}
else{
cout<<endl<<"NO EXISTE DIAGONALES POR QUE LA MATRIZ NO ES CUADRADA : \n"<<endl;
}
return 0;
}
PROBLEMA 20. Realice un programa pida datos al usuario los datos de una matriz de 2x2 y muestra
su traspuesta (el resultado de intercambiar filas por columnas).
#include<iostream>
/*PROBLEMA 20. Realice un programa pida datos al usuario los datos de una matriz de 2x2 y
muestra su traspuesta (el resultado de intercambiar filas por columnas).
*/
int main(){
int matriz[2][2], columnas, filas,i,j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
}
cout<<endl<<endl;
}
cout<<endl<<"\tMATRIZ TRANSPUESTA\n\n"<<endl;
for(i = 0;i < 2;i++){
cout<<"\t";
for(j = 0;j < 2;j++){
cout<<matriz[j][i]<<" ";;
}
cout<<endl<<endl;
}
return 0;
}
PROBLEMA 21. Un programa que pida al usuario los datos de una matriz de 6 x 6, y muestre su
determinante.
#include <iostream>
#include <cmath>
orden=6;
filas=6;
columnas=6;
}
}
cout << "\nEl determinante es: " << determinante(matriz, orden) << endl;
return 0;
}
cout<<endl<<"MATRIZ"<<endl;
for(int i=0;i<orden;i++){
cout<<"\t";
for(int j=0;j<orden;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
}
if (orden == 1) {
det = matriz[0][0];
} else {
for (int j = 0; j < orden; j++) {
det = det + matriz[0][j] * cofactor(matriz, orden, 0, j);
}
}
return det;
}
int x = 0;
int y = 0;
for (int i = 0; i < orden; i++) {
for (int j = 0; j < orden; j++) {
if (i != fila && j != columna) {
submatriz[x][y] = matriz[i][j];
y++;
if (y >= n) {
x++;
y = 0;
}
}
}
}
(PROBLEMA 22 Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y
muestre su matriz adjunta.
#include <iostream>
#include <cmath>
int main()
{
int matriz[3][3],filas,columnas,i,j,matrizsig[3][3],cont=0;
int submatriz[3][3];
int orden;
orden=3;
filas=3;
columnas=3;
}
}
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
if((cont+j)%2==0){
matrizsig[i][j]=1;
}
else{
matrizsig[i][j]=-1;
}
}
cont++;
}
cout << "\nEl determinante es: " << determinante(matriz, orden) << endl;
return 0;
}
cout<<endl<<"MATRIZ"<<endl;
for(int i=0;i<orden;i++){
cout<<"\t";
for(int j=0;j<orden;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
}
if (orden == 1) {
det = matriz[0][0];
} else {
for (int j = 0; j < orden; j++) {
det = det + matriz[0][j] * cofactor(matriz, orden, 0, j);
}
}
return det;
}
int x = 0;
int y = 0;
for (int i = 0; i < orden; i++) {
for (int j = 0; j < orden; j++) {
if (i != fila && j != columna) {
submatriz[x][y] = matriz[i][j];
y++;
if (y >= n) {
x++;
y = 0;
}
}
}
}
PROBLEMA 23. Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y
muestre su matriz inversa.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
typedef struct{
double **datos;
int fil;
int col;
}Matrix;
Matrix clone(Matrix M) {
Matrix N = inicializa(M.fil, M.col);
for (int i = 0; i < M.fil; i++) {
for (int j = 0; j < M.col; j++) {
N.datos[i][j] = M.datos[i][j];
}
}
return N;
}
Matrix gaussjordan(Matrix A) {
Matrix M = clone(A);
Matrix Inv = identidad(M.fil, M.col);
if (M.fil == M.col) {
for (int i = 0; i < M.fil; i++) {
if (M.datos[i][i] == 0) {
int r = 0;
while (r < M.col && (M.datos[i][r] == 0 || M.datos[r][i] == 0)) {
r++;
}
switchRows(M,i,r);
}
double c = 1.0 / M.datos[i][i];
multiplyRowConstant(M, i, c);
multiplyRowConstant(Inv, i, c);
for (int j = 0; j < M.fil; j++) {
if (i != j) {
c = -M.datos[j][i];
addRows(M, j, i, c);
addRows(Inv, j, i, c);
}
}
}
}else {
cout<<"Error La matriz no es cuadrada \n";
Inv.fil = -1;
Inv.col = -1;
free(Inv.datos);
}
return Inv;
}
void printMatrix(Matrix M) {
cout<<"\n\n";
for (int i = 0; i < M.fil; i++) {
for (int j = 0; j < M.col; j++) {
cout<<" "<<M.datos[i][j];
}
printf("\n");
}
}
int main() {
return 1;
}
PROBLEMA 24. Realice un programa que use una matriz de 3x4 para resolver un sistema de 3
ecuaciones con 3 incógnitas usando el método de Gauss
(hacer ceros por debajo de la diagonal principal para luego aplicar sustitución regresiva).
#include<iostream>
/*PROBLEMA 24. Realice un programa que use una matriz de 3x4 para resolver un sistema de 3 ecuaciones
con 3 incógnitas usando el método de Gauss
*/
int main(void)
{
int i,tam;
float mat[101][102];
datos(&tam,mat);
printf("\n\n\nEcuacion: \n\n");
esc_data(tam,mat);
solucion(tam,mat);
printf("\n\n\nSolucion:\n");
for(i=1;i<=tam;i++)
printf("\n X%d=%f\n",i,mat[i][tam+1]);
scanf("");
return(0);
}
for(i=1;i<=tam;i++)
{
res=0;m=i;
while(res==0)
{
if((mat[m][i]>0.0000001)||((mat[m][i]<-0.0000001)))
{
res=1;
}
else
m++;
}
col_pivote=mat[m][i];
for(j=1;j<=(tam+1);j++)
{
x=mat[m][j];
mat[m][j]=mat[i][j];
mat[i][j]=x/col_pivote;
}
for(k=i+1;k<=tam;k++)
{
x=mat[k][i];
for(j=i;j<=(tam+1);j++)
{
mat[k][j]=mat[k][j]-x*mat[i][j];
}
}
}
for(i=tam;i>=1;i--)
for(j=(i-1);j>=1;j--)
{
mat[j][tam+1]=mat[j][tam+1]-mat[j][i]*mat[i][tam+1];
mat[j][i]=0;
}
}
PROBLEMA 25. Programa que calcula la suma de los elementos de una matriz solo donde la
posición sea par, y me diga cuál de estos elementos es el mayor.
#include<iostream>
/*PROBLEMA 25. Programa que calcula la suma de los elementos de una matriz solo donde la
posición sea par, y me diga cuál de estos elementos es el mayor.
*/
int main(){
int filas,columnas,matriz[100][100],i,j,suma=0,mayor=0;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
mayor=matriz[i][j];
}
}
}
cout<<endl<<"MATRIZ"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
cout<<endl<<"SUMA Y MAYOR\n"<<endl;
return 0;
}
PROBLEMA 26. Programa que imprima si un número es par o impar de una matriz 3 * 3.
#include<iostream>
/*PROBLEMA 26. Programa que imprima si un número es par o impar de una matriz 3 * 3.
*/
int main(){
int filas,columnas,matriz[3][3],i,j;
filas =3;
columnas=3;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<endl<<"MATRIZ"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
cout<<endl<<"PARES"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(matriz[i][j]%2==0){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}
cout<<endl<<"IMPARES"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(matriz[i][j]%2!=0){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}
return 0;
}
PROBLEMA 27. Programa que halle la cantidad de números menores que 1000 y mayores que
1000 en una matriz 5*4.
#include<iostream>
/*PROBLEMA 27. Programa que halle la cantidad de números menores que 1000 y mayores que 1000 en una matriz
5*4.
*/
int main(){
int filas,columnas,matriz[5][4],i,j,mayor=0,menor=0;
filas =5;
columnas=4;
cout<<"\n\n";
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
if(matriz[i][j]>1000){
mayor++;
}
else{
menor++;
}
}
}
cout<<endl<<"MATRIZ"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
cout<<endl<<"MAYOR Y MENOR\n"<<endl;
return 0;
}
PROBLEMA 28. Desarrolle un programa que rellene una matriz 5 * 3. Luego, en otra matriz del
mismo tamaño, guarde los valores almacenados en la primera matriz elevando al cubo los
almacenados en columnas pares y elevando al cuadrado los almacenados en posiciones impares.
#include<iostream>
#include<math.h>
/*PROBLEMA 28. Desarrolle un programa que rellene una matriz 5 * 3. Luego, en otra matriz del mismo tamaño,
guarde los valores almacenados en la primera matriz elevando al cubo los almacenados en columnas pares y
elevando al cuadrado los almacenados en posiciones impares.
*/
int main(){
int matriz[5][3], matriz1[5][3],i,j,filas,columnas;
filas =5;
columnas=3;
cout<<"\n\n";
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
matriz1[i][j] = matriz[i][j];
}
}
cout<<endl<<"MATRIZ ORIGINAL\n\n"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if((j+1)%2==0){
cout<<pow(matriz1[i][j],3)<<" ";
}
else{
cout<<pow(matriz1[i][j],2)<<" ";
}
}
cout<<endl<<endl;
}
return 0;
}
PROBLEMA 29. Escriba un programa donde se lea una matriz 2*2 e imprima los elementos
ubicados en la primera columna.
#include<iostream>
/*PROBLEMA 29. Escriba un programa donde se lea una matriz 2*2 e imprima los elementos ubicados en la primera
columna.
*/
int main(){
int filas,columnas,matriz[2][2],i,j;
filas =2;
columnas = 2;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
if(j==0){
cout<<matriz[i][j]<<" ";
}
}
cout<<"\n";
}
return 0;
}
PROBLEMA 30. Queremos almacenar en una matriz las notas de informática de los alumnos de
secundaria de una escuela. Suponiendo que hay 4 grados distintos, 15 alumnos por grado, se pide:
#include<iostream>
/*PROBLEMA 30. Queremos almacenar en una matriz las notas de informática de los alumnos de secundaria de una
escuela.
Suponiendo que hay 4 grados distintos, 15 alumnos por grado, se pide:
*/
int main(){
int filas,columnas,matriz[4][15],i,j,mayor=0;
float suma=0,promedio[5];
filas =4;
columnas=15;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
if(mayor<matriz[i][j]){
mayor=matriz[i][j];
}
}
promedio[i]=suma/15;
suma=0;
cout<<"\n\n";
}
cout<<" Imprimiendo Tabla \n\n";
if(matriz[i][j]>10){
#include<iostream>
/*PROBLEMA 31. Escriba un programa en lenguaje C que solicite al usuario ingresar 12 números los cuales
corresponden a una matriz de 4x3. Se pide calcular la suma de:
*/
int main(){
int matr[4][3],suma_dp=0,suma_ds=0,suma_pu_f=0,suma_pu_c=0;
for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
printf("Ingrese numero [%i][%i]: ",i,j);
scanf("%i",&matr[i][j]);
}
}
for(int l=0;l<4;l++)
{
suma_dp+=matr[l][l];
suma_ds+=matr[l][3-l];
suma_pu_c+=matr[l][0];
suma_pu_c+=matr[l][2];
}
for(int l=0;l<3;l++)
{
suma_pu_f+=matr[0][l];
suma_pu_f+=matr[3][l];
cout<<endl<<"\tMATRIZ\n\n"<<endl;
for(int i=0;i<4;i++){
cout<<"\t";
for(int j=0;j<3;j++){
cout<<matr[i][j]<<" ";
}
cout<<endl<<endl;
}
return 0;
}
PROBLEMA 32. Crea un programa para determinar si una matriz de tamaño 2x2 es mágica.
#include<iostream>
/*PROBLEMA 32. Crea un programa para determinar si una matriz de tamaño 2x2 es mágica.
*/
int main(){
filas=2;
columnas=2;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<endl<<"MATRIZ \n\n"<<endl;
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
sumafila +=matriz[i][j];
sumacolumna +=matriz[j][i];
if(sumafila==sumacolumna){
cont++;
if(cont == 2){
cout<<"\n\nEs magico";
}
else{
sumafila=0;
sumacolumna=0;
}
}
else{
cout<<"\n\nno es magico";
}
}
return 0;
}
PROBLEMA 33. En tiendas FALABELLA desean crear un programa para conocer como han sido las
ventas de cada una de las últimas 4 semanas. Desarrolle un programa donde se ingresen en las
ventas de cada día en una matriz 4x7 y luego determine e imprima:
#include<iostream>
/*PROBLEMA 33. En tiendas FALABELLA desean crear un programa para conocer como han sido
las ventas de cada una de las últimas 4 semanas. Desarrolle un programa donde se ingresen en las ventas
de cada día en una matriz 4x7 y luego determine e imprima:
*/
int main(){
int filas,columnas,matriz[4][7],i,j,mayor=0;
float suma=0,promedio[5],suma1[5];
filas =4;
columnas=7;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
suma=suma+matriz[i][j];
if(mayor<matriz[i][j]){
mayor=matriz[i][j];
}
}
promedio[i]=suma/4;
suma1[i]=suma;
suma=0;
cout<<"\n\n";
}
cout<<" Imprimiendo Tabla \n\n";
DIAGRAMAS DE FLUJO
PROBLEMA 2. Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no, es decir si
se obtiene la misma tabla al cambiar las filas por columnas.
PROBLEMA 3. Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.
PROBLEMA 4. Crear y cargar una tabla de tamaño 3x3, trasponerla y mostrarla.
PROBLEMA 21. Un programa que pida al usuario los datos de una matriz de 6 x 6, y muestre su
determinante.
PROBLEMA 23. Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y
muestre su matriz inversa.
EXPOSICIÓN DE TRABAJO.
El trabajo debe ser expuesto por cada alumno de acuerdo a sorteo de los problemas
propuestos.
Entregables:
- Laboratorio domiciliario No. 1 en digital (.docx).
- Realizar los algoritmos (diagrama de flujo) de los problemas 2,3,4,21 y 23.
- Los programas deben incluir un Archivo de los problemas con un Menú Principal con
menús correspondientes a los temas de procesos correspondientes.
- Subir en su portafolio de classroom.
- Fecha de entrega y exposición: 10/02/2021
Nota
La fecha es improrrogable.
El Docente.