Python Ödev

18 Ağu 2015
67
0
İstanbul
Bu haftaki ödevinizde tarihin en eski metin şifreleme
tekniklerinden birisini kullanarak, kullanıcının girdiği bir cümleyi,
bu şifreleme işleminden geçirip ekrana basmanız, ardından da
şifrelenmiş metni çözerek, Orijinal metni ekrana basan bir program
yazmanız beklenmektedir.
Bahsi geçen şifreleme tekniği, şifrelenecek metin içerisindeki her
bir karakteri/harfi alfabede o harften n adet sonra gelen harfle
değiştirmeye dayanmaktadır. Örneğin şifrelenecek metin
“Bu ders cok zor”
olsun. N değerinin 3 olduğunu farz edersek, şifreleme işleminden
sonra ortaya çıkacak olan metin şöyle olmalıdır:
“Ex ghuv frn cru”
Zira alfabede B’den üç sonra gelen harf E, u’dan üç sonra gelen
harf z’dir ve diğer harfler de benzer şekilde şifrelenmiştir
(Girilecek metinde Türkçe karakterler (ü, ı, ş, ü, vs.) olmadığını,
bütün karakterlerin 26 harflik Latin Alfabesinden olduğunu
varsayabilirsiniz. Boşluk karakterlerini şimdilik
kodlamayabilirsiniz). Eğer şifreleme sırasında n adet ileri giderken
alfabenin sonuna gelindiyse, şifreleme prosesi ilerlemeye alfabenin
başından devam etmelidir.
Teslim edeceğiniz ödevde yukarıdaki şifreleme/kodlama işlemini
yapan bir fonksiyon olmalı, ayrıca şifrelenmiş metinden geri açık
metne dönmeyi sağlayan bir de şifre çözme fonksiyonu olmalıdır.
Bu şekilde yazdığınız fonksiyonları kullanan bir kullanıcı, istediği
bir metni önce şifreleyip, sonra da şifrelenmiş metni geri çözdürüp,
orijinal metni elde edip edemediğine bakarak şifreleme
fonksiyonunuzun doğru çalışıp çalışmadığının kontrolünü
yapabilmelidir. Ayrıca kullanıcı farklı n değerleriyle metin şifreleme
ve şifre çözme yapabilmelidir.
Ödevinizi yaparken dilerseniz Python’un, bir karakterin sayısal
karşılığını döndüren ord isimli fonksiyonundan faydalanabilirsiniz.
Bütün karakterler alfabedeki sıralarına göre sayısal değerlere
sahiptirler.
Programızı tamamlayıp doğru çalıştıktan sonra içerisinde Türkçe
karakterler ve/veya ‘$’, ‘#’, ‘%’, içeren metinlerle de deneyin, ‘ ‘
boşluk karakterini de kodlayın ve ne gibi sonuçlar aldığınızı
gözlemleyip yorumlayın. Yorumlarınızı programınızın içine yorum
(comment) satırları şeklinde yazabilirsiniz


def sem(x,n):
cikti=""
for i in range (len(x)):
cikti+=chr(ord(x) + n)
print(cikti)
def sem1(x,n):
sonuc=""
for i in range(len(x)):
sonuc += chr(ord(cikti) -n)
print(sonuc)

sem1("sd",5)


buraya kadar geldim üstteki fonksiyondan nasıl data çekeceğimi ciktiyi bağlayıp 2 saniyede halolucağını biliyorum ama nasıl birde şu altta iki tane fonksiyonu çalıştırmayı bilmiyoru myardım lütfen 5 saattir uğraşıyorum
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.