Delphi - Calculo de la Moda

   
Vista:

Calculo de la Moda

Publicado por JuanchoDev (10 intervenciones) el 17/04/2009 08:48:04
Hola...alguno se le ocurre algun algoritmo facil de implementar con delphi para calcular la moda...?
la moda es en una serie numerica el valor que se repite mas veces, por ejemplo

2,2,2,3,3,3,6,6,7,7,7,7,7,7,7

en este caso es 7...

estaba pensando en algo cargado en un vector o en un listbox...

cualquier ayuda sera infinitamente agradecida
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Calculo de la Moda

Publicado por E.T. (1105 intervenciones) el 17/04/2009 17:25:29
Haber, como vas a ingresar los datos en el programa?, uno a uno, todos en un edit o memo?, luego los datos van a ser ingresados en orden o aleatoriamente??
de esto depende que tan sencillo o complicado es el proceso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calculo de la Moda

Publicado por JuanchoDev (10 intervenciones) el 18/04/2009 07:44:16
todos los datos estaran cargados en un listbox luego los ordene con el el metodo listbox.sort...aqui es donde me trabo ya que no se como recorrer este "vector", como compararlo, como contabilizar las coincidencias....en fin...el algoritmo...cualquier asistencia sera agradecida...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calculo de la Moda

Publicado por E.T. (1105 intervenciones) el 18/04/2009 20:59:35
Este sería el proceso

procedure TForm1.Button1Click(Sender: TObject);
var moda:array of array [1..2] of integer;
i, j, k:integer;
val, val2:string;
flag:boolean;
begin
ListBox1.Sorted:=true;
flag:=false;
i:=0;
while not(flag) do begin
val:=ListBox1.Items[i];
inc(i);
j:=1;
while (i<ListBox1.Items.Count) and (val = ListBox1.Items[i]) do begin
inc(i);
inc(j);
end;
flag := i=ListBox1.Items.Count;
//dec(i);
if length(moda)>0 then begin
if moda[0,2]=j then begin
SetLength(moda, length(moda)+1);
moda[length(moda)-1,1]:=strtoint(val);
moda[length(moda)-1,2]:=j;
end else if moda[0,2]<j then begin
SetLength(moda, 1);
moda[length(moda)-1,1]:=strtoint(val);
moda[length(moda)-1,2]:=j;
end;
end else begin
SetLength(moda, length(moda)+1);
moda[length(moda)-1,1]:=strtoint(val);
moda[length(moda)-1,2]:=j;
end;
end;
val:='';
for i:=0 to length(moda)-1 do
val:= val + inttostr(moda[i,1])+', ';
ShowMessage('Moda: '+val+' con '+inttostr(moda[0,2])+' incidencias');
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calculo de la Moda

Publicado por JuanchoDev (10 intervenciones) el 18/04/2009 21:42:25
ufff gracias!!! me pasaste un monton de codigo...no lo tomes a mal, de hecho con lo que me pasaste ya estoy como para empezar algo, ahora bien...mi duda empezo a salir a partir de la idea de "series multimodales" es decir esos casos donde varios valores tienen las mismas incidencias..

ponele
2,2,2,2,3,4,5,5,5,5

Es decir 2 y 5 son moda

bueno gracias por lo anterior!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calculo de la Moda

Publicado por E.T. (1105 intervenciones) el 19/04/2009 16:29:25
Bueno eso tambien está tomado en cuenta en el codigo que ya te habia pasado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calculo de la Moda

Publicado por ivette (1 intervención) el 18/11/2009 21:53:13
quiero saber como se calcula la moda en un diagra de flujo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar