Hayır işi: Bir lisenin bilim fuarı için GUI'li çok basit bir yazılım lazım
Şimdi sezar şifresini bilirsiniz. Metindeki tüm harfleri belli sayıda kaydırarak şifrelemekten ibaret. Bizim algoritmamız ise önceden belirlenmiş bir anahtar parola üzerine kurulu.
1. Parolanın harflerinin sayısal karşılıklarını çıkar. (Eski algoritmada doğrudan ASCII kodunu alıyorduk. Bu sefer A'ya 1 B'ye 2, C'ye 3 Ç'ye 4; dilimizdeki noktalama işaretlerine de 30, 31, 32 falan filan diyeceğiz. Bir array olacak sanırım bu yani.)
2. Şifrelenecek metni de aynı şekilde sayısal array'e çevir.
3. Metnin 1. karakteri ile parolanın 1. karakterini topla. Kullanılabilen en büyük sayıdan daha büyükse ona göre kalan işlemini yap ki çıkan sonuç yine kullanılabilen bir karakter olsun.
4. Metnin 2. karakteri ile parolanın 2. karakterine aynı işlemi uygula.
5. Parola bitene kadar bunu yap. Parolanın son karakteri de bittiğinde tekrar parolanın 1. karakteri ile metnin sıradaki karakterini toplayarak devam et.
6. şifrelenmiş metni tekrar karakterlere çevir ve ekrana bas.
GUI'de sağda ve solda iki metin kutusu. İkisinin ortasında aşağıda bir parola metin kutusu. bir de "şifrele-şifre çöz" adlı buton'a ihtiyacımız var.
Bunu ücretsiz yapmak isteyen varsa haberleşelim.
ben yaparım.
yanlış anlamadıysam algoritmada sıkıntı var. örneğin;
a=1, b=2, c=3, x=32 olsun
cbcb : 3232
xx : 3232
decode edemezsiniz. ardışık sayı kullanacaksanız en azından basamak sayısı eşit olsun.
ayrıca topladıktan sonra en büyük sayıdan çıkarmanız da karışıklığa yol açar. çıkarma işlemi yerine başka bir mantık kurmanız gerek.
x'i 32 değil de 5 bit'lik bir sayı olarak düşünürsen sorun çözülüyor usta. bunun aynısını ascii table ile yapmıştık ve encode-decode her türlü mis gibi çalışıyordu. ama ascii olduğu için çıplak metin'deki a harfi ile paroladaki z harfi toplanınca karşımıza abidik gubidik bir karakter çıkıyordu.
ben istiyorum ki kalem kağıtla yazılabilen karakterler olsun.
compumaster bey sağolsun ışık hızında bir çözüm getirdi olayı hallettik tenk yu.