generowanie ciagu znakow losowych

0

Mam proste pytanie, ale bardzo wazne - w jaki sposob wygenerowac (przy pomocy funckji Random?) ciag znakow losowych okreslajac ich zakres?? Tzn. zeby np. powstaly slowa Abvcxcx BFgssss w roznej kombinacji i nie powtarzaly sie. Oczywiscie chodzi o dokladne wygenerowanie takich kodow. Potrzebuje bowiem program do generowania nazwisk i imion.

Pozdrawiam

0

dosć dziwne pytanie... ale kombinując z chr i zakresem randoma osiągniesz swój zamierzony cel. proste wyjaśnienie: chr+RandomFrom+Tabela znaków+F1

0

program do generowania nazwisk i imion

[code]Fioefjiof Vvrerve[/code]

hmm

0

Jak chcesz, żeby to były imiona to musisz jakąś regułke sobie wymyślić. Bo np. Mfdiasb to chyba nie imię. Więc random tu chyba dużo nie pomoże.

0

Nie koniecznie musza to byc prawdziwe imiona i nazwiska. Chcialbym by one wlasnie w taki sposob wygladaly: Tadadsads Dadasdad. Jak uzyc funckji Random??

Pozdrawiam

0

Niepotrzebne dywagacje, a człowiek szuka funkcji...

function name:string;
const 
  ilosc=10;
  znaki:array[0..ilosc-1]of char='abcdefghi`'; 
  // dostroisz sobie... dopiszesz znaki, ktore chcesz użyć.. 
  // ważne... male litery.
var
  i,j:integer;
  s:string;
begin
  j:=5+random(30); // do dostrojenia - dlugosc;
  setlength(s,j);
  for i:=1 to j do s[i]:=znaki[random(ilosc)];
  i:=3+random(j-10); // 3 i 10 rowniez do dostrojenia
  s[i]:=#32;  
  dec(byte(s[1]),32); // uppercase
  inc(i);
  while((s[i]>#122)or(s[i]<#97))do s[i]:=znaki[random(ilosc)];
  dec(byte(s[i]),32);
  name:=s;
end;


... 
  randomize;
...
0
function name:string;
const 
  ilosc=10;
  znaki:array[0..ilosc-1]of char='abcdefghi`'; 
  // dostroisz sobie... dopiszesz znaki, ktore chcesz użyć.. 
  // ważne... male litery.
var
  i,j:integer;
  s:string;
begin
  j:=5+random(30); // do dostrojenia - dlugosc;
  setlength(s,j);
  for i:=1 to j do s[i]:=znaki[random(ilosc)];
  i:=3+random(j-10); // 3 i 10 rowniez do dostrojenia
  s[i]:=#32;  
  dec(byte(s[1]),32); // uppercase
  inc(i);
  while((s[i]>#122)or(s[i]<#97))do s[i]:=znaki[random(ilosc)];
  dec(byte(s[i]),32);
  name:=s;
end;


... 
  randomize;
...

co ktores generowania wywala blad zaraz sproboje cos z tym zrobic hmmm

0
function name:string;
const 
  ilosc=10;
  znaki:array[0..ilosc-1]of char='abcdefghi`';
var
  i,j:integer;
  s:string;
begin
  //j:=5+random(30); // jesli random()=0, to j=5...
  j:=10+random(30); // lepiej
  setlength(s,j);
  for i:=1 to j do s[i]:=znaki[random(ilosc)];
  //i:=3+random(j-10); // to tu jest blad j-10=-5 (out of range?)
  i:=3+random(j-6); // ... i bledu nie bedzie przy zmianie j:=10+random(30);
  s[i]:=#32;  
  dec(byte(s[1]),32); 
  inc(i);
  while((s[i]>#122)or(s[i]<#97))do s[i]:=znaki[random(ilosc)]; 
  dec(byte(s[i]),32);
  name:=s;
end;

// sorki, pisalem nad ranem i na szybko... dlatego są komentarze 'dostroic'

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