| Ejemplos de C - Arrays |
1.- Programa que inicializa un vector y hace operaciones sobre él:
#include <stdio.h>
void fmenu(void);
void finicializar(void);
void fvisualizar(void);
void fbusqueda_lineal(void);
void fbusqueda_lineal_ordenada(void);
void fbusqueda_binaria(void);
void fordenar_baraja(void);
void fordenar_burbuja(void);
int v_enteros[100];
int opcion;
int indice;
int i;
int valor;
int aux;
int indice_i;
int indice_j;
int indice_c;
int indice_d;
void main()
{
do
{
fmenu();
switch (opcion)
{
case 1:finicializar();
break;
case 2:fvisualizar();
break;
case 3:fbusqueda_lineal();
break;
case 4:fordenar_baraja();
break;
case 5:fordenar_burbuja();
break;
case 6:fbusqueda_lineal_ordenada();
break;
case 7:fbusqueda_binaria();
break;
case 8:;
default:;
break;
}
}
while (opcion!=8);
}
void fmenu(void)
{
do
{
puts(" ESTE PROGRAMA REALIZA LOS SIGUIENTES PROCESOS \n");
puts("-------------------------------------------------------------------------------------------\n");
puts("1.-INICIALIZA UN VECTOR, COMO MÁXIMO DE 100 NÚMEROS
\n");
puts("2.-VISUALIZA EL CONTENIDO DE UN VECTOR \n");
puts("3.-BUSCA UN VALOR EN UN VECTOR NO ORDENADO\n");
puts("4.-ORDENA UN VECTOR POR EL MÉTODO DE LA BARAJA \n");
puts("5.-ORDENA UN VECTOR POR EL MÉTODO DE LA BURBUJA \n");
puts("6.-BUSCA UN VALOR EN UN VECTOR ORDENADO MEDIANTE BÚSQUEDA
LINEAL\n");
puts("7.-BUSCA UN VALOR EN UN VECTOR ORDENADO MEDIANTE BÚSQUEDA
BINARIA\n");
puts("8.-FINALIZA\n");
scanf("%d",&opcion);
}
while (opcion!=1 && opcion !=2 && opcion !=3 && opcion
!=4 && opcion!=5 && opcion!=6
&& opcion!=7 && opcion!=8);
}
void finicializar(void)
{
puts("Teclea número de elementos del vector\n");
scanf("%d",&i);
if(i<=100)
{
for (indice=1;indice<=i;indice++)
{
puts("Teclea un numero\n");
scanf("%d",&v_enteros[indice]);}
}
else
{
puts("La longitud maxima del vector es de 100 números\n");
puts("Teclea la nueva longitud\n");
scanf("%d",&i);
}
}
void fvisualizar(void)
{
for (indice=1;indice<=i;indice++)
printf("En la posicion %d y en la direccion de memoria %d esta el numero
%d\n",indice
,&v_enteros[indice],v_enteros[indice]);
}
void fbusqueda_lineal(void)
{
puts("Teclea el valor a buscar\n");
fflush(stdin);
scanf("%d",&valor);
indice=1;
while(v_enteros[indice]!=valor && indice<i)
indice++;
if (v_enteros[indice]==valor)
{
printf("El valor %d esta en la posicion %d\n",valor,indice);}
else
printf("El valor %d no esta en el vector\n",valor);
}
void fbusqueda_lineal_ordenada(void)
{
puts("Teclea el valor a buscar\n");
scanf("%d",&valor);
indice=0;
while (v_enteros[indice]<valor && indice<i)
indice++;
if (v_enteros[indice]==valor)
{printf("El valor %d esta en la posicion %d\n",valor,indice);}
else printf("El valor %d no esta en el vector\n",valor);
}
void fbusqueda_binaria(void)
{
puts("Teclea el valor a buscar\n");
scanf("%d",&valor);
indice_i=0;
indice_d=i;
indice_c=(indice_i+indice_d)/2;
while (v_enteros[indice_c]!=valor && indice_i<indice_d)
{
if (v_enteros[indice_c]>valor)
{indice_d=indice_c-1;}
else indice_i=indice_c+1;
indice_c=(indice_i+indice_d)/2;
}
if (v_enteros[indice_c]==valor)
printf("El valor %d esta en la posicion %d\n",valor,indice_c);
else printf("El valor %d no esta en el vector\n",valor);
}
void fordenar_baraja(void)
{
for (indice_i=1;indice_i<=i;indice_i++)
{
aux=v_enteros[indice_i];
indice_j=indice_i-1;
while (v_enteros[indice_j]>aux && indice_j>0)
{
v_enteros [indice_j+1]=v_enteros[indice_j];
indice_j--;
}
if (v_enteros[indice_j]>aux)
{
v_enteros[indice_j+1]=v_enteros[indice_j];
v_enteros[indice_j]=aux; }
else v_enteros[indice_j+1]=aux;
}
for (indice_i=1;indice_i<=i;indice_i++)
printf("El valor %d esta en la posicion %d\n",v_enteros[indice_i],indice_i);
}
void fordenar_burbuja(void)
{
for(indice_i=1;indice_i<=i;indice_i++)
for (indice_j=0;indice_j<=(i-indice_i);indice_j++)
if(v_enteros[indice_j]>v_enteros[indice_j+1])
{
aux=v_enteros[indice_j];
v_enteros[indice_j]=v_enteros[indice_j+1];
v_enteros[indice_j+1]=aux;
}
for (indice_i=1;indice_i<=i;indice_i++)
printf("El valor %d esta en la posicion %d\n",v_enteros[indice_i],indice_i);
}