Tablica wyrazów

0

Proszę o pomoc!
Mam wypełnic tablice 5-literowymi wyrazami o wylosowanym skladzie.No więc treść tego co napisalem:
program tablica_wyrazow;
var tab:array [1..10] of string;
i:integer;
procedure wyraz;
var j:integer;
function losujLitere:char;
begin
Randomize;
losujLitere:=chr( ord('a') + random(26) );
end;
begin
for j:=1 to 8 do losujLitere;
end;

begin
Randomize;
for i:=1 to 10 do begin
tab[i]:=wyraz;
end;
for i:=10 to 1 do begin
write(tab[i]);
end;
readln;
end.
Niestety kompilator wskazuje na błąd przy tab[i]:=wyraz; pisząc że:
19 / 9 tablic~1.pas
Error: Incompatible types: got "VOID" expected "SHORTSTRING"
Nie wiem jak sobie z tym poradzić :(

0

Jeżeli przypisujesz tablicy stringów procedurę wyraz to nic dziwnego że kompilator ma zastrzeżenia. Ja by to zrobił tak:

procedure Generuj;

  function GenerujWyraz: String;
  var
    I : Integer;
  begin
    Result := '';
    for I := 0 to 4 do
      Result := Result + Chr(Ord('a') + Random(26));
  end;

var
  tab : array[1..10] of String;
  I : Integer;
begin
  Randomize;
  for I := 1 to 10 do
    tab[I] := GenerujWyraz;
end;
0

Jestem początkującym programistą i nie wiem jak inaczej da się to napisać...Czy Ktoś mógłby minimalnie zmodyfikowac kod by wszystko działalo dobrze.ja niestety nie mam pomysłu :-(

0

no wiesz, ciężko żeby procedura zwracała wynik. kompilator chciał funkcji, a nie procedury.
aha - robisz cokolwiek bezsensowne wcięcia.

function losujLitere:char;
begin
  losujLitere:=chr( ord('a') + random(26) );
end;

function wyraz : string;
var 
  j : integer;
begin
  result := '';
  for j:=1 to 8 do retult := reult + losujLitere;
end;

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