|
#1
|
|||
|
|||
Слово и регистр
Здравствуйте.
Подскажите пожалуйста код, чтобы он генерировал слова в разных регистрах. К примеру: Цитата:
Заранее спасибо |
#2
|
|||
|
|||
можно найти код для получения комбинаций, навроде [1,2][1,3]...
и увеличить буквы по этим индексам, ещё есть функция product (исодник на си при клике), можно оттуда скопировать описание, может что и найдётся --- написал что-то вроде этой функции product Код:
join(product([['a','A'],['b','B']])[0]) = 'AB' join(product([['a','A'],['b','B']])[2*2 - 1]) = 'ab' function product(given: array of smy): aamy; var givens: aamy; i, j, len, count, step, current_count: integer; begin count := length(given); setlength(givens, length(given)); for i := 0 to high(givens) do givens[i] := to_array(given[i]); len := 1; for i := 0 to high(givens) do len := len * length(givens[i]); setlength(result, len); for i := 0 to high(result) do setlength(result[i], count); step := 1; for j := 0 to count - 1 do begin current_count := length(givens[j]); for i := 0 to len - 1 do result[i][j] := givens[j][(i div step) mod current_count]; step := step * length(givens[j]); end; for i := 0 to high(givens) do setlength(givens[i], 0); setlength(givens, 0); end; >woweook< Последний раз редактировалось Pyro, 10.02.2013 в 10:52. |
Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
crash94 (11.02.2013)
|
#3
|
||||
|
||||
Получился сильно ламерский код, достойный страниц говнокода, но надёжно рабочий и попроще:
Код:
function Usr(ds: char): char; begin case ds of 'а':Result:='А';'б':Result:='Б';'в':Result:='В';'г':Result:='Г';'д':Result:='Д'; 'е':Result:='Е';'ё':Result:='Ё';'ж':Result:='Ж';'з':Result:='З';'и':Result:='И'; 'й':Result:='Й';'к':Result:='К';'л':Result:='Л';'м':Result:='М';'н':Result:='Н'; 'о':Result:='О';'п':Result:='П';'р':Result:='Р';'с':Result:='С';'т':Result:='Т'; 'у':Result:='У';'ф':Result:='Ф';'х':Result:='Х';'ц':Result:='Ц';'ч':Result:='Ч'; 'ш':Result:='Ш';'щ':Result:='Щ';'ъ':Result:='Ъ';'ы':Result:='Ы';'ь':Result:='Ь'; 'э':Result:='Э';'ю':Result:='Ю';'я':Result:='Я'; else Result:=UpCase(ds);end; end; procedure TForm1.Button1Click(Sender: TObject); var str: string; i : integer; begin str:= Edit1.Text; for i:= 1 to Length(str) do // for i:= Length(str) downto 1 do begin str[i]:= Usr(str[i]); memo1.Lines.Add(str); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crash94 (11.02.2013)
|
#4
|
||||
|
||||
Код:
function AnsiUpperCase(const S: string): string; Пишу программы за еду. __________________ |
#5
|
||||
|
||||
И правда работает,здОрово - тогда нужна только процедура клика кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject); var str: string; i : integer; begin str:= Edit1.Text; for i:= 1 to Length(str) do // for i:= Length(str) downto 1 do begin str[i]:= AnsiUpperCase(Str[i])[1]; memo1.Lines.Add(str); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crash94 (11.02.2013)
|
Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
crash94 (11.02.2013)
|
#7
|
||||
|
||||
если слово не длиннее 32 символов можно так:
Код:
var s, r: String[32]; i, j: DWORD; begin s:=Edit1.Text; for i:=0 to (1 shl Length(s)-1) do begin r:=''; for j:=0 to Length(s)-1 do if ((i shr j) and 1)=1 then r:=r+AnsiUpperCase(s[j+1]) else r:=r+AnsiLowerCase(s[j+1]); Memo1.Lines.Add(r); end; end; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
crash94 (11.02.2013)
|
#8
|
|||
|
|||
Всем спасибо.
То, что нужно |