Funkcja mieszająca, jak ją zastosować?

0

Otóż tak, mam taki programik:

Program liniowe;
 uses CRT;
 Type tablica=array [1..20] of integer;
 var t:tablica;
     y:word;

  Procedure ZapiszTablice (var t:tablica);
   var i:byte;
    begin
     Randomize;
     for i:=1 to 20 do
     t[i]:= random (20);
    end;

  Function FindFirst(n:byte; t:tablica; y:integer) : integer;
   var i:byte;
    begin
         i:=1;
     while (i<n) and (y<>t[i]) do
      i:= i+1;
     if y= t[i] then FindFirst:= i
     else FindFirst:= -1;
    end;


  Procedure PiszTab (t:tablica);
   var i:byte;
    begin
     for i:=1 to 20 do
     write (t[i]:4);
     writeln;
    end; 

 begin
  clrscr;
   writeln ('wyszukiwanie elementu w zbiorze nieuporzadkowanym');
   writeln ('podaj liczbe, ktorej szukasz: ');
   readln (y);
   ZapiszTablice(t);
    if FindFirst (20, t, y)= -1
    then writeln ('brak szukanego elementu w zbiorze')
     else writeln ('szukany element wystapil po raz pierwszy na pozycji ', FindFirst (20, t, y)); 
    writeln;
    PiszTab(t);
    readln;
 end. 

Wszystko fajnie kolorowo, śmiga jak ta lala. No ale nie przeszło na sprawdzaniu projektu. Babka powiedziała że powinna tu znajdować się funkcja mieszająca. Próbuje ją jakoś wklepać ale nic mi nie wychodzi. Wykminiłem kilka takich:

procedure wstaw(var t:tablica; x:byte);

begin
     h:=x mod n;
     if t[h]=-1 then t[h]:=x
   else
     while t[h]<>-1 do
           h:=(h+1)mod n;
           t[h]:=x;
end;


procedure wstaw(var t:tablica; x:byte);

begin
     h:=x mod n+1;
     add(t[h],x);
     
end;


function hasz(x:string):byte;

var
   i:integer;
   h:byte;
begin
     h:=0;
     for i:=1 to lenght(x) do
         h:=h odd(x[i]);
     hasz:=h mod n;
end; 

Z góry dzięki za odpowiedź.

Edit. Nie przejmujcie się nazwami procedur, wiem że jest zdeka bajzel ale robię wszystko na gwałt.

1

Ciekawe
czy
jak bym
tak pisał wszystkie
swoje odpowiedzi

na forum
to

ludzie bardzo by

się wkurzali.

A mniej więcej

tak widzę niesformatowany

Kod źródłowy
wklejany

na forum.

0

Bez przesady, chyba nie jest aż tak źle.

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