Apostar y ganar

Click Now!

viernes, 1 de noviembre de 2013

Función para recibir solo números texboxes

Funcion para recibir solo numeros texboxes


Dim Número As Double    <------------declarar

funcion


Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)

        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If

    End Sub


Poner en cada tex keypres

solonumeros(e)

martes, 29 de octubre de 2013

Boton limpiar en Visual basic Net

Como poner un boton de limpiar datos en visual , Codigo para borrar TextBox en programa de visual basic ,  Como limpiar textbox desde un boton de salir

Pones en el codigo del boton esta rutina

For Each obj As Control In Me.Controls
If (TypeOf obj Is TextBox) Then
obj.Text = ""
End If
If (TypeOf obj Is GroupBox) Then
For Each caja As Control In obj.Controls
If (TypeOf caja Is TextBox) Then
caja.Text = ""
End If
Next
End If
Next

jueves, 26 de septiembre de 2013

Codigo para login en visal basic 2010

Codigo para insertar en el boton del formulario de login visual basic 2010

If TextBox1.Text ="INGRESA TU NOMBRE DE USUARIO AQUI"
And TextBox2.Text ="TU CONTRASEÑA AQUI" Then
Form2.Show
Me.close
Else
MsgBox ("USUARIO O CONTRASEÑA INVALIDO")
End If

sábado, 1 de junio de 2013

ejercicios en c basicos mostrar texto en determinada fecha en c

Mensaje a tiempo determinado en c

#include <iostream>
#include <cstdlib>
#include <fstream>
#include <time>
using namespace std;
int main () {
int variable
variable= 25/10/2012
if (variable= date);

mesagebox " hola"

else;

continue

}

Todo codigo

Codigo para leer o manejar fecha y hora todocodigo


/* Esta es una biblioteca que permite manejar de forma adecuada fechas y horas */

#include <dos.h>

#define dias_por_400_anios   (365*400+100-3)
#define es_anio_bisiesto(y)  ((((y)%400)==0)||((((y)%4)==0)&&(((y)%100)!=0)))


enum bool
{
    false = 0,
    true = 1
};


enum Mes
{
Enero = 1,
Febrero = 2,
Marzo = 3,
Abril = 4,
Mayo = 5,
Junio = 6,
Julio = 7,
Agosto = 8,
Septiembre = 9,
Octubre = 10,
Noviembre = 11,
Diciembre = 12
};

enum DiaSemana
{
Domingo = 1,
Lunes = 2,
Martes = 3,
Miercoles = 4,
Jueves = 5,
Viernes = 6,
Sabado = 7
};


char *nombre_mes(int numero_mes)
{
     char *mes;

switch(numero_mes)
     {
 case 1:        mes="Enero";     break;
 case 2:     mes="Febrero";     break;
 case 3:     mes="Marzo";     break;
 case 4:     mes="Abril";     break;
 case 5:     mes="Mayo";     break;
 case 6:     mes="Junio";     break;
 case 7:     mes="Julio";     break;
 case 8:     mes="Agosto";     break;
 case 9: mes="Septiembre"; break;
 case 10:     mes="Octubre";     break;
 case 11: mes="Noviembre"; break;
 case 12: mes="Diciembre"; break;
     }

     return mes;
}


char *nombre_dia(DiaSemana dia_semana)
{
     char *dia;

     switch(dia_semana)
     {
           case Domingo: dia="Domingo";    break;
    case Lunes:     dia="Lunes"; break;
           case Martes:     dia="Martes"; break;
           case Miercoles: dia="Miercoles"; break;
           case Jueves:     dia="Jueves"; break;
           case Viernes: dia="Viernes";    break;
           case Sabado:      dia="Sabado"; break;
      }

      return dia;
}

struct Fecha
{
    int y, m, d;
};


struct Tiempo
{
    int h, m, s, cs;
};


long dias_pasados_400_anios(int y)
{
    return ( y > 0 ) ? 365 * y + (y-1) / 4 - (y-1) / 100 + 1 : 0;
}


long dias_pasados_mes (int y, int m)
{
    const int dias[12] = { 0, 31, 31+28, 59+31, 90+30, 120+31, 151+30, 181+31,
    212+31, 243+30, 273+31, 304+30 /*, 334+31 = 365*/ };

long resultado;

    resultado = dias[m-1];

    if ( m > Febrero && es_anio_bisiesto ( y ) )
        resultado++;

    return resultado;
}

long dias_pasados_fecha (Fecha fecha)
{
    long dias;
    dias = (fecha.y/400)*dias_por_400_anios + dias_pasados_400_anios ( fecha.y % 400 )
+ dias_pasados_mes ( fecha.y, fecha.m ) + fecha.d;

    return dias;
}

long diferencia_dias (Fecha fechaInicial, Fecha fechaFinal)
{
    return dias_pasados_fecha(fechaFinal) - dias_pasados_fecha(fechaInicial);
}

DiaSemana dia_de_la_semana(Fecha fecha)
{
long resultado;

resultado = dias_pasados_400_anios ( fecha.y % 400 ) + dias_pasados_mes ( fecha.y, fecha.m ) + fecha.d;

/* El primer dia de la semana de cada 400 anios es viernes */
resultado = (Viernes+resultado) % 7;

/* Si es 0, entonces es sabado */
if (resultado==0)
  resultado = 7;

return (DiaSemana)resultado;
}

int dias_en_el_mes (int y, int m)
{
    const int dias[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int resultado;

resultado = dias[m-1];

if ( m == Febrero && es_anio_bisiesto ( y ) )
resultado++;

return resultado;
}

int dias_en_el_anio (int y)
{
return (es_anio_bisiesto ( y ) ) ? 366 : 365;
}

void sumar_dias_fecha (int dias, Fecha *fecha )
{
    for(int i=1;i<=dias;i++)
    {
  fecha->d++;

        if(fecha->d>dias_en_el_mes(fecha->y, fecha->m))
        {
           fecha->d=1;
           fecha->m++;
        }
        if(fecha->m>12)
        {
           fecha->m=1;
  fecha->y++;
        }
    }
}

long centesimas_pasados_tiempo (int h, int m, int s, int cs)
{
return h*(60*60*100) + m*(60*100) + s*100 + cs;
}

long diferencia_centesimas (Tiempo tiempoInicial, Tiempo tiempoFinal)
{
    return centesimas_pasados_tiempo ( tiempoInicial.h, tiempoInicial.m, tiempoInicial.s, tiempoInicial.cs )
- centesimas_pasados_tiempo ( tiempoFinal.h, tiempoFinal.m, tiempoFinal.s, tiempoFinal.cs );
}

void sumar_centesimas_tiempo (long centesimas, Tiempo *tiempo )
{
    tiempo->h = centesimas / (60*60*100);
centesimas %= (60*60*100);
tiempo->m = centesimas / (60*1000);
centesimas %= (60*100);
tiempo->s = centesimas / 100;
tiempo->cs = centesimas % 100;
}

bool es_fecha_valida ( Fecha fecha )
{
if ( fecha.m < Enero || fecha.m > Diciembre )
return false;

if ( fecha.d < 0 || fecha.d >= dias_en_el_mes ( fecha.y, fecha.m ) )
return false;

return true;
}

bool es_tiempo_valido ( Tiempo tiempo )
{
    if ( tiempo.h < 0 || tiempo.h >= 24 )
return false;

if ( tiempo.m < 0 || tiempo.m >= 60 )
return false;

if ( tiempo.s < 0 || tiempo.s >= 60 )
return false;
if ( tiempo.cs < 0 || tiempo.cs >= 100 )
return false;

return true;
}


void leer_fecha_tiempo_local (Fecha *fecha, Tiempo *tiempo )
{
struct date d;
struct time t;

getdate(&d);
fecha->y = d.da_year;
fecha->m = d.da_mon;
fecha->d = d.da_day;

gettime(&t);
tiempo->h = t.ti_hour;
tiempo->m = t.ti_min;
tiempo->s = t.ti_sec;
tiempo->cs = t.ti_hund;
}

char *fecha_formateada (Fecha fecha)
{
char *dia=nombre_dia(dia_de_la_semana(fecha));
char *mes=nombre_mes(fecha.m);

char f[100];
sprintf(f, "%s, %02d de %s del %d", dia, fecha.d, mes, fecha.y);

return f;
}

char *tiempo_formateado (Tiempo tiempo)
{
char t[50];

sprintf(t, "%02d:%02d:%02d %02d", tiempo.h, tiempo.m, tiempo.s, tiempo.cs);
return t;
}

Ordenacion y busqueda c ejercicios resueltos

//BUSQUEDA.CPP (Ordenacion y busqueda)
//El programa fue compilado con Turbo C++ 3.0
//Descripcion de BUSQUEDA.CPP
//Los metodos de ordenacion que se desarrollaron son:
//Shell, Burbuja, Insercion, Sacudida,Seleccion y el Quicksort
//Nota.- El Quicksort se elaboro recursivamente e iterativamente.
//Los metodos de busqueda que se programaron fueron:
//Busqueda lineal y Busqueda Binaria.
//para que estos metodos funciones correctamente la lista debe estar ordenada.

#include <iostream.h>//para cout y cin
#include <conio.h>   //para getch
#include <stdlib.h>  //para exit y system

#define NUMEL 50

class BUSQUEDA{
private:
int izquierda,derecha,puntomedio,max,nums[NUMEL];
int elemento,ubicacion,ubicacion2,i;

public:
BusquedaBinaria(int[],int,int);
BusquedaLineal(int[],int,int);
MenuMain(void);
void Pedir(int *,int);
};

class ORDENACION{
private:
int min,indicemin,temp,movimientos;
int i,j,mitad,x;
int inter,opc;
int a[5];
OrdRap(int*,int,int);
void qs(int *,int,int);
public:

void Quicksort_Iterativo(int[],int);
Quicksort(int*,int);
Seleccion(int*,int);
Burbuja(int*,int);
Shell(int*,int);
Sacudida(int*,int);
Insercion(int*,int);

void Pedir(int*,int);
void Visualiza(int*,int,int,int);
Elementos();
MenuMain(void);
Menu_Asc_Des(void);

};

int ORDENACION::Quicksort(int *num,int numel)
{
 int mov=OrdRap(num,0,numel-1);
 return mov;
}

  ORDENACION::OrdRap(int *num,int inf,int sup)
{
 register int izq,der;
 movimientos=0;
 izq=inf; der=sup;
 mitad=num[(izq+der)/2];
 do{
   while(num[izq]<mitad && izq < sup) izq++; movimientos++;
   while(mitad<num[der] && der > inf) der--; movimientos++;
   if(izq<=der){
   x=num[izq],num[izq]=num[der],num[der]=x;
   izq++; der--; movimientos++;
   }

 }while(izq<=der);
 if(inf<der) OrdRap(num,inf,der);
 if(izq<sup) OrdRap(num,izq,sup);
 return movimientos;
}

void ORDENACION::Quicksort_Iterativo(int *num,int numel)
{
  qs(num,0,numel-1);
}

void ORDENACION::qs(int *num,int inf,int sup)
{
  struct TipoPila{
  int inf,sup;
  }Pila[NUMEL];
  register int izq,der;
  int mitad,x,p;
  p=1,Pila[p].inf=inf,Pila[p].sup=sup;
  do{
inf=Pila[p].inf,sup=Pila[p].sup,p--;
do{
 izq=inf; der=sup;
 mitad=num[(izq/der)/2];
 do{
while(num[izq] < mitad && izq < sup) izq++;
while(mitad < num[der] && der > inf) der--;
if(izq<=der){
 x=num[izq],num[izq]=num[der],num[der]=x;
 izq++; der--;
}
 }while(izq<=der);
 if(izq<sup){
  p++,Pila[p].inf=izq,Pila[p].sup=sup;
 }
 sup=der;
}while(inf<der);
  }while(p);
}

ORDENACION::Insercion(int *num,int numel)
{
  movimientos=0;
  for(i=1;i<numel;++i){
   temp=num[i];
   for(j=i-1;(j>=0)&&(temp<num[j]);j--)
num[j+1]=num[j];
num[j+1]=temp;
movimientos++;
  }
  return movimientos;
}

 ORDENACION::Shell(int *num,int numel)
{

 movimientos=0;
 a[0]=9;a[1]=5;a[2]=3;a[3]=2;a[4]=1;
 for(register int k=0;k<5;k++){
  temp=a[k];
  for(i=temp;i<numel;++i){
   x=num[i];
   for(j=i-temp;(x<num[j])&&(j>=0);j=j-temp)
num[j+temp]=num[j];
num[j+temp]=x;

   }
   movimientos++;
  }
  return movimientos;
}

ORDENACION::Sacudida(int *num,int numel)
{

  movimientos=0;
  do{

inter=0;
for(i=numel-1;i>0;--i){
if(num[i-1]>num[i]){
 temp=num[i-1];
 num[i-1]=num[i];
 num[i]=temp;
 inter=1;
 movimientos++;
}
}
for(i=1;i<numel;++i){
 if(num[i-1]>num[i]){
  temp=num[i-1];
  num[i-1]=num[i];
  num[i]=temp;
  inter=1;
  movimientos++;
 }
}

   }while(inter);
  return movimientos;
}

ORDENACION::Seleccion(int *num,int numel)
{
  movimientos=0;
  for(i=0;i<(numel-1);i++){
min=num[i];
indicemin=i;
for(j=i+1;j<numel;++j){
if(num[j]<min){
 min=num[j];
 indicemin=j;
}
}
if(min<num[i]){
temp=num[i];
num[i]=min;
num[indicemin]=temp;
movimientos++;
}

  }
  return movimientos;
}

ORDENACION::Burbuja(int *num,int numel)
{
 movimientos=0;
 for(i=0;i<numel-1;i++){
  for(j=1;j<numel;j++){
   if(num[j]<num[j-1]){
temp=num[j];
num[j]=num[j-1];
num[j-1]=temp;
movimientos++;
   }
  }
 }
 return movimientos;
}

  int BUSQUEDA::MenuMain(void)
  {
   int opc;
   while(opc<1 || opc > 3){
 system("cls");
 gotoxy(29,9);
 cout<<"METODOS DE BUSQUEDA.";
 gotoxy(32,10); cout<<"1. Busqueda Lineal.";
 gotoxy(32,11); cout<<"2. Busqueda Binaria.";
 gotoxy(32,12); cout<<"3. Salir.";
 gotoxy(32,14); cout<<"opcion-> ";
 cin>>opc;
   }
   return opc;
  }

  int ORDENACION::MenuMain(void)
  {
   int opc;
   while(opc < 1 || opc > 7)
{
 system("cls");
 gotoxy(29,9);  cout<<"METODOS DE ORDENACION\n";
 gotoxy(33,10); cout<<"1. Burbuja";
 gotoxy(33,11); cout<<"2. Insercion";
 gotoxy(33,12); cout<<"3. Quicksort";
 gotoxy(33,13); cout<<"4. Shell";
 gotoxy(33,14); cout<<"5. Seleccion";
 gotoxy(33,15); cout<<"6. Sacudida";
 gotoxy(33,16); cout<<"7. Salir.";
 gotoxy(33,18); cout<<"Opcion-> ";
 cin>>opc;
}
   return opc;
}
   void BUSQUEDA::Pedir(int *num,int n)
  {
int i;
system("cls");
for(i = 0; i < n; i++)
{
 gotoxy(22, i + 1);
 cout<<"Ingresa valor "<<i+1<<": ";
 cin>>num[i];
}
  }

  void ORDENACION::Pedir(int *num,int n)
  {
system("cls");
for(i = 0; i < n; i++)
{
 gotoxy(22, i + 1);
 cout<<"Ingresa valor "<<i+1<<": ";
 cin>>num[i];
}
  }

  int ORDENACION::Menu_Asc_Des(void)
  {
   int opc;
   while(opc < 1 || opc > 2){
 system("cls");
 gotoxy(29,9);  cout<<"METODOS DE ORDENACION\n";
 gotoxy(33,10); cout<<"1. Ascendente\n";
 gotoxy(33,11); cout<<"2. Descendente\n";
 gotoxy(33,12); cout<<"Opcion: ";
 cin>>opc;
}
return(opc);
}



 BUSQUEDA::BusquedaBinaria(int lista[],int tamanho,int clave)
 {

  izquierda=0;
  derecha=tamanho-1;
  while(izquierda<=derecha)
  {
   puntomedio=((izquierda+derecha)/2);
   if(clave==lista[puntomedio])
   {
return puntomedio;
   }
   else if (clave>lista[puntomedio])
izquierda=puntomedio+1;
   else
derecha=puntomedio-1;
   }
   return -1;
  }

BUSQUEDA::BusquedaLineal(int lista[],int tamanho,int clave)
{
 for(register int i=0;i<tamanho;i++)
 {
  if(lista[i]==clave)
  return i;
 }
 return -1;
}

  void ORDENACION::Visualiza(int *num, int numel,int opc,int mov)
{
if(numel >= 40) x = 1;
else x = 40 - numel;
 do{
if(opc==1){
system("cls");
gotoxy(x-14,11); cout<<"Los movimientos que se hicieron son: ";
cout<<mov;
gotoxy(x-14,12); cout<<"Los Numeros Ordenados Ascendentemente son : ";
gotoxy(x,15);
for(i = 0; i<numel; i++)
cout<<num[i]<<" ";
getch();
}
if(opc==2){
system("cls");
gotoxy(x-14,11); cout<<"Los movimientos que se hicieron son: ";
cout<<mov;
gotoxy(x-14,12); cout<<"Los Numeros Ordenados Descendentemente son : "<<endl;
gotoxy(x,14);
for(int j = numel; j>0; j--)
cout<<num[j-1]<<" ";
getch();
}

  }while(opc<1||opc>2);
}

  void Ordenaciones(void)
{
int numel, opc,OPC;
char salir;
int num[NUMEL]={0};
ORDENACION p;

  do{
system("cls");
gotoxy(19,12);
cout<<"Numero de elementos: ";
cin>>numel;
if(numel == 0){
 cout<<"\n\t\t  Numero no valido";
 getch();
 exit(1);
}
opc = p.MenuMain();
if(opc == 7){
 exit(1);
}
p.Pedir(num, numel);
OPC=p.Menu_Asc_Des();
switch(opc)
{
 case 1: int res=p.Burbuja(num, numel);
 p.Visualiza(num, numel,OPC,res);  break;
 case 2: int res2=p.Insercion(num, numel);
 p.Visualiza(num, numel,OPC,res2); break;
 case 3: int res3=p.Quicksort(num, numel);
 p.Visualiza(num, numel,OPC,res3); break;
 case 4: int res4=p.Shell(num, numel);
 p.Visualiza(num, numel,OPC,res4); break;
 case 5: int res5=p.Seleccion(num, numel);
 p.Visualiza(num, numel,OPC,res5); break;
 case 6: int res6=p.Sacudida(num,numel);
 p.Visualiza(num, numel,OPC,res6); break;
}
gotoxy(25,18);
cout<<"Desea volver a introducir datos (s/n): ";
cin>>salir;
  }while(salir!='n');
  system("cls");

}


   void Busquedas(void)
   {
BUSQUEDA b;
int numel, opc,clave;
char OPC;
int *num=NULL;
do{
system("cls");
gotoxy(19,12); cout<<"Numero de elementos: ";
cin>>numel;
if(numel == 0){
 cout<<"\n\t\t  Numero no valido";
 getch();
 exit(1);
}
opc = b.MenuMain();
if(opc == 3){
 exit(1);
}
 b.Pedir(num, numel);
 switch(opc){
  case 1: system("cls");
  gotoxy(25,5);
  cout<<"Numero a buscar: ";
  cin>>clave;
  int res1=b.BusquedaLineal(num,numel,clave);
  if(res1==-1){
gotoxy(25,6);
cout<<"El Numero no se encontro en la lista.";
getch();
  }
  else{
gotoxy(25,6);
cout<<"El Numero si se encontro en la ubicacion del indice: "<<res1+1;
getch();
  }
  break;

  case 2: system("cls");
  gotoxy(25,5);
  cout<<"Numero a buscar: ";
  cin>>clave;
  int res2=b.BusquedaBinaria(num,numel,clave);
  if(res2==-1){
gotoxy(25,8);
cout<<"El Numero no se encontro en la lista.";
getch();
  }
  else{
gotoxy(25,8);
cout<<"El numero si se encontro en la ubicacion del indice: "<<res2+1;
getch();
  }
  break;
 }
  gotoxy(25,13);
  cout<<"Desea Introducir mas datos (s/n): ";
  cin>>OPC;
   }while(OPC!='n');
   system("cls");
}

  int main(void)
  {
   int opc;
   system("cls");
   gotoxy(30,8);  cout<<"Ordenacion y Busqueda.";
   gotoxy(30,10); cout<<"1. Tipos de Ordenaciones.";
   gotoxy(30,11); cout<<"2. Tipos de Busqueda.";
   gotoxy(30,12); cout<<"3. Salir.";
   gotoxy(30,14); cout<<"Opcion -> ";
   cin>>opc;
   switch(opc){
case 1: Ordenaciones();
break;
case 2: Busquedas();
break;
case 3: exit(0);
system("cls");
break;
   }
   return 0;
}

Todo codigos

domingo, 19 de mayo de 2013

Ejemplo de programa en c de Estadísticas,moda ,promedio, varianza y algunos mas


Estadistcas en c


MEDIDAS DE TENDENCIA CENTRAL
#include<iostream.h>
#include<math.h>
  #define tam 100
  #include<conio.h>
  #include<stdio.h>
  #include<string.h>
  #define MaxPass 10

int i,j=0,dat[100],m;
char b[250];
float geometrica(float f[],float ve[], int M,int m)
{int tt,tti,g=0,gi=0;
float gg=0,b,ggi=0,bi;
float  geo=0,go=0;
float   or,ord;

for(i=0;i<M;i++)
{

geo=f[i]*log10(ve[i]);
g=int(geo*1000);
gg=g/10;
b=int(gg+1);

tt=g%10;

if(tt>=5)
{geo=b/100;

}else
geo=gg/100;
go+=geo;}
or=go/m;
gi=int(or*1000);
ggi=gi/10;
bi=int(ggi+1);

tti=gi%10;
if(tti>=5)
{or=bi/100;

}else
or=ggi/100;
ord=pow(10,or);
return ord;

}

void frecuencia(int Li[], int Ls[], float f[], int dat[], int m,int M)
{
for(i=0;i<M;i++)
{for(j=0;j<m;j++)
{ if(i!=M-1)
{
if(dat[j]>=Li[i]&&dat[j]<Ls[i])
{f[i]+=1;}
}else
if(dat[j]>=Li[i]&&dat[j]<=Ls[i])
{f[i]+=1;}
}
}
}

void ingreso()
{
int a=0;
  do{
  cout<<"Ingrese numero de datos::";
  cin>>m;
  }while(m<1||m>tam);
clrscr();
cout<<"Ingrese los\""<<m<<"\"datos:\n";
cout<<"-----------------";
for(i=1;i<m;i++)
{
for(j=0;j<15;j++)
{

gotoxy(5*j,2*i);
cin>>dat[a];
a++;
if(a==m){j=15;i=m;
}

}

}
}

void ordenar()
{ int aux;
for(i=0;i<m-1;i++)
{for(j=i+1;j<m;j++)
if(dat[i]<dat[j])
{aux=dat[i];
dat[i]=dat[j];
dat[j]=aux;
}
}
}


void titulo ()
{
cout<<"Titulo:\n";

gets (b);
clrscr();
}

void main()
{
float prom=0,d,s=0,ar=0,de,mediana;
float ni,nig,x,f[100],Fi=0,ve[100];
float Med[20],Me,moda,z,v,bb;
int poss,p,pos,d1,d2,Ls[100],c,aux,r,n,t=0,Li[100],M;
char op,Password[MaxPass],LetPass;

clrscr();
cout<<"\n\n ALUMNO:MALPARTIDA AREVALO NIGEL R:***\n";
cout<<"\n\n     MEDIDAS DE TENDENCIA CENTRAL\n";
cout<<"\n      ******** MENU ******************\n";
cout<<"      *                           *\n";
cout<<"      *   1. MEDIDAS DE RESUMEN     *\n";
cout<<"      * ==>La mediana         *\n";
cout<<"      * ==>La moda                 *\n";
cout<<"      * ==>El promedio             *\n";
cout<<"      * ==>La varianza               *\n";
cout<<"      * ==>La desviacion estandar    *\n";
cout<<"      * ==>La media armonica       *\n";
cout<<"      * ==>El coheficiente de variacion*\n";
cout<<"      * ==>Media Geometrica*\n";
cout<<"      **********************\n";
cout<<"      *                    *\n";
cout<<"      *   OPCION :         *\n";
cout<<"      *                    *\n";
cout<<"      **********************\n";
//djnigel_99
gotoxy(20,21);op = getch();
clrscr();
cout<<"INGRESE CONTRASEÑA:\n";
cout<<"-------------------\n";
do
{
LetPass = getch();
if ( LetPass != '\r')
{

{Password[j] = LetPass;
cout<<"*";
Password[j+1] = '\0';
j++;
}
}
}while(LetPass != '\r' && j< MaxPass);

if(strcmp(Password,"20110578")==0)

{
cout<<endl;
cout<<"Acceso permitido al Sistema\n";
cout<<"INGRESE DATOS MAXIMO HASTA 100\n";
cout<<"------------------------------\n";
ingreso();





//ingreso();
ordenar();

n=dat[m-1];
r=dat[0]-n;

M=1+3.3*log10(m);
c=r/M;

clrscr();
ni=n+c;
nig=n;
t=n-c;
titulo();
cout<<"TITULO:"<<endl;
cout<<b;
//cout<<"-----------";
gotoxy(1,6);cout<<"[Li----";
gotoxy(7,6);cout<<"Ls>";
gotoxy(12,6);cout<<"xi";
gotoxy(18,6);cout<<"fi";
gotoxy(23,6);cout<<"Fi";
gotoxy(29,6);cout<<"hi";
gotoxy(39,6);cout<<"Hi";
gotoxy(49,6);cout<<"hi%";
gotoxy(59,6);cout<<"Hi%";

for(i=0;i<M;i++)
{
t+=c;
Li[i]=t;
gotoxy(1,7+i);
cout<<"["<<t<<"----";
f[i]=0;
n+=c;
Ls[i]=n;
gotoxy(7,7+i);
if(i!=M-1)
cout<<n<<">";
else cout<<n<<"]";
}


x=(ni+nig)/2;
for(i=0;i<M;i++)
{

ve[i]=x;
gotoxy(12,7+i);
cout<<x;
x+=c;
}//segunda parte

frecuencia(Li,Ls,f,dat,m,M);

for(i=0;i<M;i++)
{
gotoxy(18,7+i);
cout<<f[i];
Fi+=f[i];
Med[i]=Fi;//para la medinaa
gotoxy(23,7+i);cout<<Fi;

prom+=ve[i]*f[i];
}
//media geometrica

bb=geometrica(f,ve,M,m);
Me=m/2;
d=prom/m;
cout<<endl<<"\t         "<<m   <<"      1   100";

Fi=0;
for(i=0;i<M;i++)
{
gotoxy(29,7+i);cout<<f[i]/m;
Fi+=f[i]/m;
gotoxy(39,7+i);cout<<Fi;
gotoxy(49,7+i);cout<<(f[i]/m)*100;
gotoxy(59,7+i);cout<<Fi*100;

s+=pow(ve[i]-d,2)*f[i];
ar+=f[i]/ve[i];


}

de=sqrt(s/(m-1));


for(i=0;i<M;i++)
{if(Me==Med[i])
{pos=i;
poss=0;
}else
if(Me>Med[i])
p=i;
poss=1;
}
if(poss==1)
{d1=f[p+1]-f[p];d2=f[p+1]-f[p+2];
z=d1+d2;
v=d1/z;
mediana=Li[p+1]+((Me-Med[p])/f[p+1])*c;
moda=Li[p+1]+(v*c);
}else
mediana=Med[pos];

cout<<"\n\n\n";
cout<<"La mediana es:"<<mediana<<"\n";
cout<<"La moda es:"<<moda<<"                           **";cout<<"DATO MAYOR="<<dat[0]<<"\n";
cout<<"El promedio es:"<<d<<"                       **";cout<<"DATO MENOR="<<dat[m-1]<<"\n";
cout<<"La varianza muestral es:"<<(s/(m-1))<<"         **";cout<<"RANGO(R)="<<r<<"\n";
cout<<"La desviacion estandar es:"<<de<<"            **";cout<<"NUMERO DE INTERVALOS(m)="<<M<<"\n";
cout<<"La media armonica es:"<<m/ar<<"             **";cout<<"AMPLITUD(C)="<<c<<"\n";
cout<<"El coheficiente de variacion es:"<<de/d*100<<"%\n";
cout<<"La media geometrica es:"<<bb<<endl;
cout<<endl;
cout<<"MUCHAS GRACIAS POR USAR MI PROGRAMA";
}
if(strcmp(Password,"20110578")!=0)
{cout<<endl;
cout<<"Error...Contraseña Incorrecta\n";
cout<<"Por favor intente nuevamente";
}
}

Programa en c primos


#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
   cout<<"Numeros primos entre 20 y 1000:"<<endl;

   int i;
   for(int n=23; n<100; n++)
   {
      for(i=2; n%i; i++);
      if(i==n) cout<<setw(4)<<n;
   }
   cout<<endl;
   cin.get();
   return 0;
}

codigos

jueves, 16 de mayo de 2013

Algoritmo para permutaciones en C, C++ codigos gratis



Algoritmos para grafos isomorfos y permutación de números en C



#include<iostream>
using std::cout;
using std::cin;
using std::endl;

#include <stdio.h>
#include <string.h>
#include <stdlib.h>



void permutaciones ( int s[]  , int );
void print( int s[], int n );
void swap( int *i, int *j );
int factorial( int );


int main () {

int n , r, num_comb ;
cin>>n;
cin>>r;

int j,val_max;

int s[ 6 ] , i, m;

num_comb = factorial(n) / (factorial(n-r)*factorial(r)) ;

   for ( i = 1 ; i<=r ; i++ )
      s[i] = i;
   permutaciones( s, r );


for ( i = 2 ; i<= num_comb ; i++){
m=r;
val_max = n ;
while ( s [m] == val_max ){
// Encuentra el elemento más a la derecha
// que no tiene su valor máximo.
m= m-1;
val_max = val_max - 1 ;
}
// Se incrementa el elemento más a la derecha

s[m] = s [ m ] +1  ;
// el resto de los elementos son sucesores de X[m]
for ( j = m + 1 ; j <= r ; j++ )
s [j] = s [j-1] + 1;

permutaciones( s, r );
}
}


void permutaciones ( int s[] , int n)
{
   int i, nfact, m, k, p, q;
   // Copia el arreglo
   int x[ 6 ] ;
   for ( i=0 ; i < 6 ; i++){
    x[i] = s [i] ;
   }

nfact = factorial (n);

   print( s, n );

   for ( i = 2; i <= nfact; i++ ) {
      m = n - 1;
      while ( s[ m ] > s[ m + 1 ] )
         m--;
      k = n;
      while ( s[ m ] > s[ k ] )
         k--;
      swap( &s[ m ], &s[ k ] );
      p = m + 1;
      q = n;
      while ( p < q ) {
         swap( &s[ p ], &s[ q ] );
         p++;
         q--;
      }
      print( s, n );
   }
   for ( i=0 ; i < 6 ; i++){
    s[i] = x [i] ;
   }

}


int factorial( int n ) {
if (n==0)
return 1;
else
return n*factorial(n-1);

}



void print( int s[], int n )
{
   int i;

   for ( i = 1; i <= n; i++ )
      printf( "%d ", s[ i ] );
   putchar( '\n' );
}




void swap( int *i, int *j )
{
   int temp = *i;
   *i = *j;
   *j = temp;
}


Codigo


Como aprender a programar en c++ muy fácil solo tienes que tocar y tocar todo el codigo libre que encuentres y ver como funciona 






Programa para invertir numeros en c


Función en c para cojer un numero cualquiera e invertirlo

#include<iostream>
using namespace std;

int main()
{
long int nume;
long int inve;

cout<<"Numero: ";
cin>>nume;

for(int cifr=inve=0; nume; cifr=nume%10, inve=inve*10+cifr, nume/=10 );
cout<<"Inverso: "<<inve<<endl;
   
    cin.ignore();
    cin.get();
    return 0;
}

Codigo

lunes, 13 de mayo de 2013

Crear ventanas en c


#include <windows.h>
 ISCSkin3 *m_pSkin = new ISCSkin3;
// The code in CODE SECTION has to be called in InitInstance() function,
// before creation of a main window
/* ———— Begin of CODE SECTION ————- */

CoInitialize(NULL);
m_pSkin->CreateDispatch(”SkinCrafter.SCSkin3?);
m_pSkin->InitLicenKeys(”SKINCRAFTER”,”SKINCRAFTER.COM”,
“support@skincrafter.com”,”DEMOSKINCRAFTERLICENCE”);
m_pSkin->DefineLanguage(0);
m_pSkin->InitDecoration(1);

/* ———— End of CODE SECTION ————- */

m_pSkin->LoadSkinFromFile(”D:\\Skin.skf”);
m_pSkin->ApplySkin();

const char g_szClassName[] = "myWindowClass";

// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;

//Step 1: Registering the Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

// Step 2: Creating the Window
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"The title of my window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);

if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

// Step 3: The Message Loop
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}

sábado, 4 de mayo de 2013

Programacion en C y C++ ejemplos programas y codigos gratis


Hola amigos amantes de los codigos y la programacion este Blog lo he abierto para quienes como yo tenemos la ansias de aprender tengo años recopilando codigos de programas ejemplos horas y horas buscando aveces es frustante no conseguir lo que buscas por eso en este Blog de programacion ire subiendo todos los codigos que he recojido a lo largo de mi busqueda por la red de estos programas
espero que les sea de utilidad.

Empezare con C y C++ por ser los mas usado en programacion ,abajo os pongo un largo listado de lo que tengo e ire poniendo cada dia un codigo o lo que me alcanse el tiempo, el que quiera puede pedirme lo que nesecita en los comentarios y tratare de complacerlo lo que no hago es resolver los problemas que tengais a si que no me los pidais y eso es por falta de tiempo,despues ire subiendo para que los
descarges otros codigos de Php Foxpro y otros.




tipos datos c
tipos variables c
ejemplos programacion en c
cifras romanas conversor
calcular factorial
pasar binario decimal
software etiquetas
resta binario
conversión binario a decimal
switch programacion en c
maximo comun multiple
sumar raices
contador gratis
binari a decimal
programacion en c funciones
tabla números primos
programa c numeros primos
operaciones con raíces
programa numeros aleatorios
contadores gratis
estructura programa c
leer codigo barras
programacion en c matrices
programación con c
binarios a decimal
programacion en c vectores
mínimo común multiplo
decimal a binari
sumar binarios
tabla numeros binarios
programa numeros primos
calcular los porcentajes
programacion en php
convertir binario en decimal
estructuras programacion c
software matemáticas
restar binarios
abrir ficheros
c programación
leer ficheros sumar y restar raices
programas lenguaje c
numeros aleatorios
codigo binario a decimal
conversor hexadecimal a binario
maximo comun multiplo y minimo comun divisor


Saludos
Codigo



Trabajar con numeros complejos programa en c gratis todocodigos


Numeros complejos programa en c para trabajar con numeros


#if !defined( __COMPLEJO_H )
#include "complejo.h"
#endif

#include <dos.h> //para MK_FP y pokeb
#include <mem.h> //para memset
#include <stdio.h>
#include <iostream>
#include <stdlib.h>//Libreria para usar la funcion al final del codigo system();
#include <fstream
#include conio.h
#include <fstream>
#include <windows.h>                  
#include <time.h>
#include <math.h>


class CFractal{
 private:
  unsigned char *Video;
 public:
   CFractal();
  ~CFractal(){ }
   void InitMode13h();
   void CloseMode13h();
   void Cleardevice();
   void PutPixel(int x,int y,unsigned char color);
   void Mandelbrot();
};
CFractal::CFractal()
{
 Video=(unsigned char*)MK_FP(0xA000,0x0000);
}

void CFractal::InitMode13h()
{
  asm{
   mov ah,0
   mov al,0x13
   int 0x10
  }
}

void CFractal::CloseMode13h()
{
 asm{
  mov ah,0
  mov al,0x03
  int 0x10
 }
}

void CFractal::PutPixel(int x,int y,unsigned char color)
{
  pokeb(0xA000,y*320+x,color);
}

void CFractal::Cleardevice(void)
{
  memset(Video,0,64000);
}

void CFractal::Mandelbrot(void)
{
  //coordenadas del plando complejo
  double REALMIN=-2,REALMAX=1,IMAGMIN=-1.2,IMAGMAX=1.2;
  double DIVERGE=4;   //valor de divergencia
  const double MAX=256; //iteracion maxima
  int Contador;                              //Col  Ren
  InitMode13h();  //iniciamos el modo grafico 13h (320*200) con 256 colores
  Cleardevice(); //limpiamos la pantalla
  //proceso que dibuja el fractal
 for(int i=0;i<320;i++)
for(int j=0;j<200;j++){
//asignamos a C las coordenadas del plano complejo
Complejo C((REALMAX-REALMIN)/320*i+REALMIN,
IMAGMAX-(IMAGMAX-IMAGMIN)/200*j);
Contador=0; //inicializamos el contador
Complejo Z(0,0);//iniciamos Z=0+0i
do{
  Z=Z*Z+C;//ecuacion Z=Zý+C
  Contador++;//incrementamos el contador
  if(Norm(Z)>DIVERGE)break;
}while(Contador<MAX);
  if(Contador!=MAX)
PutPixel(i,j,Contador+40);
}
  getch();
  CloseMode13h();
  gotoxy(31,8);
  cout <<"<< Fin del demo >>";
  gotoxy(26,10);
  cout <<"<< Fractal de Mandelbrot >>";
  getch();
}


int main(void)
{
 Complejo s,r,m,d;
 float a_im,a_re,b_im,b_re;
 system("cls");
 gotoxy(15,2);
 cout<<" Programa de demostracion para la Clase Complejo.";
 gotoxy(27,4);
 cout<<" Operaciones Basicas.";
 gotoxy(27,6);
 cout<<" Suma. ";
 gotoxy(27,7);
 cout<<" Resta. ";
 gotoxy(27,8);
 cout<<" Multiplicacion. ";
 gotoxy(27,9);
 cout<<" Division. ";

 cout<<endl;
 cout<<"\nPrimer numero real: ";     cin>>a_re;
 cout<<"Primer numero imaginario: "; cin>>a_im;
 Complejo a(a_re,a_im);
 cout<<a;
 cout<<"\n\nSegundo numero real: ";   cin>>b_re;
 cout<<"Segundo numero imaginario: "; cin>>b_im;
 Complejo b(b_re,b_im);
 cout<<b;

 s=a+b;
 cout<<"\n\nLa suma de estos dos numeros complejos es: ";
 cout<<s;

 r=a-b;
 cout<<"\nLa resta de estos dos numero complejos es: ";
 cout<<r;

 m=MulComplejo(a,b);
 cout<<"\nLa multiplicacion de estos dos numero complejos es: ";
 cout<<m;

 d=a/b;
 cout<<"\nLa division de estos dos numero complejos es: ";
 cout<<d;
 getch();

 system("cls");
 Complejo raiz,conj,_abs,mod,rec,inv,NORM;


 gotoxy(15,2);
 cout<<" Programa de demostracion para la Clase Complejo.";
 gotoxy(27,4);
 cout<<" Operaciones Basicas.";
 gotoxy(27,6);
 cout<<" Raiz. ";
 gotoxy(27,7);
 cout<<" Conjugado. ";
 gotoxy(27,8);
 cout<<" Valor Absoluto. ";
 gotoxy(27,9);
 cout<<" Modulo. ";
 gotoxy(27,10);
 cout<<" Inverso. ";

 cout<<endl;
 cout<<"\nIntroduzca un numero real: ";    cin>>a_re;
 cout<<"Introduza un numero imaginario: "; cin>>a_im;
 Complejo z(a_re,a_im);
 cout<<z;

 NORM=Norm(z);
 cout<<endl;
 cout<<"\nLa norma es: ";
 cout<<NORM;

 raiz=RaizComplejo(z);
 cout<<"\nLa raiz es: ";
 cout<<raiz;

 conj=ConjugadoComplejo(z);
 cout<<"\nSu conjugado es: ";
 cout<<conj;

 _abs=AbsComplejo(z);
 cout<<"\nSu valor absoluto: ";
 cout<<_abs;

 mod=Modulo(z);
 cout<<"\nSu Modulo es: ";
 cout<<mod;

 inv=InvComplejo(z);
 cout<<"\nSu inverso es: ";
 cout<<inv;
 getch();

 system("cls");
 gotoxy(15,2);
 cout<<" Programa de demostracion para la Clase Complejo.";
 gotoxy(27,4);
 cout<<" Operaciones Basicas.";
 gotoxy(27,6);
 cout<<" Forma Rectangular. ";
 gotoxy(27,7);
 cout<<" Forma Polar. ";

 rec=Rectangular(2.0,20.0);
 cout<<endl;
 cout<<"\nEn su Forma Rectangular ";
 cout<<"\nde r=2.0 y de ang=20.0 es: ";
 cout<<rec;

 Complejo pol;
 Complejo Z(4,-5);
 cout<<endl;
 cout<<"\nEn su Forma Polar "
<<"de 4-5i es: ";
 pol.Polar(Z);

 const int NUMEL=5;
 Complejo nums[NUMEL]={1,2,3,4,6};
 Complejo norm;
 norm=Norma(nums,5);
 cout<<"La norma del vector 1,2,3,4,6 es: ";
 cout<<norm;
 getch();
 CFractal Fract;
 system("cls");
 cout<<endl;
 cout<<endl;
 cout<<endl;
 cout<<endl;
 cout<<endl;
 cout<<"\n\n\n\nQue mejor que terminar este demo de los"
<<" numeros complejos con aplicacion de"
<<"\nestos mismos. Se trata de un fractal"
<<" denominado conjunto de mandelbrot que"
<<"\nutiliza la siguiente formula Z = Zý * C"
<<" donde Z y C son numeros complejos en"
<<"\nnuestro caso tenemos Z=Z+Zi y C = C+Ci"
<<" la condicion inicial es Z=0+0i y a C "
<<"\nse asignan todos los puntos del plano"
<<" complejo.";
  getch();
  Fract.Mandelbrot();
  return 0;
}


Codigos

Como hacer programa de suma y resta en C códigos libres ejemplos


Programa de suma y resta en C  todocodigos


#include <iostream>


using std::cout;
using std::cin;
using std:: endl;

/***** Funcion Respuesta de Sumar */
 int Add (int primero,int segundo)
 {
cout << "Los numeros ingresados son: " << primero << " y " << segundo << endl;
cin.get();
return (primero + segundo);
 }

 /***** Funcion Respuesta de restar */

 int Rest (int primerorest, int segundorest)
 {
cout << "Los numeros ingresados son: " << primerorest << " y " << segundorest << endl;
cin.get();
return (primerorest - segundorest);
 }

 /***** Codigo principal del Programa */

 int main()
{
cout << "Bienvenido a has tus operaciones\n";
int respuesta;
cout << "Si quieres sumar escribi: 1\n";
cout << "si queres restar escribi: 2\n";
cin >> respuesta;
cout << "Tu respuesta a sido:\t" << respuesta << endl;

enum Operaciones {sumar = 1,restar};

Operaciones proceder;
proceder = sumar;

if (sumar)
{
cout << "Escribe dos numeros para sumar, recuerda dejar un espacio separado del otro\n";
int a,b,c;
   cout << "Ejemplo: 12 (espacio) 44.";
cin >> a;
cin >> b;
c=Add (a,b);
cout << "El resultado de la suma es: " << c;
cin.get();
return 0;
}

else
{
cout << "Escribe dos numeros para restar, recuerda dejar un espacio separado del otro\n";
int d,e,f;
cout << "Ejemplo : 12 (espacio) 44.";
cin >> d;
cin >> e;
f=Rest (d,e);
cout << "El resultado de la suma es: " << f;
cin.get();
return 0;
}


Todo los codigos son recopilados de la red la mayoria los he probado y funcionan

Codigo


Permutaciones de x numeros en C TodoCodigos gratis


Permutaciones de numeros en c

// Permutation of n numbers
// Permutacion de n numeros
// Copyright (C) <2010> <Minguez>
// Contact: 6.minguez@gmail.com

//      This program is free software; you can redistribute it and/or modify
//      it under the terms of the GNU General Public License as published by
//      the Free Software Foundation; either version 3 of the License, or
//      (at your option) any later version.
//    
//      This program is distributed in the hope that it will be useful,
//      but WITHOUT ANY WARRANTY; without even the implied warranty of
//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//      GNU General Public License for more details.
//    
//      You should have received a copy of the GNU General Public License
//      along with this program; If not, see <http://www.gnu.org/licenses/>

//Este programa realiza todas las permutaciones posibles de n numeros (1, 2, 3, ..., n)
//Donde n es un numeros del 1 al MAX (50)
#include <stdio.h>
#define MAX 50

int main ()
{
//definicion de variables
char n,                  //Cantidad de numeros a permutar
lista[MAX+1],            //Lista con los numeros a permutar
cont[MAX],               //Contador para calcular que permutaciones se hacen
cont1, cont2, cont3,     //Contadores para los for
buf;                     //Para realizar la permutacion de dos numeros
   

//Texto explicando al usuario lo que hace el programa
printf("\nThis program do all the permutations of n numbers (1, 2, 3, ..., n)\n");
printf("Where n is a natural number between 1 and MAX (50)\n\n");
printf("Este programa realiza todas las permutaciones de n numeros natuarales (1, 2, 3, ..., n)\n");
printf("Donde n es un numeros del 1 al MAX (50)\n\n");

//Lee la cantidad de numeros a permutar y comprueba que n esta entre 1 y MAX
printf("Write the quantity of numbers to permutate\n");
printf ("Introduzca la cantidad de numeros a permutar\n");
scanf("%d", &n);
printf("\n");
for(;n<1 || n>MAX;)
{
fflush (stdin);
printf("ERROR: Write the quantity of numbers to permutate \n\t(a natural number bettween 1 and MAX (50)\n");
printf ("ERROR: Introduzca la cantidad de numeros a permutar\n\t(un numero natural entre 1 y MAX (50)\n");
scanf("%d", &n);
printf("\n");
}

n=n+1;

//Crea la tabla para los n numeros
for (lista[0]=0,cont1=1;cont1<n;cont1++)
{
lista[(int) cont1]= lista[(int) cont1-1]+1;
}

//Crea la tabla del contador
for (cont1=0;cont1<n-1;cont1++)
{
cont[(int) cont1]=0;
}

//Escribe la permutacion de numeros inicial
for(cont1=1;cont1<n;cont1++)
{
if(lista[(int) cont1]<10 && n>10)
{
printf("0%d ", lista[(int) cont1]);
}
else
{
printf("%d ", lista[(int) cont1]);
}
}
printf("\n");

//Algoritmo que permuta los numeros y muestra todas las combinaciones menos la inicial
while (cont[0]==0)
{
for (cont1=n-2;cont1>=0;cont1--)
{
if (cont[(int) cont1]<n-cont1-1)
{
cont[(int) cont1]++;

//permuta dos numeros y muestra los numeros permutados
if(cont[0]==0)
{  
//Permuta dos numeros de la lista                
buf=lista[(int) cont1];
lista[(int) cont1]=lista[ (int)cont1+1];
lista[cont1+1]=buf;

//Escribe la permutacion resultante
for(cont2=1;cont2<n;cont2++)
{
if(lista[(int) cont2]<10 && n>10)
{
printf("0%d ", lista[(int) cont2]);
}
else
{
printf("%d ", lista[(int) cont2]);
}
}
printf("\n");
}

//Limpia la tabla del contador dejando una sola cifra distinta de 0
for (cont2=n-2;cont2>cont1;cont2--)
{
cont[(int) cont2]=0;
}

//Solucion para poner los numeros en orden siguiente
if (cont[n-2]==1 && cont[n-3]==2)
{
//Calcula el numero de elementos a permutar
for (cont2=2;cont[n-cont2-2]==cont2+1;cont2++);

//Permuta los elementos
for (cont3=1;cont3<=cont2/2;cont3++)
{
buf=lista[n-cont2+cont3-1];
lista[n-cont2+cont3-1]=lista[n-cont3];
lista[n-cont3]=buf;
}
}
break;
}
}
}
fflush (stdin);
getchar();
return 0;
}


Codigos C