Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Sezar şifrelemesi, bir yazıdaki harflerin yerlerinin değiştirilmesi sonucunda elde edilir. Bu şifrede, her harf o harften bir (ya da birkaç) sonraki harf kullanılarak yazılır.

    Programcıdan; Türkçe karakter kullanılmadan girilen metindeki (yazi) harfleri, kullanici tarafindan istenen ilerleme değerine (ilerlemeDegeri) göre harflerin yerlerini değiştirip şifreleme yapması isteniyor.

    Örnek

    Girdi Çıktı
    girilenMetin: abc
    ilerlemeDegeri: 1
    sifrelenmisMetin: bcd
    girilenMetin: xyza
    ilerlemeDegeri: 29
    sifrelenmisMetin: abcd

    Çözüm - C#

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace CodingChallenges
    {
        public class Program
        {
            static void Main()
            {
                string yazi = "xyza";
                int ilerlemeDegeri = 3;
    
                // Alfabeyi programlamatik olarak oluştur
                List<char> alfabe = new List<char>();
                for (int i = 97; i < 123; i++)
                    alfabe.Add((char)i);
    
                StringBuilder donusturulenYazi = new StringBuilder();
                // Her bir harfi tek tek alarak ilerleme değeriyle hangi indekse denk geldiğini bul
                foreach (char harf in yazi)
                {
                    int harfIndeks = alfabe.IndexOf(harf);
                    var kalan = (harfIndeks + ilerlemeDegeri) % 26;
                    donusturulenYazi.Append(alfabe[kalan]);
                }
    
                Console.WriteLine(donusturulenYazi);
    
                Console.Read();
            }
        }
    }
    

    Çözüm - Python

    import string
    
    yazi = "xyza"
    ilerlemeDegeri = 3
    
    # Alfabeyi programlamatik olarak oluştur
    harf_araligi = list(string.ascii_lowercase)
    
    # Her bir harfi tek tek alarak ilerleme değeriyle hangi indekse denk geldiğini bul
    donusturulenYazi = ""
    for harf in yazi:
        harf_indeks = harf_araligi.index(harf)
        kalan = (harf_indeks + ilerlemeDegeri) % 26
        donusturulenYazi += harf_araligi[kalan]
    
    print(donusturulenYazi)