geçen gün ruby dökümanlarını karıştırmıştım. kendimi biraz yeterli hissetmeye başladım. bugun lab’da kubilay metine ruby’i anlatırken ceasar şifresini tek satır kod ile yazdım dedi, ben de özendim uğraştım eve gelince. ufak bi hile ile de olsa tek satırda şöyle bir şey oluyor:
gets.chop!.each_byte{|i| i=(i+29).modulo(29)+97; print i.chr}
gets kullanıcıya metin girişi yaptırtıyor.
chop string’in sonundaki satırsonu siliyor.
each_byte stringler için bir yineleyici. burda her seferinde her karakteri i’ye atıyor.
modulo mod alma methodu.
i.chr ise i tamsayısının karşılık geldiği karakteri temsil ediyor.
bu satırın içinde metnin kaç harf kaydıralacağını almayı beceremedim, 29′a eşitledim şimdilik, ama uğraşmaya devam ediyorum. 
none
Comments
| Trackback
|
July 12th, 2007
geçen gün ruby dökümanlarını karıştırmıştım. kendimi biraz yeterli hissetmeye başladım. bugun lab’da kubilay metine ruby’i anlatırken ceasar şifresini tek satır kod ile yazdım dedi, ben de özendim uğraştım eve gelince. ufak bi hile ile de olsa tek satırda şöyle bir şey oluyor:
gets.chop!.each_byte{|i| i=(i+29).modulo(29)+97; print i.chr}
gets kullanıcıya metin girişi yaptırtıyor.
chop string’in sonundaki satırsonu siliyor.
each_byte stringler için bir yineleyici. burda her seferinde her karakteri i’ye atıyor.
modulo mod alma methodu.
i.chr ise i tamsayısının karşılık geldiği karakteri temsil ediyor.
bu satırın içinde metnin kaç harf kaydıralacağını almayı beceremedim, 29′a eşitledim şimdilik, ama uğraşmaya devam ediyorum. :)
edit: gayet ince bir yazı alanım olduğu için kod alt satıra da kaymış, oysa değil, yanyana onlar.
Comments
| Trackback
|
May 29th, 2007
Yorum Yazın