امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
alg rotat13
نویسنده پیام
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #1
alg rotat13
این الگوریتم کدینگ Rotat13 هست که حالت دایره ای هر حرف رو 13 کاراکتر به سمت جلو یا 13 کاراکتر به سمت عقب حرکت میکنه

کد:
Function CaesarLeft(sString: String; iAmount: Integer):String;
var
i, iPos: Integer;
sAlphabet: String;
begin
  sAlphabet:= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  i:= 1;
  while i <= Length(sString) do
   Begin
    if sString[i] = ' ' then
     Result:= Result + ' '
     else
     begin
      iPos:= pred(pos(sString[i],sAlphabet));
      Result:= Result + sAlphabet[(((iPos + 26) - iAmount) mod 26) + 1];
     end;
   inc(i);
  end;
end;

Function CaesarRight(sString: String; iAmount: Integer):String;
var
i, iPos: Integer;
sAlphabet: String;
begin
  sAlphabet:= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  i:= 1;
  while i <= Length(sString) do
   Begin
    if sString[i] = ' ' then
     Result:= Result + ' '
     else
     begin
      iPos:= pred(pos(sString[i],sAlphabet));
      Result:= Result + sAlphabet[((iPos + iAmount) mod 26) + 1];
     end;
   inc(i);
  end;
end;

روش استفاده

کد:
procedure TForm1.btnLeftClick(Sender: TObject);
begin
memo1.Lines.Text:= CeasarLeft(AnsiUpperCase(Trim(memo1.Lines.Text)),1);
end;

procedure TForm1.btnRightClick(Sender: TObject);
begin
memo1.Lines.Text:= CeasarRight(AnsiUpperCase(Trim(memo1.Lines.Text)),1);
end;

//And for the ROT13 Cipher
procedure TForm1.btnROT13Click(Sender: TObject);
begin
memo1.Lines.Text:= CaesarRight(AnsiUpperCase(Trim(memo1.Lines.Text)),13);
end;

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۴-مرداد-۱۳۸۹, ۱۰:۲۴:۲۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Mr.pRoGraMmer
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: alg rotat13
اینها الگوریتمهای اسناندارد هستن میتونی از روشون الگو بگیری یا با یه کم تغییرات خودت یکی بسازی
( :d یه نمونه واسه خودم دارم :d)

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۴-مرداد-۱۳۸۹, ۱۴:۰۳:۳۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Mr.pRoGraMmer


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS