Anda di halaman 1dari 13

ALFREDO DANIEL MAGARZO JAVIER - 2007113554

MATRICES
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <conio.h>
using namespace std;

#define fil 6
#define col 6

void mostrar(float matriz[fil][col],int tam)
{
int i,j;
for(i=0;i<tam;++i)
{
for(j=0;j<tam;++j)
{
cout<<matriz[i][j]<<"\t";
}
cout<<endl;
}
cout<<endl;
}


float determinante(float matriz[fil][col],int tam)
{
float x, aux[fil][col];
int i,j,colum,k;
x=matriz[0][0];
if(tam==2)
{
x=matriz[0][0]*matriz[1][1]-matriz[0][1]*matriz[1][0];
}
if(tam>2)
{
x=0;
for(i=0;i<tam;i++)
{
j=0;
for(colum=0;colum<tam;colum++)
{
if(colum!=i)
{
for(k=0;k<tam-1;k++)
{
aux[k][j]=matriz[k+1][colum];
}
j++;
}
}
if(i%2==0)
{
x=x+matriz[0][i]*determinante(aux,tam-1);
}
else
{
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
x=x-matriz[0][i]*determinante(aux,tam-1);
}
}
}
return x;
}

void Transponer(float matriz[fil][col],int tam)
{
int i,j;
float aux;
for(i=0;i<tam;++i)
{
for(j=0;j<tam;++j)
{
if(i>j)
{
aux = matriz[i][j];
matriz[i][j] = matriz[j][i];
matriz[j][i] = aux;
}
}
}
}

void Adjunta(float matriz[fil][col],float adj[fil][col],int tam)
{
float aux[fil][col];
int c,f,i,j,cc,ff;

for(f=0;f<tam;f++)
{
for(c=0;c<tam;c++)
{
i=0;
for(ff=0;ff<tam;ff++)
{
j=0;
for(cc=0;cc<tam;cc++)
{
if(cc!= c && f != ff)
{
aux[i][j]=matriz[ff][cc];
j++;
}
}
if(ff != f)
{
i++;
}
}
adj[f][c] = powf(-1,f+c)*determinante(aux,tam-1);
}
}
}

void MultN(float matriz[fil][col],int tam,float n)
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
{
for(int i=0;i<tam;++i)
{
for(int j=0;j<tam;++j)
{
matriz[i][j] = matriz[i][j] * n;
}
}
}

void sumar(float m1[fil][col],float m2[fil][col],int tam,float
matrizC[fil][col])
{
for(int i=0;i<tam;++i)
{
for(int j=0;j<tam;++j)
{
matrizC[i][j]=m1[i][j]+m2[i][j];
}
}
}
void Multiplica(float m1[fil][col],float m2[fil][col],int tam,float
matrizC[fil][col])
{
for(int i=0;i<tam;++i)
{
for(int j=0;j<tam;++j)
{
matrizC[i][j]=0;
for(int k = 0;k<tam;++k)
{
matrizC[i][j] = matrizC[i][j] + m1[i][k] *
m2[k][j];
}
}
}
}

void cargar(float matriz[fil][col],int tam)
{
cout<<"Ingresar Elementos"<<endl<<endl;
for(int i=0;i<tam;i++)
{
for(int j=0;j<tam;j++)
{
cout<<"["<<i+1<<"]["<<j+1<<"]:";
cin>>matriz[i][j];
}
}
}

void copiar(float m1[fil][col],float m2[fil][col],int tam)
{
for(int i=0;i<tam;i++)
{
for(int j=0;j<tam;j++)
{
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
m1[i][j] = m2[i][j];
}
}
}


void invertir(float matriz[fil][col],float inversa[fil][col], int tam)
{
Adjunta(matriz,inversa,tam);
Transponer(inversa,tam);
MultN(inversa,tam,1/determinante(matriz,tam));
}

bool verifesmagica(float matriz[fil][col], int tam)
{
int i,j,s=0,f,c;
bool mag = true;
for(i=0;i<tam;i++)
{
s = s + matriz[i][1];
}
for(i=0;i<tam;i++)
{
f = 0;
c = 0;
for(j=0;j<tam;j++)
{
f = f + matriz[i][j];
c = c + matriz[j][i];
}
if(c != s || f != s)
{
mag = false;
}
}
if(mag)
{
cout<<"es magica, suma: "<<s<<endl;
}
else
{
cout<<"no es magica"<<endl;
}
return mag;
}

void cargarcircular(float matriz[fil][col],int n)
{
int c=0,i,j=0,num;
for(int i=n-1; i > 0; i--, j++)
{
for(num=j; num < i; num++)
{
matriz[j][num] = c;
c++;
}
for(num=j; num < i; num++)
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
{
matriz[num][n-j-1] = c;
c++;
}
for(num=i; num > j; num--)
{
matriz[n-j-1][num] = c;
c++;
}
for(num=i; num > j; num--)
{
matriz[num][j] = c;
c++;
}
}
if(n%2==1)
{
matriz[n/2][n/2]=c;
}
}

void cargardiagonales(float matriz[fil][col],int n)
{
int i,j;
int c = 1;
for(i=0;i<n;i++)
{
matriz[i][i] = c;
c++;
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
matriz[j+i+1][j]=c;
c++;
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
matriz[j][i+j+1]=c;
c++;
}
}
}

int main()
{
float matriz[fil][col],matrizaux[fil][col],matrizC[fil][col];
int tam,opcion=0;
cout<<"tamanho de matriz:";
cin>>tam;
cargar(matriz,tam);
do
{
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
cout<<"1 nueva Matriz"<<endl;
cout<<"2 mostrar"<<endl;
cout<<"3 traspuesta"<<endl;
cout<<"4 inversa"<<endl;
cout<<"5 sumar"<<endl;
cout<<"6 multiplicar"<<endl;
cout<<"7 verificar si es magica"<<endl;
cout<<"8 cargar circular"<<endl;
cout<<"8 cargar por diagonales"<<endl;
cout<<"0 salir"<<endl;
cout<<"opcion:";
cin>>opcion;

if(opcion==1)
{
cargar(matriz,tam);
}
if(opcion==2)
{
mostrar(matriz,tam);
}
if(opcion==3)
{
Transponer(matriz,tam);
mostrar(matriz,tam);
}
if(opcion==4)
{
invertir(matriz,matrizaux,tam);
copiar(matriz,matrizaux,tam);
mostrar(matriz,tam);
}
if(opcion==5)
{
cargar(matrizaux,tam);
sumar(matriz,matrizaux,tam,matrizC);
mostrar(matrizC,tam);
copiar(matriz,matrizC,tam);
}
if(opcion==6)
{
cargar(matrizaux,tam);
Multiplica(matriz,matrizaux,tam,matrizC);
mostrar(matrizC,tam);
copiar(matriz,matrizC,tam);
}
if(opcion==7)
{
verifesmagica(matriz,tam);
}
if(opcion==8)
{
cargarcircular(matriz,tam);
mostrar(matriz,tam);
}
if(opcion==9)
{
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
cargardiagonales(matriz,tam);
mostrar(matriz,tam);
}

}while(opcion!=0);

return 0;
}






















ALFREDO DANIEL MAGARZO JAVIER - 2007113554
SECUENCIAS SERIES - SUCESIONES
#include "stdafx.h"

#include <math.h>
#include <iostream>
#include <conio.h>
using namespace std;

#define fil 6
#define col 6

void mostrar(int matriz[fil][col],int tam)
{
int i,j;
for(i=0;i<tam;++i)
{
for(j=0;j<tam;++j)
{
cout<<matriz[i][j]<<"\t";
}
cout<<endl;
}
cout<<endl;
}

void serie1(int matriz[fil][col], int tam)
{
int i,j,c=3;
for(i=0;i<tam;i++)
{
for(j=0;j<tam;j++)
{
matriz[i][j]=c;
c = c+3;
}
}
}

int invertir(int num)
{
int n=0;
while(num>0)
{
n = n*10 + num%10;
num = num/10;
}
return n;
}

void serie2(int matriz[fil][col], int tam)
{
int i,j,c=1;
for(i=0;i<tam;i++)
{
for(j=0;j<tam;j++)
{
matriz[i][j]=invertir(c*c);
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
c++;
}
}
}
int sumardig(int num)
{
int n=0;
while(num>0)
{
n = n + num%10;
num = num/10;
}
return n;
}

void serie3(int matriz[fil][col], int tam)
{
int i,j,c=1;
for(i=0;i<tam;i++)
{
for(j=0;j<tam;j++)
{
matriz[i][j]=c;
c = c + sumardig(c);
}
}
}


void serie4(int matriz[fil][col], int tam)
{
int i,j,c=1;
for(i=0;i<tam;i++)
{
for(j=0;j<tam;j++)
{
matriz[i][j]=sumardig(powf(2,c));
c++;
}
}
}

int main()
{
int matriz[fil][col];
int tam,opcion=0;
cout<<"tamanho de matriz:";
cin>>tam;
do
{
cout<<"1) (n*3) 3, 6, 9, 12, 15, 18, 21,..."<<endl;
cout<<"2) (n^2 invertido) 1, 4, 9, 61, 52, 63, 94,..."<<endl;
cout<<"3) (a-1 + sumadigitos(a-1)) 1, 2, 4, 8, 16, 23,
28,..."<<endl;
cout<<"4) (n^2 sumando digitos) 1, 2, 4, 8, 7, 5, 10,
11,..."<<endl;
cout<<"0 salir"<<endl;
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
cout<<"opcion:";
cin>>opcion;

if(opcion==1)
{
serie1(matriz,tam);
mostrar(matriz,tam);
}
if(opcion==2)
{
serie2(matriz,tam);
mostrar(matriz,tam);
}
if(opcion==3)
{
serie3(matriz,tam);
mostrar(matriz,tam);
}
if(opcion==4)
{
serie4(matriz,tam);
mostrar(matriz,tam);
}
}while(opcion!=0);

return 0;
}














ALFREDO DANIEL MAGARZO JAVIER - 2007113554
ARRAY DE ARRAYS
// AdA.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

struct cadena
{
char cad[20];
};

struct vector
{
cadena vec[20];
};

struct matriz
{
int mat[20][20];
};
void cargarvecdevec(vector vecdevec[20],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"pos "<<i<<","<<j<<":";
gets(vecdevec[i].vec[j].cad);
}
}
}
void mostrarMDV(vector vecdevec[20][20],int n)
{
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
cout<<"pos
"<<i<<","<<j<<","<<k<<":"<<vecdevec[i][j].vec[k].cad;
}
}
}
}
void vecdevec_a_matdevec(vector vecdevec[20],vector matdevec[20][20],int
n)
{
int i,j,k;
for(i=0;i<n;i++)
{
ALFREDO DANIEL MAGARZO JAVIER - 2007113554
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{

strcpy(matdevec[i][j].vec[k].cad,vecdevec[i].vec[j].cad);
}
}
}
}

void cargarmatdemat(matriz matdemat[20][20],int n)
{
int i,j,k,m;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
for(m=0;m<n;m++)
{
cout<<"mat "<<i<<","<<j<<" pos
"<<k<<","<<m<<":";
cin>>matdemat[i][j].mat[k][m];
}
}
}
}
}

void invertirparte(matriz matdemat[20][20],int n)
{
int i,j,k,m,aux;
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if((i+j)%2==0)
{
for(k=0;k<n;k++)
{
for(m=0;m<n;m++)
{
aux = matdemat[i][j].mat[k][m];
matdemat[i][j].mat[k][m] = matdemat[n-
i-1][n-1-j].mat[n-1-k][n-1-m];
matdemat[n-i-1][n-1-j].mat[n-1-k][n-1-
m] = aux;
}
}
}
}
}
}


ALFREDO DANIEL MAGARZO JAVIER - 2007113554
void mostrarMDM(matriz matdemat[20][20],int n)
{
int i,j,k,m;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
for(m=0;m<n;m++)
{
cout<<"mat "<<i<<","<<j<<" pos
"<<k<<","<<m<<":"<<matdemat[i][j].mat[k][m]<<" ";
}
cout<<" ";
}
if(j==n-1)
{
cout<<endl;
}
}
}
}

int main()
{
vector vecdevec[20],matdevec[20][20];
matriz matdemat[20][20];
int tam,opcion=0;
cout<<"tamanho de matriz:";
cin>>tam;
cin.ignore();
do
{
cout<<"1 vector de vector a matriz de vector"<<endl;
cout<<"2 invertir parte de matriz de matriz"<<endl;
cout<<"0 salir"<<endl;
cout<<"opcion:";
cin>>opcion;

if(opcion==1)
{
cargarvecdevec(vecdevec,tam);
vecdevec_a_matdevec(vecdevec,matdevec,tam);
mostrarMDV(matdevec,tam);
}
if(opcion==2)
{
cargarmatdemat(matdemat,tam);
mostrarMDM(matdemat,tam);
invertirparte(matdemat,tam);
mostrarMDM(matdemat,tam);
}
}while(opcion!=0);

return 0;
}

Anda mungkin juga menyukai