- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
function Encrypt(jstr: String): String;
var
I: Integer;
A: Real;
begin
if Length(jstr) = 0 Then begin
Result := '';
Exit;
end;
A := 0;
for I := 0 To Length(jstr) do
A := A + (Ord(jstr[I]) * Pos(jstr[I],jstr)) / 33;
Result := FormatFloat('0000000000.0000000000',A);
if Pos(',',Result) > 0 then begin
Insert('.',Result,Pos(',',Result));
Delete(Result,Pos(',',Result),1);
end;
end;
d_dev 17.11.2011 14:08 # +1
...Ord(jstr[i])...
строки ведь индексируются с 1.
интерeсно было бы посмотреть и на Decrypt :)
bugmenot 17.11.2011 15:12 # 0
вероятно, древность
TarasB 17.11.2011 14:19 # 0
> ...Pos(jstr[i],jstr)
Квадрат. Надеюсь, это всего лишь лаба?
ctm 17.11.2011 14:40 # 0
TarasB 17.11.2011 14:43 # 0
Случай ограничения на длину строки я не рассматриваю, потому что это Вася можно сказать "не использовать строки больше 100 символов", а Петя возьмёт, и забьёт на это.
Dummy00001 17.11.2011 15:36 # 0
а если ты в этом коде только квадрат заметил...
TarasB 17.11.2011 16:04 # +1
ctm 17.11.2011 16:16 # 0
TarasB 17.11.2011 16:22 # 0
ctm 18.11.2011 06:19 # 0
bugmenot 18.11.2011 07:48 # 0
guest 18.11.2011 07:59 # 0
ctm 17.11.2011 14:39 # 0
1. Некорректная работа с DecimalSeparator.
2. Обратное преобразование невозможно: "ABBBAA", "ABBABA" и "ABAABB" кодируются одинаково.
3. Длинную строку кодирует с погрешностью.
п. 2 и 3 спорны - не знаю задачу: кодирование или хеш?
bugmenot 17.11.2011 15:08 # +1
никто не знает, я нашел это на стековервловочке
Dummy00001 17.11.2011 15:38 # 0
жуть. почему я и перестал читать вопросы там по популярным языкам программирования. благо перловцы там еще до такого не докатились.
TarasB 17.11.2011 14:44 # +3
> Insert('.',Result,Pos(',',Result));
> Delete(Result,Pos(',',Result),1);
> end;
Для замены одного символа делать вставку и удаление - это феерический долбоебизм.
ctm 17.11.2011 16:18 # 0
и искать запятую а не DecimalSeparator - ГК.
Govnocoder#0xFF 17.11.2011 17:32 # +3
Гениально!