You are on page 1of 8

Bsqueda lineal

int buslin(const int vec[], int tam, int ps)


{
for (int i = 0; i< tam ; i++){
if (vec[i] == ps)
return i;
}
return -1;
}
Bsqueda binaria
int busBin(const int vec[], int tam, int ps)
{
int haut = tam-1;
int bas = 0;
int centre;
while (bas <= haut)
{
centre = (haut + bas)/2;
if (vec[centre] == ps)
return centre;
else
if (ps < vec[centre])
haut=centre-1;
else
bas=centre+1;
}
return -1;
Burbuja
void burbuja(int vec[], int tam)
{
for (int i = 0; i<tam-1 ; i++)
for (int j = 0; j<tam-1 ; j++)
if(vec[j] < vec[j+1])
cambio(vec[j],vec[j+1]);
}
void cambio(int &a, int &b)
{
int tmp = b;
b = a;
a = tmp;
}

Insercin
void insercion (int vec[] , int n)
{
int aux=0;
int j=0;
for (int i=0; i<n; i++)
{
aux = vec[i];
for (j=i-1; j>=0 && A[j]>aux; j--)
vec[j+1] = A[j];
vec[j+1] = aux;
}
}
Mezcla
void melange (int *v, int i, int f) {
if(i!=f) {
int m = (i+f)/2;
melange (v, i, m);
melange (v, m+1, f);
melenge1(v, i, m, f);
}
}

void melenge1(int *v, int i, int m, int f) {
int *aux = new int[m-i+1];
for(int j=i; j<=m; j++)
aux[j-i] = v[j];

int c1=0, c2=m+1;
for(int j=i; j<=f; j++) {
if(aux[c1] < v[c2]) {
v[j] = aux[c1++];
if(c1==m-i+1)
for(int k=c2; k<=f; k++)
v[++j] = v[k];
}
else {
v[j] = v[c2++];
if(c2==f+1)
for(int k=c1; k<=m-i; k++)
v[++j] = aux[k];
}
}
}
Seleccin
void selection(int B[], int n)
{
for (int i = 0; i <n - 1; i++)
{
int min = i;
for (int j = i + 1; j < n; j++)
{
if (B[j] < B[min])
{
min = j;
}
}
if (i != min)
{
int aux= B[i];
B[i] = B[min];
B[min] = aux;
}
}
}
Cuadros mgicos
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


/*limitar rango ( limita los valores de x al rango [0, N] )*/
#define lr( f, N ) ( (f)<0 ? N+(f)%N : ( (f)>=N ? (f)%N : (f) ) )

void CImpar (int N)
{
int cuadro[100][100],f,c,n;
system("cls");
printf( "\nCuadro magico %ix%i \n", N, N);
for(f=0;f<N;f++){
for(c=0;c<N;c++){
cuadro[f][c]=0;
}
}
for( f=N/2,c=0,n=1; n<=N*N; ){
if( !cuadro[f][c] ) {
cuadro[f][c] = n++;
f=lr(f+1,N);
c=lr(c-1,N);
}
else {
f=lr(f-1,N);
c=lr(c+2,N);
}
}
for(c=0;c<N;c++){
for(f=0;f<N;f++){
printf("%i \t", cuadro[f][c] );
}
printf("\n");
}

printf("Suma = %i", (N*(N*N+1))/2 );
}

void CPar (int N)
{
int cuadro[100][100],f,c,n;
system("cls");
printf( "\nCuadro Magico de %ix%i \n", N, N);
for(f=0;f<N;f++){
for(c=0;c<N;c++){
cuadro[f][c]=0;
}
}
for( f=N/2,c=0,n=1; n<=N*N; ){
if( !cuadro[f][c] ) {
cuadro[f][c] = n++;
f=lr(f+1,N);
c=lr(c-1,N);
}
else {
f=lr(f-1,N);
c=lr(c+2,N);
}
}
for(c=0;c<N;c++){
for(f=0;f<N;f++){
printf("%i \t", cuadro[f][c] );
}
printf("\n");

}
printf("Suma = %i", (N*(N*N+1))/2 );
}

int main()
{
int N=0,seleccion=0;
printf("\t\t\t_______________________\n");
printf("\t\t\t| Cuadros Magicos |\n");
printf("\t\t\t|1.Cuadro Magico Impar|\n");
printf("\t\t\t|2.Cuadro Magico Par |\n");
printf("\t\t\t|_____________________|\n");
scanf("%d", &seleccion);
switch(seleccion){
case 1:do{
printf( "\nDigite un numero Impar para\ngenerar el cuadro magico\n" );
scanf( "%i", &N );
if(!(N%2)){
printf("\nEl numero ingresado es par\n");
}
}while( !(N%2) );
CImpar (N);
break;
case 2: do{
printf( "\nDigite un numero par para\ngenerar el cuadro magico\n" );
scanf( "%i", &N );
if((N%2))
{
printf("\nEl numero ingresado es Impar\n");
}
}while( (N%2) );
CPar (N);
break;
default:printf("Opcion no valida\n\n");
system("pause");
break;
}
getch();
}
Celular
#include <stdio.h>
#include <stdlib.h>
#include "utilidades.h"
#define TAM 50
struct Contacto{
int celular;
char nombre[30];
};
//memoria del celular, que es un vector
struct Contacto memoriaCel[TAM];
void listar();
void registrar();
void editar();
void eliminar();
int buscar();
int main(int argc, char *argv[])
{
int opcion=0;
int posicion;
do{
opcion= menuCelular();
switch(opcion){
case 1 : listar();
break;
case 2 : registrar();
break;
case 3 : editar();
break;
case 4 : eliminar();
break;
case 5 : posicion=buscar();
break;
case 6 : puts("Adios...");
break;
default : puts("Opcion Incorrecta");
break;
}
system("pause");
}while(opcion!=6);
system("PAUSE");
return 0;
}
void listar()
{
int i;
puts("NO\tCELULAR\tNOMBRE");
for(i=0; i< TAM; i++)
{
printf("%d \t%d \t %s \n",i+1, memoriaCel[i].celular, memoriaCel[i].nombre);
}
}
void registrar(){
int i; int guardo=0; int num; char nom[30];
puts("Celular : ");
scanf("%d",&num);
fflush(stdin);
puts("Nombre : ");
gets(nom);
fflush(stdin);
for(i=0; i < TAM; i++)
{
if(memoriaCel[i].celular == 0)
{
memoriaCel[i].celular = num;
strcpy(memoriaCel[i].nombre,nom);
guardo=1;
break;
}
}
if(guardo==1)
puts("Contacto Almacenado...");
else
puts("Memoria del Celular Full...");
}
void editar()
{
int i; int edito=0;
int pos=0;
int num;
char nom[30];
listar();
puts("Numero a Editar : ");
scanf("%d",&pos);
fflush(stdin);
puts("Celular : ");
scanf("%d",&num);
fflush(stdin);
puts("Nombre : ");
gets(nom);
fflush(stdin);
for(i=0; i < TAM; i++)
{
if(pos == i+1)
{
memoriaCel[i].celular = num;
strcpy(memoriaCel[i].nombre,nom);
edito=1;
}
}
if(edito==1)
puts("Contacto Actualizado...");
else
puts("Contacto No Actualizado...");
}
void eliminar(){
int pos; int elimino=0;
int i;
listar();
puts("Numero a Eliminar : ");
scanf("%d",&pos);
for(i=0; i < TAM; i++)
{
if(pos == i+1)
{
memoriaCel[i].celular = 0;
strcpy(memoriaCel[i].nombre,"");
elimino=1;
}
}
if(elimino==1)
puts("Contacto Eliminado...");
else
puts("Contacto No Eliminado...");
}
int buscar()
{
int i;
int posicion=-1;
int num;
puts("Numero a buscar : ");
scanf("%d", &num);
for(i=0; i < TAM; i++)
{
if(num == memoriaCel[i].celular)
{
posicion= i;
printf("%d \t%d \t %s \n",i+1, memoriaCel[i].celular, memoriaCel[i].nombre);
}
}
if(posicion == -1)
puts("NO existe un contacto con ese numero!!!");
return posicion;
}
Archivos.hint funcionMenu()
{
int opcion=0;
puts("1. SUMA");
puts("2. RESTA");
puts("3. MULTIPLICA");
puts("4. DIVIDE");
puts("5. SENO");
puts("6. COSENO");
puts("7. RAIZ");
puts("8. SALIR");
scanf("%d", &opcion);
return opcion;
}
int primosEnVector(int vector[], int Tamanio)
{
int i,p, kdiv=0, kprimos=0;

for(i=0; i < tamanio; i++)
{
kdiv=0;
for(p=1; p<=vector[i]; p++)
{
if(vector[i] % p == 0)
kdiv= kdiv + 1;
}
if(kdiv <= 2)
kprimos= kprimos + 1;
}
return kprimos;
}

int sumaDiagonal(matriz[][10])
{
int f, c, suma =0;
for(f=0; f <10; f++)
for(c=0; c <10; c++)
{
if(f==c)
suma=suma + matriz[f][c];
}
return suma;
}
Palindrome
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

/* run this program using the console pauser or add your own getch, system("pause") or input
loop */

int main(int argc, char *argv[]) {
puts("____________________________________________________________\n");
puts("ESTE PROGRAMA DETERMINA SI UNA FRASE O PALABRA ES PALINDROMO ");
puts("____________________________________________________________\n");
char texto[256];
int primero=0;
int ultimo;
int tama;
int palin=1;


printf("ingrese un frase:\n");
scanf("%[^\r\n]",&texto);
tama=strlen(texto);
ultimo=tama-1;
while(palin&&primero<tama&&ultimo>=0){

while(primero<tama&&!isalpha(texto[primero]))
primero++;
while(ultimo>=0&&!isalpha(texto[ultimo]))
ultimo--;
if(primero<tama&&ultimo>=0&&tolower(texto[primero]) == tolower(texto[ultimo])){
primero++;
ultimo--;
}
else
palin=0;
}
printf("[%s]\n", texto);
if(palin)
printf("si ");
else
printf("no ");


printf("es paldromo\n");

printf("\nBy: AndresAlban \n");
system("pause");
return 0;
}