Obliczanie Modalnej :/

0

Witam. Mam za zadanie napisać w pascalu program statystyczny, który będzie obliczał Modalną podanego zbioru liczbowego (Modalna- Wskazuje najczęściej występującą daną w zbiorze. Zbiór może nie mieć modalnej, gdy wszystkie elementy występują tylko raz, ale może mieć jedną lub wiele.). Nie mam pojęcia jakie algorytm zastosować i w ogóle jak to zrobić :/

Proszę o pomoc. Z góry thx

0

witam, przydalaby sie w tym przypadku procedura tworzaca histogram - czyli liczaca czestosc wystepowania danej liczby. Napisalem taka procedure, mozesz jej uzyc jesli nie wyda ci sie zbyt ort!. procedura ta liczy ile razy jaka wartosc pojawila sie w tablicy jednowymiarowej.
w tej procedurze tablica musi byc numerowana od 1 !!! umiejetnie wykorzystujac moja procedure uzyskasz wszystkie potrzebne dane. powodzenia


type
  TCoGdzie = record Value : extended; //liczba w tablicy
                              Count : Byte;      //czestosc jej wystepowania
  end;
  private
       Ile          : array of TCoGdzie;
procedure Histogram(n: integer; var Eigenvalues: TEigenvalues);
var
TEigenvalues = Array[1..odpowiedni_rozmiar] of extended;
Eigenvalues : TEigenvalues; 
implementation

Procedure TForm1.Histogram(n: integer; var Eigenvalues: TEigenvalues);
var suma, k, m, licznik: integer;
i,j:byte;
begin
Setlength(Ile, 0);
licznik := 0;
k := 0;

for i := 1 to n do //n to ilosc elementow w tablicy, procedura jest przystosowana do mojego programu wiec gdyby cos nie dzialalo to prosze pisac, mozna tu wstawic to co nas interesuje
begin
    suma := 0;
    for m := 0 to High(Ile) do suma := suma + ile[m].Count;  
    if (i <= suma) then continue else
    licznik := 0;
    for j := i to n do
      if  (Eigenvalues[i] = Eigenvalues[j]) then
      begin
      inc(licznik);
      setlength(Ile, k+1);
      ile[k].Value := Eigenvalues[i];
      ile[k].Count := licznik;
      end else break;
    inc(k);
end;

  memo1.Lines.Add('histogram');
 for i := low(ile) to High(ile) do     memo1.Lines.Add('Value: +floattostr(ile[i].Value)+' ,Count: ' +inttostr(ile[i].Count));
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1