Ĺ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
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;