Arrays Bidimensionales

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

UNIVERSIDAD TÉCNICA DEL NORTE

FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS


PROGRAMACIÓN

Nombre: Juan Miño Curso: 2do CIAUT- “A” Fecha:07/02/2019


Tema: Arrays bidimensionales.
1. Programa que imprime las posiciones de la matriz 3X3, el usuario ingresa los
números respectivos, se opera la multiplicación de diagonales y la suma de las
filas.

#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <cmath>
#include <stdlib.h>
#include <string.h> //directiva para manejar cadenas
using namespace std;
//¨mi primera vez con matrices"
int main ()
{
int mat[3][3];
int i,j;
int p1d,p2d;
int s1f=0,s2f=0,s3f=0;

cout<<"sea las posiciones de la matriz las siguientes"<<endl;


for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<i+1<<":"<<j+1<<" ";
cout<<endl<<endl;
}
cout<<"Ingrese valor para la matriz: "<<endl;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
cout<<"Ingrese valores para la posicion:"<<i+1<<":"<<j+1<<" ";
cin>>mat[i][j];
}
// Imprimir valores de la matriz
cout<<endl<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<mat[i][j]<<" ";
cout<<endl;

}
// multiplicacion de las diagonales de la matriz
p1d= mat[0][0]*mat[1][1]*mat[2][2];
p2d= mat[2][0]*mat[1][1]*mat[0][2];
cout<<endl<<"la multiplicacion de la primera diagonal es:"<<p1d<<endl;
cout<<endl<<"la multiplicacion de la segunda diagonal es:"<<p2d<<endl;

// suma d elas filas de la matriz


i=0;
for(j=0;j<3;j++)
s1f=s1f+mat[i][j];

i=1;
for(j=0;j<3;j++)
s2f=s2f+mat[i][j];

i=2;
for(j=0;j<3;j++)
s3f=s3f+mat[i][j];

cout<<endl<<mat[0][0]<<"+"<<mat[0][1]<<"+"<<mat[0][2]<<" "<<s1f<<endl;
cout<<endl<<mat[1][0]<<"+"<<mat[1][1]<<"+"<<mat[1][2]<<" "<<s2f<<endl;
cout<<endl<<mat[2][0]<<"+"<<mat[2][1]<<"+"<<mat[2][2]<<" "<<s3f<<endl;

return 0;
}

Resultado:
2. Multiplicación de filas, columnas y diagonales de una matriz 3X3 mediante
bucles.

#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <cmath>
#include <stdlib.h>
#include <string.h> //directiva para manejar cadenas
using namespace std;
//¨multiplicación de las filas, columnas y diagonales"
int main ()
{
int mat[3][3];
int i,j;
int p1d=1,p2d=1,p1f=1,p2f=1,p3f=1,p1c=1,p2c=1,p3c=1;

for(i=0;i<3;i++)
for(j=0;j<3;j++)
mat[i][j]=1;
cout<<"Ingrese valores a la matriz"<<endl;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
cout<<"Posicion"<<i+1<<" "<<j+1<<" : ";
cin>>mat[i][j];
}
// multiplicacion de filas
i=0;
for(j=0;j<3;j++)
{
i=0;
if(i==0)
{
p1f=p1f*mat[i][j];
i=i+1;
}
if(i==1)
{
p2f=p2f*mat[i][j];
i=i+1;
}
if(i==2)
{
p3f=p3f*mat[i][j];
i=i+1;
}
}

// multiplicación de columnas
j=0;
for(i=0;i<3;i++)
{
j=0;
if(j==0)
{
p1c=p1c*mat[i][j];
j=j+1;

}
if(j==1)
{
p2c=p2c*mat[i][j];
j=j+1;
}
if(j==2)
{
p3c=p3c*mat[i][j];
j=j+1;
}
}
// multiplicación de diagonal 1
for(i=0;i<3;i++)
p1d=p1d*mat[i][j];

// multiplicación de diagonal 2
j=0;
for(i=2;i>=0;i--)
{
p2d=p2d*mat[i][j];
j=j+1;
}
// imprimir matriz
cout<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<mat[i][j]<<" ";
cout<<endl;

}
// Impresión final de resultados

cout<<endl<<"la multiplicacion de la primera diagonal es:"<<mat[0][0]<<"x"<<mat[1]


[1]<<"x"<<mat[2][2]<<"="<<p1d<<endl;
cout<<endl<<"la multiplicacion de la segunda diagonal es:"<<mat[2][0]<<"x"<<mat[1]
[1]<<"x"<<mat[0][2]<<"="<<p2d<<endl;
cout<<endl<<"la multiplicacion de la primera fila es: "<<mat[0][0]<<"x"<<mat[0]
[1]<<"x"<<mat[0][2]<<"="<<p1f<<endl;
cout<<endl<<"la multiplicacion de la segunda fila es: "<<mat[1][0]<<"x"<<mat[1]
[1]<<"x"<<mat[1][2]<<"="<<p2f<<endl;
cout<<endl<<"la multiplicacion de la tercera fila es: "<<mat[2][0]<<"x"<<mat[2]
[1]<<"x"<<mat[2][2]<<"="<<p3f<<endl;
cout<<endl<<"la multiplicacion de la segunda columna es: "<<mat[0][0]<<"x"<<mat[1]
[0]<<"x"<<mat[2][0]<<"="<<p1c<<endl;
cout<<endl<<"la multiplicacion de la primera columna es: "<<mat[0][1]<<"x"<<mat[1]
[1]<<"x"<<mat[2][1]<<"="<<p2c<<endl;
cout<<endl<<"la multiplicacion de la tercera columna es: "<<mat[0][2]<<"x"<<mat[1]
[2]<<"x"<<mat[2][2]<<"="<<p3c<<endl;

return 0;
}
Resultado:
3. Programa en donde se ingresa números que no se repitan a una matriz de 3X3,
si se repite aparece una advertencia de que el número ya fue ingresado.
Mediante funciones se busca un número ingresado por teclado en la matriz
definida se indica en pantalla si el número existe o no y por último se ordena la
matriz en orden ascendente usando el método de la burbuja.

#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <cmath>
#include <stdlib.h>
#include <string.h> //directiva para manejar cadenas
using namespace std;

//definicion de funcion buscar en matriz


void ordenar();
int buscarm(int nu);
int aux;

//definición de matriz global


int mat[3][3];
int main ()
{
int i,j,num,num1,nbu=0,hon=0;

// llamar a funcion de busqueda con numero ingresado


for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
cout<<"Ingrese el numero a la matriz: "<<i+1<<":"<<j+1<<" ";
cin>>num;
hon=buscarm(num);
if(hon==0)
mat[i][j]=num;
else
{
cout<<endl<<"El numero ya existe en la
matriz !!"<<endl;
j=j-1;
}
}
//imprimir matriz
cout<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<mat[i][j]<<" ";
cout<<endl;
}
cout<<endl<<"Ingrese el numero a buscar en matriz"<<endl;
cin>>num1;
nbu=buscarm(num1);
if(nbu==1)
{
cout<<endl<<"El numero SI existe en la matriz"<<endl;
}
else
{
cout<<endl<<"El numero NO existe en la matriz"<<endl;
}

ordenar();

return 0;
}

int buscarm(int nu)


{
int p,q,n=0;

p=0;
q=0;
for(p=0;p<3;p++)
for(q=0;q<3;q++)
{
if(mat[p][q]==nu)
n=1;
}

return n;
}
void ordenar()
{
int i,j,aux,a,b,c,d;
for(a=0;a<3;a++)
for(b=0;b<3;b++)
for(c=0;c<3;c++)
for(d=0;d<3;d++)
if(mat[a][b]<mat[c][d])
{
aux=mat[a][b];
mat[a][b]=mat[c][d];
mat[c][d]=aux;
}
cout<<endl<<"La matriz ordenada ascendentemente"<<endl<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<mat[i][j]<<" ";
cout<<endl<<endl;
}
}
Resultado:
4. Programa que permite ingresar datos en 2 matrices 3X3 para luego sumarlas
por posiciones iguales y por fila-columna y por último indica cuántas veces se
repite un número en el matriz resultado.

#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <cmath>
#include <stdlib.h>
#include <string.h> //directiva para manejar cadenas
using namespace std;
int contarepe(int numero);
int m[3][3],n[3][3],r1[3][3],r2[3][3],repe[3][3];
int main ()
{
int i,j,cr=1,var=100;
//ingreso de valores matriz 1
cout<<"Ingrese valores a matriz 1: "<<endl;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>m[i][j];
//Ingreso valores matriz 2
cout<<endl<<"Ingrese valores a matriz 2: "<<endl;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>n[i][j];

//imprimir matrices
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<m[i][j]<<" ";
cout<<endl;
}
cout<<"+"<<endl;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<n[i][j]<<" ";
cout<<endl;
}

// sumar las 2 matrices


for (i=0;i<3;i++)
for(j=0;j<3;j++)
r1[i][j]=m[i][j]+n[i][j];

// Imprimir resultado de la suma de matrices por posiciones iguales


cout<<"="<<endl;
cout<<endl<<"Resultado de la suma de matrices por posiciones iguales"<<endl;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<r1[i][j]<<" ";
cout<<endl;
}
cout<<endl;
// suma de !era fila de matriz 1 + 1era columna de matriz 2
for (i=0;i<3;i++)
for(j=0;j<3;j++)
r2[i][j]=m[i][j]+n[j][i];
cout<<endl<<"Resultado de la 1era fila de matriz 1 + 1era columna de matriz 2"<<endl;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<r2[i][j]<<" ";
cout<<endl;
}
cout<<endl;
// ver cuántas veces se repite un número en la matriz resultado
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
cr=contarepe(r1[i][j]);
if(cr>1)
{
cout<<"el # : "<<r1[i][j]<<"se repite "<<cr<<"veces"<<endl;
repe[i][j]=cr;
}
}
// imprimir la matriz que guarda cuántos números se han repetido
cout<<"Matriz que guarda cuántos números se han repetido"<<endl;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<repe[i][j]<<" ";
cout<<endl;
}
return 0;
}
int contarepe(int numero)
{
int p,q,cont=0;
for(p=0;p<3;p++)
for(q=0;q<3;q++)
if(r1[p][q]==numero)
cont=cont+1;
return cont;
}

Resultado:
5. Programa que permite ingresar números enteros a una matriz 4x4 y define
cuál de estos son primos, pares y múltiplos. Esto mediante tres funciones del
tipo entero.

#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <cmath>
#include <stdlib.h>
#include <string.h> //directiva para manejar cadenas
using namespace std;
int primo (int pr);
int pares (int par);
int multiplos(int mu);

//definicón de matriz global


int mat[4][4];

int main ()
{

int i,j,pri,par,mul;

cout<<"Ingrese valor para la matriz: "<<endl;


for(i=0;i<4;i++)
for(j=0;j<4;j++)
cin>>mat[i][j];
cout<<endl<<endl;
//llamar a función para verificar si son primos.
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
pri=primo(mat[i][j]);
if(pri==2)
cout<<endl<<"Un # primo es : "<<mat[i][j];

}
cout<<endl<<endl;
// imprimir matriz

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
cout<<mat[i][j]<<" ";
cout<<endl;

}
// llamar a función verificar pares
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
par=0;
par=pares(mat[i][j]);
if(par==1)
cout<<endl<<"Un # par es : "<<mat[i][j];
}
// llamar a función verificar multiplos de 5
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
mul=0;
mul=multiplos(mat[i][j]);
if(mul==1)
cout<<endl<<"Un numero multiplo de 5 es: "<<mat[i][j];
}

return 0;
}

int primo(int pr)


{
int cont=0;
for(int j=1;j<=pr;j++)
if(pr%j==0)
cont=cont+1;
if(cont==2)
return cont;
}
int pares(int pa)
{
int ba=0;
ba=0;
if(pa%2==0)
ba=1;
return ba;
}
int multiplos(int mu)
{
int m5=0;
m5=0;
if(mu%5==0)
m5=1;
return m5;
}

Resultado:

También podría gustarte