Clase 4 (Entradas de Matrices)


Compilador repl.it



Codigo


#include <iostream>
#include<cstdlib>
#include<stdio.h>
#include <time.h>
#include <stdlib.h>

using namespace std;
int mat[20][20];
int c,p,k,s,i,j,dim;
//int matriz 14 es prueba
#define n 4
//#define MATRIX 2// LA ENTRADA QUE QUIERES


#define OPCIONES 11



int magico6[100]={0,13,839,1931,2879,61,199,1039,1091,479,797,1663,853,1693,1889,467,599,283,991,2083,281,677,809,43,2029,31,1721,887,389,2293,601,1063,101,1481,449,1579,1249};

/*
7 , 5009, 13, 2879, 4073, 853, 1493, 53,
4463, 71, 2971, 2311, 1759, 163, 103, 2539,
229, 3823, 239, 2749, 3137, 1013, 2141, 1049,
937, 1283, 1237, 1291, 2213, 3491, 1619, 2309,
1669, 571, 2887, 1523, 1051, 1289, 4111, 1279,
2137, 991, 2143, 521, 641, 3851, 233, 3863,
149, 2543, 157, 3089, 1433, 2293, 4649, 67,
4789, 89, 4733, 17, 73, 1427, 31, 3221
*/
//int magico8[100]={0,7 , 5009, 13, 2879, 4073, 853, 1493, 53,4463, 71, 2971, 2311, 1759, 163, 103, 2539,229, 3823, 239, 2749, 3137, 1013, 2141, 1049,937, 1283, 1237, 1291, 2213, 3491, 1619, 2309, 1669, 571, 2887, 1523, 1051, 1289, 4111, 1279, 2137, 991, 2143, 521, 641, 3851, 233, 3863,149, 2543, 157, 3089, 1433, 2293, 4649, 67,4789, 89, 4733, 17, 73, 1427, 31, 3221};

int magico8[100]={0,1 , 2, 3, 4, 5, 6, 7, 8,9, 10, 11, 12, 13, 14, 15,
16,17, 18, 19, 20, 21, 22, 23, 24,25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38,39, 40, 41, 42, 43, 44, 45,
46, 47, 48,49, 50, 51, 52, 53, 54, 55,
56,57, 58,59, 60,61, 62, 63, 64};


int magico4[100]={0,1 , 2, 3, 4, 5, 6, 7, 8,9, 10, 11, 12, 13, 14, 15,
16};


int magico5a[100]={0,691,607,211, 1181, 1489,787, 1039, 271, 1321, 761,1831, 1741, 17, 349, 241 ,269 ,751,1801,1051,307,601,41,1879,277,1381};
int magico5[100]={0,691 ,607, 211, 1181, 1471,787, 1021, 271, 1321, 761,1831, 1741, 17, 331, 241,251, 751, 1801, 1051,307,601,41,1861,277,1381};

int prueba[100]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36};




//int magico4[100]={0,43,89,5,167,179,41,53,31,71,73,137,23,11,101,109,83,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int magico4a[100]={0,3,107,5,131,109,311,7,331,193,11,83,41,103,53,71,89,151,199,113,61,97,167,31,367,13,173,59,17,37,73,101,127,179,139,47};
int magico4b[100]={0,13,109,107,41,101,47,43,79,53,83,97,37,103,31,23,113,0,0,0,0,0,0,367,13,173,59,17,37,73,101,127,179,139,47};
int magico4c[100]={0,7,487,101,287,461,41,307,67,311,191,337,37,97,151,71,131,491,0,0,0,0,0,0,0,0};

int magico3[100]={0,1093,163,673,223,643,1063,613,1123,193};
int magico3a[100]={0,181,7,139,67,109,151,79,211,37,0};
int magico3b[100]={0,1999,7,1021,31,1009,1987,997,2011,19};
int magico3c[100]={0,577,7,337,67,307,547,227,607,37};
int magico3d[100]={0,1999,7,1021,31,1009,1987,997,2011,19};
int magico3e[100]={0,2069,419,1289,479,1259,2039,1229,2099,449};
int magico3f[100]={0,491,41,311,101,281,461,251,521,71};



int origen[100]={0,0,107,5,131,109,311,7,331,193,11,83,41,103,53,71,89,151,199,113,61,97,167,31,367,13,173,59,17,37,73,101,127,179,139,47,0,0,0,0,0,0,0,0};


void dimencionar()
{
// cout<<"\n";
int dim,cu;
dim=n*n;
cu=0;
for (i=1; i<=dim; i++)
{
if (cu==(dim/n)){
cout<<"\n";
cu=0;
}
if (n==3)
{
origen[i]=magico3[i];
}
if (n==4)
{
origen[i]=magico4[i];
}
if (n==5)
{
origen[i]=magico5[i];
}
if (n==6)
{
origen[i]=magico6[i];
//origen[i]=prueba[i];
}
if (n==8)
{
origen[i]=magico8[i];
//origen[i]=prueba[i];
}
cout<<"\t"<<origen[i];
cu=cu+1;
}
//cout<<"\n";
}

void original()
{


int dim,cu;
dim=n*n;
cu=0;
//cout<<"\n";
for (i=0; i<dim; i++)
{
if (cu==(dim/n)){
//cout<<"\n";
cu=0;
}
//cout<<"\t"<<origen[i];
cu=cu+1;
}
//cout<<"\n";
}
void imprimir()
{
cout<<"\n";
string cad [30][30] = {{"?"}, {"?"}, {"?"}, {"?"},{"?"},{"?"},{"?"}, {"?"}, {"?"},{"?"},{"?"},{"?"},{"?"},{"?"}};
int primos[100],k;
k=0;
for (i=0; i<=n-1;i++)
{
for (j=0;j<=n-1;j++)
{
cout<<"\t"<<mat[i][j];
int divisor = 1, divisores = 0, num = 0;
k=k+1;
num=mat[i][j];
do{
if(num % divisor == 0){
divisores++;
}
divisor++;
}while(divisor <= num);
if(divisores == 2){
//cout<<"*";
primos[k]=num;
}else{
cout<<"";
}
}
cout<<"\n";
}
//Calcula si es matriz magica
int sc;
cout<<"_______________________________________________________________Solucion:\n";
sc=0;
j=0;
cout<<"Columna:"<<j+1;
for (i=0; i<n; i++)
{
sc=sc+mat[i][j];
cout<<"\t"<<mat[i][j];
}
cout<<" Suma es:"<<sc;
int sf;
cout<<"\n";
i=0;
sf=0;
cout<<"Fila:"<<i+1<<"\t";
for (j=0; j<n; j++)
{
sf=sf+mat[i][j];
cout<<"\t"<<mat[0][j];
}
cout<<" Suma es: "<<sf;
int sd1,sd2;
sd1=0;
sd2=0;
//cout<<"\nDiagonal 1";
cout<<"\nDiagonal 1: "<<"\t"<<mat[0][0]<<"\t"<<mat[1][1]<<"\t"<<mat[2][2]<<"\t"<<mat[3][3]<<"\t"<<mat[4][4]<<"\t"<<mat[5][5];
for (i=0;i<=n;i++)
{
for(j=i;j<=i;j++)
sd1=sd1+mat[i][j];
}
cout<<" Suma es de:"<<sd1;
//cout<<"\nDiagonal 2";
cout<<"\nDiagonal 2:"<<"\t"<<mat[0][5]<<"\t"<<mat[1][4]<<"\t"<<mat[2][3]<<"\t"<<mat[3][2]<<"\t"<<mat[4][1]<<"\t"<<mat[5][0];
for (j=n;j>=0;j--)
{
for(i=j;i==j;i--)
sd2=sd2+mat[i][j];
//cout<<"\t"<<mat[i][j];
}
cout<<" Suma es de:"<<sd2;
if (sc==sd2)
{
if (sd1==sc)
cout<<"\n\t\t\t ES UNA MATRIX MAGICA DE PRIMOS";
}
else{cout<<"\n\t\t Matrix de Numeros Primos";}

}

void entrada_1( ){ cout<<"\t\t\tPRIMO MAGICA Entrada N° 1 ";
cout<<"\n";
c=0;
s=0;
for (i=0; i<=n-1; i++)
{for (j=0; j<=n-1; j++){s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}

void entrada_2(){cout<<"\n\t\t ENTRADA N° (2) ";
cout<<"\n";
c=0;
s=0;
for (i=n-1; i>=0; i--)
{if (c==n){}
for (j=0; j<=n-1; j++)
{
s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}
void entrada_3(){ cout<<"\n\t\t ENTRADA N° (3) ";
cout<<"\n";
c=0;
s=0;
for (i=n-1; i>=0; i--){if (c==n){}
for (j=n-1; j>=0; j--){s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}
void entrada_4(){cout<<"\n\t\t ENTRADA N° (4) ";
cout<<"\n";
c=0;
s=-n;
for (j=n; j>=0; j--){if (c==n){
for (k=0; k<=n-1; k++)
{s=s+1;
mat[k][j]=origen[s];
c=c+1;}
c=c-n;}
if (c==0)
{for (i=0; i<=n-1; i++)
{s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}}

void entrada_5(){cout<<"\nENTRADA N° (5) ";
cout<<"\n";
c=0;
s=0;
for (j=0; j<=n; j++)
{if (c==n){}
for (i=n-1; i>=0; i--){s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}

void entrada_6(){cout<<"\n\t\t ENTRADA N° (6) ";
cout<<"\n";
c=0;
s=0;
for (i=0; i<=n-1; i++){if (c==n){}
for (j=n-1; j>=0; j--)
{ s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}
void entrada_7(){ cout<<"\n\t\t ENTRADA N° (7) ";
//cout<<"\n";
c=0;
s=0;
for (j=n-1; j>=0; j--)
{
for (i=n-1; i>=0; i--)
{
s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}


void entrada_8(){cout<<"ENTRADA N° (8) ";
cout<<"\n";
c=0;
s=0;
for (j=0; j<=n-1; j++){if (c==n)
{for (k=0; k<=n-1; k++)
{s=s+1;
mat[k][j]=origen[s];
c=c+1;}
c=c-n;}
if (c==0){for (i=0; i<=n-1; i++){s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}}


void entrada_10()
{
cout<<"ENTRADA N° 10 ";
cout<<"\n";
//n=9;
c=0;
s=0;
dim=(n*n)-1;
i=0;
//cout<<"\nn="<<n;
for (k=0; k<=n; k++)
{
if (c==0)
{
for (j=0; j<=(n-1); j++)
{
s=s+1;
mat[i][j]=origen[s];
//cout<<"\t"<<mat[i][j];
c=c+1;
}
i=i+1;
}


if (c==(n))
{
//cout<<"\n";
//i=i+1;
for (j=n-1; j>=0;j--)
{
s=s+1;
mat[i][j]=origen[s];
//cout<<"\t"<<mat[i][j];
c=c-1;
}
//cout<<"\n";
i=i+1;
}
}
}

void entrada_11()
{

//Imprimir();
cout<<"ENTRADA N° (11) ";
cout<<"\n";

c=0;
s=0;


for (j=0; j<=n-1; j++)
{
//cout<<"\n"<<c;
if (c==n)
{
// k=k+1;
//k=i;
//cout<<"c="<<c<<"n"<<n<<"i"<<i<<"="<<mat[0][1];
for (k=n-1; k>=0; k--)
{
s=s+1;
mat[k][j]=origen[s];
c=c+1;
//cout<<"\t"<<mat[i][j];

}
c=c-n;

}
if (c==0)
{
for (i=0; i<=n-1; i++)
{
s=s+1;
mat[i][j]=origen[s];
c=c+1;
//cout<<"\t"<<mat[i][j];

}

}
}


}

void entrada_12( )
{
cout<<"ENTRADA N° 12 ";
cout<<"\n";

c=n;
s=0;
dim=(n*n)-1;
i=0;
k=0;
//cout<<"\nn="<<n;
for (k=0; k<=n; k++)
{
//cout<<"\nc="<<c;
if (c==n)
{
for (j=n-1; j>=0; j--)
{
s=s+1;
mat[i][j]=origen[s];
//cout<<"\t"<<mat[i][j];
c=c-1;
}
i=i+1;
}

if (c==0)
{
for (j=0; j<=n-1;j++)
{
s=s+1;
mat[i][j]=origen[s];
//cout<<"\t"<<mat[i][j];
c=c+1;
}
//cout<<"\n";
i=i+1;
}
}
}




void entrada_13( )
{
cout<<"ENTRADA N° 13 ";
cout<<"\n";


c=n;
s=-n;
dim=(n*n)-1;
i=0;
k=0;
j=n;
//cout<<"\nn="<<n;
for (k=0; k<=n; k++)
{
//cout<<"\nc="<<c;
if (c==n)
{
for (i=n-1; i>=0; i--)
{
s=s+1;
mat[i][j]=origen[s];
//cout<<"\t"<<mat[i][j];
c=c-1;
}
j=j-1;
}

if (c==0)
{
for (i=0; i<=n-1;i++)
{
s=s+1;
mat[i][j]=origen[s];
//cout<<"\t"<<mat[i][j];
c=c+1;
}
//cout<<"\n";
j=j-1;
}
}
}



void entrada_14(){cout<<"ENTRADA N° (14) ";
cout<<"\n";
c=0;
s=0;
for (j=n-1; j>=0; j--)
{if (c==n)
{for (k=n-1; k>=0; k--)
{
s=s+1;
mat[k][j]=origen[s];
c=c+1;
}
c=c-n;
}
if (c==0){for (i=0; i<=n-1; i++)
{
s=s+1;
mat[i][j]=origen[s];
c=c+1;}}}}


void entrada_15( ){cout<<"ENTRADA N° 15 ";
cout<<"\n";
c=n;
s=0;
dim=(n*n)-1;
i=0;
k=0;
for (k=0; k<=n; k++){if (c==n)
{for (i=n-1; i>=0; i--)
{s=s+1;
mat[i][j]=origen[s];
c=c-1;}
j=j+1;}
if (c==0)
{
for (i=0; i<=n-1;i++)
{ s=s+1;
mat[i][j]=origen[s];
c=c+1;
}
j=j+1;}}}

int main(void)
{
int X,F,nestor,C,Y,im;
int MAT[20][20];

/*
if (MATRIX==10){entrada_10();} if (OPCION==11){entrada_11();}if (OPCION==12){entrada_12();}
if (OPCION==13){entrada_13();}if (OPCION==14){entrada_14();}if (OPCION==15){entrada_15();}
*/
int OP,MATRIX;

do
{
cout<<"\n________________________________________________________\n";
cout<<" PRIMOS MAGICOS | COMPUESTOS MAGICOS...(N<=17)\n";
cout<<"1. Entrada 1 5.Entrada 5 | 11.Entrada 1 15. Entrada 5 \n";
cout<<"2. Entrada 2 6.Entrada 6 | 12.Entrada 2 16. Entrada 6 \n";
cout<<"3. Entrada 3 7.Entrada 7 | 13.Entrada 3 17. Entrada 7\n";
cout<<"4. Entrada 4 8.Entrada 8 | 14.Entrasa 4 18. Entrada 8\n";
cout<<" | \n";
  cout<<"\tDigite una Opcion ";

  cin>>OP;
  cout<<"\n________________________________________________________\n";
  //cin>>op;
   //OP=MATRIX;
cout<<"\nOPCION-->"<<OP;
cout<<"\n\t\t DIMENCION N= "<<n<<"\n";

//OP=0;
switch(OP)
{

case 1:{
original();
dimencionar();
if (OP==1){entrada_1();}
imprimir();
break;}
case 2:{
original();
dimencionar();
if (OP==2){entrada_2();}
imprimir();
break;}
case 3:{
original();
dimencionar();
if (OP==3){entrada_3();}
imprimir();
break;}
case 4:{
original();
dimencionar();
if (OP==4){entrada_4();}
imprimir();
break;}
case 5:{
original();
dimencionar();
if (OP==5){entrada_5();}
imprimir();
break;}
case 6:{
original();
dimencionar();
if (OP==6){entrada_6();}
imprimir();
break;}
case 7:{
original();
dimencionar();
if (OP==7){entrada_7();}
imprimir();
break;}
case 8:{
original();
dimencionar();
if (OP==8){entrada_8();}
imprimir();
break;}
case 9:{
/*original();
dimencionar();
if (MATRIX==9){entrada_();}
imprimir();
OP=0;*/
break;}
case 10:{
original();
dimencionar();
if (OP==10){entrada_10();}
imprimir();
break;}

}
} while(OP!=0);

}





















//SUMA DE UNA MATRIZ

#include <iostream>
#include<time.h>
using namespace std;
#include <cstdlib>
#include <stdio.h>
# define  n 2
int s,f,c,nume,sum;
int matris[10][10],fil[10],col[10]; // matris= matriz fil= filas col=columnas

int main()
{
 srand(time(0));
s=0;

;

for(f=0; f<n; f++)
 {
 for(c=0; c<n; c++)
  {
   nume= (1 + rand() % 3);
   matris[f][c]=nume;
 }
}
cout<<endl;
cout<<endl;
for(f=0; f<n; f++)
{
for(c=0; c<n; c++)
{
cout<<" "<<matris[f][c];
}

cout<<endl;
cout<<endl;
}

for(c=0; c<n; c++)
{
 for(f=0; f<n; f++)
  {
   sum=matris[f][c]+sum; //suma de las columnas
  }
  col[c]=sum;
  sum=0;
  }
  cout<<endl;
  sum=0;

//imprimir la suma de las columnas
cout<<"\n"<<col[c];

for(c=0; c<n; c++)
{
cout<<"\t"<<col[c];

}


for(f=0; f<n; f++)
{
 for(c=0; c<n; c++)
  {
   sum=matris[f][c]+sum; //suma de las filas
   }
   fil[f]=sum;
   sum=0;
}

//imprimir la suma de las filas
cout<<"\nSuma de los elementos por Filas "<<endl;
for(f=0; f<n; f++)
{
cout<<" "<<fil[f];
}
cout<<endl<<endl;

}

//FACTORIAL


#include <iostream>

using namespace std;
int factorial(int N)
{
int i;
long int fac=1;
  for(i=1;i<=N; i++)
   {

     fac=fac*i;

   }
return(fac);
}

int main()
{
   //hallar la suma de 1!+ 2!+ 3!+4!+5!............N!

   int n,i,s,verde;
   s=0;
 
   cout << "Cuantos numeros" << endl;
   n=5;
   for (i=1; i<=n;i++)
   {
       verde=factorial(i);
        //verde=1;
       s=s+verde;
   }
   cout<<"La suma de los factoriales es ....:"<<s;
   //return 0;
 
}

No hay comentarios:

Publicar un comentario