Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2011
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Ayuda para elaborar un algoritmo para una tabla de calculo

Hola a todos
Existe un calculo para predecir el sexo del futuro bebe basado en las fechas de nacimiento de los padres, y la renovacion de las gonadas cada 5 años para el padre y cada 4 para la madre, aunque no es 100% exacto (ningun metodo de este tipo lo es), pero es bastante preciso
Para no tener que hacerlo a mano, quise automatizarlo, pero aunque el calculo es bastante facil, el problema se me presento al ubicar las fechas en una tabla

La tabla debe salir algo como esto:

Desde Hasta Sexo
02/05/1971 17/12/1976 Varon
17/12/1976 02/15/1981 Hembra
...

Ahora, el calculo a mano, como lo hago es haciendo una lista con los años de cada uno, sumandodole 4 o 5 respectivamente
Despues comparo la fecha de embarazo con la fecha mas cercana de los dos, y la que mas cerca este (por debajo) es la que determina el sexo

Ejemplo:
Padre Madre
1980 1984
1985 1988
1990 1992
1995 1996

Fecha de embarazo 1991

En este caso 1991 esta mas cerca de 1990 que de 1988 (siempre se compara con fechas pasadas) por tanto sera varon

Pero a mano es facil con solo mirarlo, llevarlo a una tabla es lo complicado
En una tabla no solo sirve para saber el sexo del bebe por nacer, tambien serviria para planificar el sexo de los hijos antes de concebirlos

Hasta ahora esto es lo que hecho, pero solo me salen bien los 2 primeros rangos, a partir del 3ro me salen todos iguales
Por supuesto que este metodo no debe ser el correcto, por eso necesito la ayuda de uds para ver como ubico los rangos en la tabla

Código Delphi [-]

var
  Form1: TForm1;
  Padre, Madre   :array[1..25] of TDateTime;
  Desde, Hasta   :TDateTime;
  Sexo           :string;
 
 
procedure TForm1.BitBtn1Click(Sender: TObject);
 var
   i        :Integer;
   Ap, Am   :Word;
 
begin
  //***** Inicialzar las variables *****
  Padre[1]:=StrToDate(FechPadre.Text); Madre[1]:=StrToDate(FechMadre.Text);
  Ap:=YearOf(Padre[1]);                Am:=YearOf(Madre[1]);
  for i:=2 to 25 do
   begin
//edt1.Text:=edt1.Text+' - '+IntToStr(Ap);
//edt2.Text:=edt2.Text+' - '+IntToStr(Am);
    Ap:=Ap + 5;
    Am:=Am + 4;
    Padre[i]:=RecodeYear(Padre[1], Ap);
    Madre[ i ]:=RecodeYear(Madre[1], Am);
   end;
 
  //***** Llenar la tabla *****
  if YearOf(Padre[1]) < YearOf(Madre[1]) then
    begin
      Desde:=Padre[1];
      Hasta:=Madre[1];
      Listado.Cells[2,1]:='Varón';
    end
  else
    begin
      Desde:=Madre[1];
      Hasta:=Padre[1];
      Listado.Cells[2,1]:='Hembra';
    end;
  Listado.Cells[0,1]:=DateToStr(Desde);
  Listado.Cells[1,1]:=DateToStr(Hasta);
 
  for i:=2 to 25 do
   begin
    Desde:=Hasta;
 
    if Hasta > Padre then
      begin
        Sexo:='Hembra';
      end
    else
      if Hasta < Padre then
        begin
         Sexo:='Varón';
        end
      else
        Sexo:='??';
 
    if Hasta = Madre then
      Hasta:=Padre[i+1]
    else
      Hasta:=Madre[i+1];
 
     Listado.Cells[0,i]:=DateToStr(Desde);
     Listado.Cells[1,i]:=DateToStr(Hasta);
     Listado.Cells[2,i]:=Sexo;
   end;
end;
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda para hacer un algoritmo de busqueda y comparacion JoAnCa Varios 7 23-12-2008 22:55:28
ayuda para elaborar un codigo josi Varios 2 22-09-2008 15:34:02
Recomendación para elaborar diagramas de clases y dominios para mi sitio dark_monk9 PHP 2 25-07-2008 20:18:03
Elaborar Clase Para Validar Un Dato De Un Edit sdiaz1983 Varios 7 17-03-2008 15:16:36


La franja horaria es GMT +2. Ahora son las 18:05:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi