ďťż

Ładny brzuch

Mam mały problem, czy ktoś może mi pomuc i pdpowiedzic jak to zaimplementowac w Delphi:

Zaimplementuj procedurę generowania losowego zbioru zadań o liczności n. Każde zadanie posiada 4-literową nazwę złożoną z małych liter alfabetu (a-z), przy czym nazwa jest unikalna w zbiorze.

dzieki za jakiekolwiek podpowiedzi



moglbys bardziej sprecyzowac? chcesz w wyniku otrzymac tablice skladajaca sie z tych identyfikatorow? tablica ma liczyc n elementow? to ile w takim razie jest elementow z ktorych nalezy losowac? w jakiej sa postaci?


Mam mały problem, czy  ktoś może mi pomuc i pdpowiedzic jak to zaimplementowac w Delphi:

Zaimplementuj procedurę generowania losowego zbioru zadań o liczności n. Każde zadanie posiada 4-literową nazwę złożoną z małych liter alfabetu (a-z), przy czym nazwa jest unikalna w zbiorze.

dzieki za jakiekolwiek podpowiedzi

generowac na podstawie czego? i zdan, czy zadan?




generowac na podstawie czego? i zdan, czy zadan?

no to poprostu
randomize; for i:=1 to n for j:=1 to ilosc_wyrazow_w_zdaniu zdania[i]:=zdania[i] + ' ' + wyrazy_poczatkowe[random(ilosc_wyrazow_poczatkowych)];
dawno nie programowalem w delphi wiec moga byc bledy ;p


no to poprostu
randomize; for i:=1 to n for j:=1 to ilosc_wyrazow_w_zdaniu zdania[i]:=zdania[i] + ' ' + wyrazy_poczatkowe[random(ilosc_wyrazow_poczatkowych)];
dawno nie programowalem w delphi wiec moga byc bledy ;p

O teraz zauważyłęm że nie o to chodzić <_<. Generator ma tworzyć "n" wyrazów składających sie z 4 liter, czyli np. jak podamy mu n = 5 to on ma stworzyć pięć róznych cztero literowych wyrazów wyrwazów:

tadf
jrnk
uyio
olwm
llohe

które nie bedą sie powtarzać.

function Generuj: String; var  pom: integer;  tab: array of string;  pierw, druga, trzec, czwar: string; begin  Result := '';  //alfabet angielski  tab[0] := 'a';  tab[1] := 'b';  tab[2] := 'c';  ...  tab[25] := 'z';  Pom := Random(25);  pierw := tab[pom];  Pom := Random(25);  druga := tab[pom];  Pom := Random(25);  trzec := tab[pom];  Pom := Random(25);  czwar := tab[pom];  Result := pierw + druga + trzec + czwar; end;
Zrobiłem coś takiego, może to działać, ale nie musi :) Później w pętli wywołujesz ten generator i w tablicy zapisujesz wynik (jeśli się nie powtórzył). Albo inaczej: zapisujesz każdy wynik w tablicy i wyświetlasz tylko te nie powtarzające się. Coś napewno wymyślisz ;)
Użytkownik pbnan edytował ten post 29 maj 2006, 17:07

function Generuj: String; var  pom: integer;  tab: array of string;  pierw, druga, trzec, czwar: string; begin  Result := '';  //alfabet angielski  tab[0] := 'a';  tab[1] := 'b';  tab[2] := 'c';  ...  tab[25] := 'z';  Pom := Random(25);  pierw := tab[pom];  Pom := Random(25);  druga := tab[pom];  Pom := Random(25);  trzec := tab[pom];  Pom := Random(25);  czwar := tab[pom];  Result := pierw + druga + trzec + czwar; end;
Zrobiłem coś takiego, może to działać, ale nie musi  :) Później w pętli wywołujesz ten generator i w tablicy zapisujesz wynik (jeśli się nie powtórzył). Albo inaczej: zapisujesz każdy wynik w tablicy i wyświetlasz tylko te nie powtarzające się. Coś napewno wymyślisz ;)

function Generuj: String; begin Randomize; Result:=Chr(Random(25)+97)+Chr(Random(25)+97)+Chr(Random( 25)+97)+Chr(Random(25)+97); end;
Użytkownik KSMłody edytował ten post 29 maj 2006, 18:07

function Generuj: String; begin Randomize; Result:=Chr(Random(25)+97)+Chr(Random(25)+97)+Chr(Random( 25)+97)+Chr(Random(25)+97); end;

zrobcie to, zrobcie tamto :P moze sam bys cos zrobil? :> umiesc cala procedure losujaca wyraz w petli do ... until (sprawdz czy poprzednie wyrazy sa rowne temu)

var Zadania:Array of String; I,J,Ilosc:Integer; S:String; B:Boolean; begin Ilosc:=5; SetLength(zadania,Ilosc); for I:=0 to Pred(Ilosc) do begin  repeat  S:=Generuj; //tą funkcję masz wyżej  B:=True;  for J:=0 to I do    if S=Zadania[J] then    begin      B:=False;      break;    end;  until B;  Zadania[I]:=S; end; end;

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •