Algorytmy zapobiegania kolizji metodą łańcuchów połączonych z obszarem nadmiarowym i bez obszaru nad

0

Moim zadaniem jest napisanie programu jak w temacie :) Stworzyłem program, ale nie jestem pewny jego funkcjonalności, a szczególnie działania tej metody, której procedure wstawiłem poniżej. Nie wstawiałem całego kodu, ale procedurę, z którą mam najwięcej problemów. Mógłby mi ktoś powiedzie czy całość jest dobrze i co dokładnie dzieje się we fragmencie kodu, który jest pogrubiony? Z góry dziękuję, pozdrawiam.

program Zapobieganie_kolizji;

uses
  crt;

label
  etykieta, etykieta2;

type
  element = record
    liczba: Integer;
    indeks: Integer;
  end;
  tab  = array [0..800] of Integer;
  tabl = array [0..159] of element;

var
  ilo: Integer;
  dane: tab;
  tablica2: tabl;
  n, i, j, liczba, skolizji, kolizje: Word;
  k: Integer;
  klucz, piwnica: Integer;
  z, p: Byte;
  antek: Integer;
 
procedure Wstawbeznadmiar(var t: tabl; a: Integer; var skolizji: Word; liczba: Word; var il: Integer);
// wstawianie element˘w metodĄ aäcuch˘w po. bez obszaru nadmiarowego
var
  kl, l: Integer;
  k,j,i : Integer;
begin
  begin
    il := 0;
    k := a mod liczba; //zwraca wartosc indeksu pod ktorym powinna zostac zapisana liczba

    if t[k].liczba = -1 then
      t[k].liczba := a //zapisuje w przypadku braku kolizji
    else
    begin
      for j := 0 to high(t) do
      begin
        if t[(k + j) mod liczba].liczba = -1 then
        begin
          t[(k + j) mod liczba].liczba := a;
          break;
        end;
      end;

      l := k;
      kl := k;

      if t[k].indeks <> -1 then
      begin
        repeat
          il := il + 1;
          l := k;
          k := t[k].indeks;
        until (k = -1);

        t[l].indeks := (kl + j) mod liczba;
      end
      else
      begin
        il := 1;
        t[k].indeks := (l + j) mod liczba;
      end;

      skolizji := skolizji + il; //zwraca laczna sume kolizji
    end;
  end;
end;

sformatowanie kodu - furious programming

0

teraz ok?

0

Nie jeszcze nie ok. Jeszcze to: Formatowanie kodu w Delphi

A jak nie chcesz samemu to zapoznaj się z tym: http://jedicodeformat.sourceforge.net

0

zastosowałem się chyba do wszystkich zasad. Czy teraz mogę otrzymać pomoc?

0

Kod nadal wygląda nieciekawie. Formatowanie jest takie jakieś nijakie. Jakby go nie byłó. Posiłkuj się tym, jeżeli nie umiesz sam sformatować porządnie: http://olesio.eu/jcf

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