Apostar y ganar

Click Now!

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