#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <ctime>
#include <string>
#define true 1
#define false 0
#include<ctype.h>
#include <string.h>
#include <math.h>
#include <time.h>
#define TAM 10
#define MAX 100
#define n1 8
void burbuja(int a[],int n2);
void burbujam(int a[],int n);
void mezc(int a[],int b[],int c[],int m,int n);
void insercion(int a[],int n);
void seleccion(int a[],int n);
void shell(int a[],int n);
int numelem();
void tipocap(int a[],int n2);
void captura(int a[],int n2);
void capinsercion(int a[],int n2);
void caleat(int a[],int n2);
void ver(int a[],int n2);
int mcap();
// ************************** ALGORITMOS DE ESPIRALES *************************
void Entrada1(int matriz1[][n1]);
void Entrada2(int matriz1[][n1]);
void Entrada3(int matriz1[][n1]);
void Entrada5(int matriz1[][n1]);
void Entrada6(int matriz1[][n1]);
void Entrada7(int matriz1[][n1]);
void Entrada8(int matriz1[][n1]);
void Espiral(int matriz1[][n1]);
void Entrada1(int matriz1[][n1]) {printf("\t\t\tESPIRAL Entrada N° 1\n ");int i,j;printf("\n");for(i = 0; i < n1; i++) {for(j = 0; j < n1; j++) {printf("%4d", matriz1[i][j]);}printf("\n");}}
void Entrada2(int matriz1[][n1]){printf("\t\t\tESPIRAL Entrada N° 2\n ");int i,j;printf("\n");for(i = n1-1; i>=0; i--) {for(j = 0; j < n1; j++) {printf("%4d", matriz1[i][j]);}printf("\n");}}
void Entrada3(int matriz1[][n1]){printf("\t\t\tESPIRAL Entrada N° 3\n ");int i,j;printf("\n");for(i = n1-1; i>=0; i--) {for(j=n1-1; j>=0; j--) {printf("%4d", matriz1[i][j]);}printf("\n");}}
void Entrada5(int matriz1[][n1]){printf("\t\t\tESPIRAL Entrada N° 5\n ");int i,j;printf("\n");for (j=0; j<=n1-1; j++){for (i=n1-1; i>=0; i--){printf("%4d", matriz1[i][j]);}printf("\n");}}
void Entrada6(int matriz1[][n1]){printf("\t\t\tESPIRAL Entrada N° 6\n ");int i,j;printf("\n");for(i=0; i<=n1-1; i++) {for(j=n1-1; j>=0; j--) {printf("%4d", matriz1[i][j]);}printf("\n");}}
void Entrada7(int matriz1[][n1]){printf("\t\t\tESPIRAL Entrada N° 7\n ");int i,j;printf("\n");for (j=n1-1; j>=0; j--){for (i=n1-1; i>=0; i--) {printf("%4d", matriz1[i][j]);}printf("\n");}}
void Entrada8(int matriz1[][n1]){printf("\t\t\tESPIRAL Entrada N° 8\n ");int i,j,c,s,k;printf("\n");c=0;s=0;for (j=0; j<=n1-1; j++){if (c==n1){for (k=0; k<=n1-1; k++){printf("%4d", matriz1[i][j]);}
printf("\n");c=c-n1;}if (c==0){for (i=0; i<=n1-1; i++){printf("%4d", matriz1[i][j]);}printf("\n");}}}
void Espiral(int matriz1[][n1]) {
int i, j;
int s = 1;
int tem = n1-1;
for(i = 1; i < n1; i++)
{
for(j = i-1; j < tem; j++) {matriz1[n1-(tem+1)][j] = s;s++;}
for( j = i-1; j < tem; j++) {matriz1[j][tem] = s;s++;}
for(j = tem; j >= (i-1); j--) {matriz1[tem][j] = s;s++;}tem--;
for(j = tem; j >= i; j--) {matriz1[j][n1-(tem+2)] = s;s++;}
}
}
//pascal ---------------------------- PASCAL ------------------
int menu();
int M[20][20];int x,y,d,n;
int mat[20][20],i,j,c=0;
void pascal4()
{
int M[20][20],x,y,d;
cout<<"Ingrese la dimension de la matriz:";
cin>>d;
for(x=1;x<=d;x++)
for (y=1;y<=d;y++)
M[x][y]=0;
for (x=1;x<=d;x++)
M[x][d]=M[x][d+1-x]=1;
for (x=3;x<=d;x++)
for (y=d-1;y>=d+2-x;y--)
M[x][y]=M[x-1][y+1]+M[x-1][y];
for (x=1;x<=d;x++) {
for (y=1;y<=d;y++) {
if(M[x][y]==0)
cout<<" ";
else
if (M[x][y]<=9)
cout<<" "<<M[x][y];
else
cout<<" "<<M[x][y];
}
cout<<"\n";
}
}
void pascal3()
{
int M[20][20],x,y,d;
cout<<"TRIANGULO DE PASCAL # 3";
cout<<"";
cout<<"\nIngrese la dimension de la matriz:";
cin>>d;
for(x=1;x<=d;x++)
for (y=1;y<=d;y++)
M[x][y]=0;
for (x=1;x<=d;x++)
M[1][x]=M[x][d+1-x]=1;
for (y=d-2;y>=1;y--)
for (x=2;x<=d-y;x++)
M[x][y]=M[x-1][y+1]+M[x][y+1];
for(x=1;x<=d;x++){
cout<<"\n\t";
for (y=1;y<=d;y++){
if(M[x][y]==0)
cout<<" ";
else
if (M[x][y]<=9)
cout<<" "<<M[x][y];
else
cout<<" "<<M[x][y];
}
}
}
void pascal2()
{
cout<<"TRIANGULO DE PASCAL 2";
int X,Y,calderon,d;
int A[20][20];
{
cout<<" \n";
cout<<"Digite dimension de la matriz:";
cin>>d;
cout<<" \n\n";
for(X=1;X<=d;X++)
{
A[1][X]=1;
A[X][X]=1;
}
for(Y=3;Y<=d;Y++)
{
for(X=2;X<=Y-1;X++)
A[X][Y]= A[X][Y-1] + A[X-1][Y-1];
}
for(X=1;X<=d;X++)
{
for(Y=1;Y<=X-1;Y++) cout<<" ";
for(Y=X;Y<=d;Y++)
{
cout<<" "<<A[X][Y];
}
cout<<" \n";
}
}
}
void pascal6(){
cout<<"TRIANGULO DE PASCAL #6......";
cout<<"\nDigite la dimencion...N=";
std::cin>>n;
d=n;
for(x=1;x<=d;x++) for(y=1;y<=d;y++) M[x][y]=0;
for(x=1;x<=d;x++) M[d][x]=M[x][x]=1;
for (y=d-2;y>=1;y--)for (x=d-1;x>=y+1;x--) M[x][y]=M[x+1][y+1]+M[x][y+1];
for(x=1;x<=d;x++){cout<<"\n";for(y=1;y<=d;y++) {if(M[x][y]==0) cout<<" ";
else
cout<<M[x][y]<<"\t";}}
}
void pascal5(){
int n;
cout<<"\nTRIANGULO DE PASCAL # 5.......=";
cout<<"\nDigite la dimencion...N=";
std::cin>>n;
//cinn;
for(x=1;x<=n;x++) for (y=1;y<=n;y++) mat[x][y]=0;
for (x=1;x<=n;x++)mat[1][x]=mat[x][n+1-x]=1;
for (y=n-2;y>=1;y--)for (x=2;x<=n-y;x++)
mat[x][y]=mat[x-1][y+1]+mat[x][y+1];
cout<<"\n\n";
for(i=1;i<=n;i++){for(j=1;j<=n;j++){if (mat[j][i]==0)j=n;
printf("%d\t",mat[j][i]);}
printf("\n");
}
}
void pascal1()
{
int x,y,dimen;
int mat[20][20],fil=2,col=2;
printf("Digite la dimencion:");
scanf("%d",&dimen);
printf("\n\n");
for(x=1;x<=dimen;x++)
{
mat[x][1]=1;
mat[x][x]=1;
}
for(x=3;x<=dimen;x++)
{
for(y=2;y<=x-1;y++)
mat[x][y]=mat[x-1][y]+mat[x-1][y-1];
}
for(x=1;x<=dimen;x++)
{
for(y=1;y<=x;y++)
{
printf("%d ",mat[x][y]);
;
col=col+5;
}
fil=fil+1;
printf("\n");
col=2;
}
}
void feliz_navidad()
{
cout<<"\nFeliz★* 。 • ˚ ˚ ˛ ˚ ˛ •";
cout<<"\n•。★Navidad★ 。* 。";
cout<<"\n° 。 ° ˛˚˛ * _Π_____*。*˚";
cout<<"\n˚ ˛ •˛•˚ */______/~\。˚ ˚ ˛";
cout<<"\n˚ ˛ •˛• ˚ | 田田 |門| ˚";
cout<<"\nUn feliz año nuevo";
}
void juegos()
{
cout<<"\t\t __________ __ _____"<<endl;
cout<<"\t\t |________/ _____ ______ _ ___ |_ | / ___|"<<endl;
cout<<"\t\t | | _/ ___ |______| / _ __ __ ______"<<endl;
cout<<"\t\t | | ___/ | | | | | | ____ "<<endl;
cout<<"\t\t |__| ___ |__| |__| |__| |_____/"<<endl;
cout<<endl;
}
void arbol()
{/*
cout<<"\n ...:::::::... ...:::::::... ";
cout<<"\n .:::::::::::::::::. .::::::::::::::::::. ";
cout<<"\n .::::::::::::::::::::::::::::::::::::::::::::. ";
cout<<"\n .:::::::::::::::::::'.-=.-~, ':::::::::::::::::::. ";
cout<<"\n .:::::::::::::::::::' /{,_;--'},'::::::::::::::::::::.";
cout<<"\n .:::::::::::::::::::: | .=~`|//| :::::::::::::::::::::.";
cout<<"\n .::::::::::::::::::::: | / ; \ | :::' __, '::::::::::::.";
cout<<"\n .:::::::::::::::::::::' || | | | :' .' \/\ ::::::::::::.";
cout<<"\n .:::::::::::::::::::::: |\| | | |\ / \ /_| :::::::::::::.";
cout<<"\n ::::::::::::::::::::::. \ | | /|'/ / | \ /_ | ::::::::::::::";
cout<<"\n ::::::::::::::' ,_ '::: `\ \/|/ / /`.: \ /__/ :::::::::::::::";
cout<<"\n ::::::::::::: /\/`'. ':. `\ `./.'/\ : /.--' .::::::::::::::::";
cout<<"\n ::::::::::::: |_\ / \ ::. '. ,/|\/| // ''''':::::::::::::::";
cout<<"\n ::::::::::::: | _\ / | .:: | | \ \/// .""'-. :::::::::::::";
cout<<"\n :::::::::::::: \__\ / .: .'/| | `)`/__//_/_/_\ ::::::::::::";
cout<<"\n ':::::::::::::: '--.\ : /\/_| |} /.---. \ \ \ / :::::::::::'";
cout<<"\n '::::::::::::'' \\ |\/_/| | //` . `'...-' :::::::::::'";
cout<<"\n :::::::::: .-""'. \\\/ /{| |// .:::::....::::::::::::::";
cout<<"\n '::::::: /_\_\_\\__\`(` | '/ :::::::::::::::::::::::'";
cout<<"\n ':::::: \ / / / .---.\ | | :::::::::::::::::::::::'";
cout<<"\n '::::::. '-..,'` .:.`\\ | |} ::::::::::::::::::::::'";
cout<<"\n '::::::......:jgs:: \\| | ::::::::::::::::::::'";
cout<<"\n ':::::::::::::::::: \` | ::::::::::::::::::'";
cout<<"\n ':::::::::::::::: | | ::::::::::::::::'";
cout<<"\n ':::::::::::::: {| | ::::::::::::::'";
cout<<"\n ':::::::::::: | | ::::::::::::'";
cout<<"\n ':::::::::: | | ::::::::::'";
cout<<"\n ':::::::: | |} ::::::::'";
cout<<"\n ':::::: | | ::::::'";
cout<<"\n ':::::. |/ ::::::'";
cout<<"\n ':::.....:::::'";
cout<<"\n ':::::::::'";
cout<<"\n ':::::'";
cout<<"\n ':'";
*/
}
void dibujos()
{
/*
cout<<"\n __ " ;
cout<<"\n .' '. " ;
cout<<"\n _.-'/ | \" " ;
cout<<"\n , _.-"" ,| / 0 `-. "" ";
cout<<"\n |\ .-" " `--""-.__.'=====================-,"" ";
cout<<"\n \ '-'` .___.--._)=========================| ";
cout<<"\n \ .' | | ";
cout<<"\n | /,_.-' | TRIANGULOS | ";
cout<<"\n _/ _.'( | DE | ";
cout<<"\n / ,-' \ \ | PASCAL | ";
cout<<"\n \ \ `-' | | ";
cout<<"\n `-' '--------------------------' ";
*/
}
void triangulos()
{
int res;
do
{
arbol();
printf("TRIANGULO DE PASCAL");
printf("\n1)Pascal 1 4)Pascal 4");
printf("\n2)Pascal 2 5)Pascal 5");
printf("\n3)Pascal 3 6)Pascal 6");
printf("\n0)SALIR");
printf("\n");
printf("\nOpcion:");
scanf("%d", &res);
switch(res){
case 1 :pascal1();break;
case 2 :pascal2();break;
case 3: pascal3();break;
case 4: pascal4();break;
case 5: pascal5();break;
case 6: pascal6();break;
}
}
while (res!=0);
}
void magicos()
{
int X,F,nestor,C,Y,im,dimencion;
int MAT[20][20];
int res;
do
{
printf(" CUADRADOS MAGICOS");
printf("\n 1)Magico 1 3)Magico 4 5)Magico 5 7)Magico 7");
printf("\n 2)Magico 2 4)Magico 5 6)Magico 6 8)Magico 8");
printf("\n 0)SALIR\n");
printf("\nOpcion:");
scanf("%d", &res);
switch(res)
{
case 1:{
cout<<"\nDigite la Dimencion menor a 19 n<=19 Gracias";
scanf("%d", &dimencion);
n=dimencion;
nestor=n;
im=n%2;
if(im==1 && n<=19)
{ F=1;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F++;
}
else
{
F--;
C++;
if(F<1) F=nestor;
if(C>nestor) C=1;
}
}
cout<<"\n";
cout<<" CUADRO MAGICO # 1:";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<"\n";
}
}
else
cout<<"\n\nDigite la Dimencion menor a 19 y un numero Par Gracias";
//cout<<"-------------------------------------------";
}
break;
case 2:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
nestor=n;
im=n%2;
if(im==1 && n<=19)
{F=(nestor+1)/2;
C=nestor;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{C--;}
else
{F--;
C++;
if(F<1) F=nestor;
if(C>nestor) C=1;}}
cout<<" CUADRO MAGICO # 2:\n";
for(X=1;X<=nestor;X++)
{for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
else
cout<<"\n\nDigite la Dimencion menor a 17 n<=17 Gracias";
}
break;
case 3:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
cout<<" \n";
F=(nestor+1)/2;
C=nestor;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
C--;
}
else
{
F++;
C++;
if(F>nestor) F=1;
if(C>nestor) C=1;
}
}
cout<<" CUADRO MAGICO # 3:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
break;
}
case 4:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
cout<<" \n";
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
F=nestor;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F--;
}
else
{
F++;
C++;
if(F>nestor) F=1;
if(C>nestor) C=1;
}
}
cout<<" CUADRO MAGICO # 4:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
break;
}
case 5:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
cout<<" \n\n";
F=nestor;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F--;
}
else
{
F++;
C--;
if(F>nestor) F=1;
if(C<1) C=nestor;
}
}
cout<<" CUADRO MAGICO # 5 :\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
break;
}
case 6:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
F=(nestor+1)/2;
C=1;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
C++;
}
else
{
F++;
C--;
if(F>nestor) F=1;
if(C<1) C=nestor;
}
}
cout<<" CUADRO MAGICO # 6 :\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
break;
}
case 7:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
cout<<" \n\n";
F=(nestor+1)/2;
C=1;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
C++;
}
else
{
F--;
C--;
if(F<1) F=nestor;
if(C<1) C=nestor;
}
}
cout<<" CUADRO MAGICO # 7 \n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
break;
}
case 8:{
cout<<"\n\nDigite la Dimencion menor a 19 y Par Gracias";
scanf("%d", &dimencion);
n=dimencion;
cout<<" \n";
cout<<"digite dimension de la matriz:";
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
cout<<" \n\n";
F=1;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F++;
}
else
{
F--;
C--;
if(F<1) F=nestor;
if(C<1) C=nestor;
}
}
cout<<"CUADRO MAGICO # 8:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<" "<<MAT[X][Y];
}
cout<<" \n";
}
}
break;
}
}
}
while (res!=0);
}
void espirales()
{
int matriz1[n1][n1];
Espiral(matriz1);
int res;
do
{
printf(" ESPIRAL\n");
printf("\n 1.Espiral 2.Espiral 3.Espiral ");
printf("\n 4.Espiral 5.Espiral 6.Espiral ");
printf("\n 7.Espiral");
printf("\n 0. SALIR\n");
printf("\n Opcion:");
scanf("%d", &res);
switch(res)
{case 1 :Entrada1(matriz1);break;
case 2 :Entrada2(matriz1);break;
case 3: Entrada3(matriz1);break;
case 4: Entrada5(matriz1);break;
case 5: Entrada6(matriz1);break;
case 6: Entrada7(matriz1);break;
case 7: Entrada8(matriz1);break;
}
}
while (res!=0);
}
void matrices()
{
printf(" OPERACIONES DE MATRICES\n");
printf("\n 1. Sumas nxn 2. Sumas mxn\n");
printf("\n 3. Multiplicacion nxn 4. Multiplicacion mxn\n");
}
void tiempos() {
int temp, i, j;
char a[TAM] = {'A','B','Z','O','X','F','W','P','K','L'}; // Array a ordenar.
long inicio, fin; // Para almacenar el tiempo.
inicio = clock(); //Obtiene tiempo.
for (j=1; j <= TAM; j++) // Se realizan tantas pasadas como valores en el array.
for (i=0; i< TAM-1; i++) // Se rrecorre el array
if (a[i] > a[i+1]) { // Y si hay 2 valores juntos menor/mayor segun se indique en el if.
// si el operador es '>' se ordena de menor a mayor y si el...
// operador es '<' se ordena de mayor a menos.
temp = a[i]; // Se intercanbian los valores jutnos.
a[i] = a[i+1];
a[i+1] = temp;
}
for (i=0; i< TAM; i++) // Mostramos los datos ordenados en el array.
printf ("a[%d] = %c\n", i, a[i]);
fin = clock(); //Obtiene tiempo.
printf("\n\n El Programa ha tardado %f segundos",(fin-inicio) / (float)CLOCKS_PER_SEC); // Muestra el tiempo que ha tardado
}
void programas()
{
printf("\n _________________________________________________\n");
printf("\n PROGRAMAS\n");
printf("\n 1. Factoriales 2. Fibonaci\n");
printf("\n 3. Series de Taylor 4. Funcion de Coseno y Seno\n");
printf("\n _________________________________________________\n");
}
void ayuda()
{
printf("\n _________________________________________________\n");
printf("\n NESTOR ORLANDO CALDERON\n");
printf("\n Ing de Sistemas");
printf("\n Universidad Cooperativa de Colombia");
printf("\n _________________________________________________\n");
cout<<"\nFeliz★* 。 • ˚ ˚ ˛ ˚ ˛ •";
cout<<"\n•。★Navidad★ 。* 。";
cout<<"\n° 。 ° ˛˚˛ * _Π_____*。*˚";
cout<<"\n˚ ˛ •˛•˚ */______/~\。˚ ˚ ˛";
cout<<"\n˚ ˛ •˛• ˚ | 田田 |門| ˚";
cout<<"\nUn feliz año nuevo";
cout<<"\n";
}
void ordenamiento(){
int a[MAX],b[MAX],c[MAX],n2,m,k;
int salir=0;
int res;
do {
printf("\t\t METODOS DE ORDENAMIENTO");
printf("\n\t\t 1)Burbuja Simple 4)Seleccion");
printf("\n\t\t 2)Burbuja Mejorada 5)Shell");
printf("\n\t\t 3)Insercion 6)Mezcla");
printf("\n\t\t 0)Salir ");
printf("\n Opcion: ");
scanf("%d", &res);
switch(res){
case 1:
n2=numelem();
tipocap(a,n2);
printf("Su Arreglo:\t");
ver(a,n2);
printf("Burbuja:\t");
burbuja(a,n2);
printf("\tArreglo ordenado:\t");
ver(a,n2);
break;
case 2:
n2=numelem();
tipocap(a,n2);
printf("Su Arreglo:\t");
ver(a,n2);
burbujam(a,n2);
printf("Burbuja Mejorado:\t");
printf("\tArreglo ordenado:\t");
ver(a,n2);
break;
case 3:
n2=numelem();
capinsercion(a,n2);
printf("\n\nArreglo ordenado:");
ver(a,n2);
break;
case 4:
printf("\n -=SELECCION=- \n");
n=numelem();
tipocap(a,n);
printf("Su Arreglo:\t");
ver(a,n);
printf("\nSeleccion ");
seleccion(a,n);
printf("\nArreglo ordenado:\t");
ver(a,n);
break;
case 5:
n=numelem();
tipocap(a,n);
printf("\nSu Arreglo:\t");
ver(a,n);
printf("\nOrdenamiento Shell ");
shell(a,n);
printf("\n\nArreglo ordenado:");
ver(a,n);
break;
case 6:
printf("Arreglo N_1\n");
m=numelem();
tipocap(a,m);
printf("\tArreglo N_1:\t");
ver(a,m);
printf("\tOrdenando Arreglo N_1:");
seleccion(a,m);
ver(a,m);
printf("\nArreglo N_2:");
n=numelem();
tipocap(b,n);
printf("\nArreglo N_2:");
ver(b,n);
printf("\nOrdenando Arreglo N_2\n");
seleccion(b,n);
ver(b,n);
printf("\nMezclando...");
mezc(a,b,c,m,n);
printf("\nOrdenado por el Metodo de Mezcla.\n");
k=m+n;
ver(c,k);
break;
case 7:ayuda();break;
}
}
while (res!=0);
}
int main()
{
int res;
do
{
/*
cout<<"\n ╔══════════════════════════════════════════════════════════════════════════════════════════════════════╗";
cout<<"\n ║ M E N U P R I N C I P A L ║ "; ║";
cout<<"\n ║ ║";
cout<<"\n ╚══════════════════════════════════════════════════════════════════════════════════════════════════════╝";
cout<<"\n ╔════════════════════════╗ ╔═════════════════════╗ ╔═══════════════════╗ ╔══════════════════════════╗";
cout<<"\n ║ 1) Triangulo de Pascal ║ ║ 2) Cuadros Magicos ║ ║ 3) Espiral ║ ║ 4)Metodos de Ordenamiento║"; ║\n";
cout<<"\n ╚════════════════════════╝ ╚═════════════════════╝ ╚═══════════════════╝ ╚══════════════════════════╝";
cout<<"\n ╔════════════════════════╗ ╔═════════════════════╗ ╔═══════════════════╗ ╔══════════════════════════╗";
cout<<"\n ║ 5) Programas ║ ║ 6) Dibujos ║ ║ 7) Matrices ║ ║ 8)Juegos ║"; ║\n";
cout<<"\n ╚════════════════════════╝ ╚═════════════════════╝ ╚═══════════════════╝ ╚══════════════════════════╝";
cout<<"\n ╔════════════════════════╗ ╔═════════════════════╗ ╔═══════════════════╗ ╔══════════════════════════╗";
cout<<"\n ║ 0)Salir ║ ║ 9 Ayuda ║ ║ ║ ║ ║"; ║\n";
cout<<"\n ╚════════════════════════╝ ╚═════════════════════╝ ╚═══════════════════╝ ╚══════════════════════════╝";
cout<<"\n ╔══════════════════════════════════════════════════════════════════════════════════════════════════════╗\n";
cout<<"\n ║ ║\n";
cout<<"\n ║ ║\n";
cout<<"\n ╚══════════════════════════════════════════════════════════════════════════════════════════════════════╝\n";
*/
/*cout<<"\n ╔══╗";
cout<<"\n ╚╗╔╝";
cout<<"\n ╔╝(¯`v´¯) Selecciones una Opcion";
cout<<"\n ╚══`.¸.N ";
*/
printf("\n");
printf("\n");
printf("\n_____________________________________________________________________________________________\n");
printf("\n -= M E N U P R I N C I P A L =- \n");
printf("\n1.Triangulos de Pascal 3.Espirales 5.Ordenamiento \n");
printf("\n2.Cuadros Magicos 4.Dibujos 6.Programas \n");
printf("\n7 Ayuda 0.Salir\n");
printf("\n Opcion :");
scanf("%d", &res);
switch(res)
{case 1 :triangulos();break;
case 2 :magicos();break;
case 3: espirales();break;
case 4: dibujos();break;
case 5: ordenamiento();break;
case 6: tiempos();break;
case 7: ayuda();break;
}
}
while (res!=0);
}
//**********************************Funciones de Prototipos.
void tipocap(int a[],int n){
switch(mcap()){
case 1:
captura(a,n);
break;
case 2:
caleat(a,n);
break;
}
}
void capinsercion(int a[],int n){
int i;
for(i=0;i<n;i++){
a[i]=66666;
}
for(i=0; i<n; i++){
printf("\nElemento: %d: ", i+1);
// cin>>a[i];
scanf("%d",& a[i]);
insercion(a,n);
}
}
int mcap(){
int cap;
printf("Modo de Captura.\n\n");
printf("1) Manual.\n2) Aleatoria.\n");
printf("\nCaptura de forma: ");
std::cin>>cap;
return(cap);
}
int numelem(){
long double elems;
printf("Numero de elementos: ");
std::cin>>elems;
return(elems);
}
void captura(int a[],int n){
int i;
for(i=0;i<n;i++){
printf("%d: ",i+1);
scanf("%d", &a[i]);
}
}
void caleat(int a[], int n){
int i;
for(i=0;i<n;i++){
a[i]=(rand()%100);
}
}
void ver(int a[], int n){
int i;
for(i=0;i<n;i++){
printf(" %d\t", a[i]);
}
}
void burbuja(int a[],int n){
int i,j,k=0,aux;
printf("\n");
for(i=0;i<=n;i++){
printf("\nPasada N #%d)\t",k);
k++;
for(j=0;j<n-i;j++){
if(a[j]>a[j+1]){
aux=a[j];
a[j]=a[j+1];
a[j+1]=aux;
}
printf("\n");
ver(a,n);
}
}
printf("\n");
}
void burbujam(int a[],int n){
int i,j=0,band=1,aux;
while(j<n && band==1){
band=0;
for(i=0;i<n;i++){
if(a[i]>a[i+1]){
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
band=1;
}
}
printf("\nPasada N_%d\n",j);
ver(a,n);
j++;
}
}
void insercion(int a[],int n){
int i,j,aux;
for(i=1; i<n; i++){
j=i;
aux=a[i];
while(j>0 && aux<a[j-1]){
a[j]=a[j-1];
j--;
}
a[j]=aux;
}
printf("Los Elementos son: ");
for(j=0; j<n; j++)
printf("%d\t ",a[j]);
}
void seleccion(int a[],int n){
int i=0,j=0,x=0,im,aux;
for(i=0;i<n-1;i++){
x++;
im=i;
for(j=i+1;j<n;j++){
if(a[j]<a[im]){
im=j;
}
}
aux=a[i];
a[i]=a[im];
a[im]=aux;
printf("\nPasada N_%d:\t",x);
ver(a,n);
}
}
void shell(int a[],int n){
int inter=(n/2),x=0,i=0,j=0,k=0,aux;
while(inter>0){
for(i=inter;i<n;i++){
x++;
j=i-inter;
while(j>=0){
k=j+inter;
if(a[j]<=a[k]){
j--;
}
else{
aux=a[j];
a[j]=a[k];
a[k]=aux;
j=j-inter;
}
}
printf("\nPasada N_%d:\t",x);
ver(a,n);
}
inter=inter/2;
}
}
void mezc(int x[],int y[],int z[],int m,int n){
int i=0,j=0,k=0;
while((i<=m)&&(j<n)){
if(x[i]<=y[j]){
z[k]=x[i];
i++;
}
else{
z[k]=y[j];
j++;
}
k++;
}
if(i!=m){
do{
z[k]=x[i];
k++;
i++;
} while(i<=m);
}
else {
do{
z[k]=y[j];
k++;
j++;
} while(j<=n);
}
}
No hay comentarios:
Publicar un comentario