Etiket arşivi: C#

C# ile Dosyalama ve Şifreleme Örneği

Uzun zamandır programlama örneği vermiyordum. Bu yazımızın konusu yarın yapacağım sınav öncesinde öğrencilerime pratik olsun diye hazırlattığım bir uygulama.

Soru:Bir Metin (text) dosyası içerisine yazılanları şifreli olarak saklayacak ve o metin dosyası, yazacağımız program dışında başka herhangi bir metin editörü ile açıldığında şifreli olarak görüntülenecektir. Yazının şifrelenmemiş halini ancak kendi yazdığımız program ile görüntüleyebileceğiz.

İşlem Basamakları:

1)Form üzerine 1 Label, 1 TextBox, 2 Button, 1 OpenFileDialog ve son olarak da 1 SaveFileDialog elemanlarını aşağıdaki şekildeki gibi form üzerine yerleştiriyoruz.

2)Nesnelere aşağıdaki özellikleri tanımlıyoruz;

  • Label1.Text = “Metin İçeriği:”
  • button1.Text = “Kaydet”
  • button2.Text = “Aç”
  • saveFileDialog1.Filter = “Metin Dosyası (*.txt)|*.txt”
  • openFileDialog1.Filter = “Metin Dosyası (*.txt)|*.txt”

3) sifrele ve sifreCoz isimli 2 adet metot oluşturuyoruz.

[sourcecode language=”csharp”]private string sifrele(string icerik)
{
string sifrelenmisi = "";
foreach (char harf in icerik)
{
sifrelenmisi += Convert.ToChar(harf+2);
}
return sifrelenmisi;
}[/sourcecode]

 

[sourcecode language=”csharp”]private string sifreCoz(string sifreliIcerik)
{
string cozulmusIcerik = "";
foreach (char harf in sifreliIcerik)
{
cozulmusIcerik += Convert.ToChar(harf – 2);
}
return cozulmusIcerik;
}[/sourcecode]

4) button1 tıklandığında;

[sourcecode language=”csharp”]saveFileDialog1.Filter = "Metin Dosyası (*.txt)|*.txt";
saveFileDialog1.ShowDialog();
string yol=saveFileDialog1.FileName;
File.CreateText(yol).Close();
string icerik = textBox1.Text;
string yeniIcerik = sifrele(icerik);
File.WriteAllText(yol, yeniIcerik);
MessageBox.Show("Kayıt İşlemi Gerçekleştirildi");
textBox1.Clear();[/sourcecode]

  5) button2 tıklandığında;

[sourcecode language=”csharp”]openFileDialog1.ShowDialog();
string yol = openFileDialog1.FileName;
string sifreliIcerik = File.ReadAllText(yol);
string yeniIcerik = sifreCoz(sifreliIcerik);
textBox1.Text = yeniIcerik;[/sourcecode]

komutlarını yazıyoruz.

Şifreleme işleminde parametre olarak gönderilen metinsel (string) ifadeyi, karakter karakter okutup, ilgili karakteri, kendisinden 2 karakter sonra gelen karakter ile değiştirme yöntemiyle metnimizi şifreliyoruz. (Örneğin a=c,b=d,c=e…)

Şifre çözme işleminde de şifreleme işleminde yaptığımız işlemin tam tersini yapıp, gelen karakteri, kendisinden 2 karakter önce gelen karakter ile değiştirerek kullanıyoruz.

Programa ait çalışma anı görselleri için aşağıdaki ekran görüntülerini inceleyebilirsiniz.

C# Örnekleri -2

Daha önce şurada dizilerle ilgili ve şurada da başlangıç seviyesi C# program örnekleri vermiştim.

Geçtiğimiz haftalar da öğrencilerime ödev olarak vermiş olduğum sorulardan sizlerin de faydalanabileceğini düşündüklerimi burada, onların anlatımıyla yayınlamaya başlıyorum.

İlk örneğimiz TL-11-A sınıfından Samet BAL’ın hazırlamış olduğu ” KENAR UZUNLUKLARI GİRİLEN ÜÇGENİN, ÇEŞİTKENAR MI, İKİZKENAR MI, EŞKENAR MI YOKSA DİK ÜÇGEN Mİ OLDUĞUNU BULAN  PROGRAM

Buyurun Samet’in dilinden programın kodları ve çalışması;
C# Örnekleri -2 yazısına devam et

C# – Dizi Örneği (#1)

Öğretmenliğe ilk başladığım yıllarda görev yaptığım okuldaki bölüm şefim Salih AYDOĞAN’ın meşhur programlama örneğinin biraz değiştirilmiş versiyonu:

İstanbul’dan Avusturalya’ya doğru yola çıkan bir yolcu uçağı ıssız bir ada üzerinde düşer. Uçaktan sağ olarak kurtulan yolcular, adanın yerlileri tarafından ele geçirilir ve herkese 1’den başlayan bir sıra numarası verilerek halka şeklinde sıralanırlar.

Yerliler halka şekline sıralanmış olan yolculardan 2 kişiyi atlayıp 3.’yü yeme taktiğiyle sırayla öldürürler.

Yolcu sayısı klavyeden girilecek olan programla sona kalan yolcunun numarasını bulan programın kodunu yazınız.

Kodlar: C# – Dizi Örneği (#1) yazısına devam et

C# Örnekleri -1

TL-11-A sınıfından Ertan’ın yapmış olduğu klavyeden girilen 3 sayıyı karşılaştıran program;
int sayi1, sayi2, sayi3, a, b, c;

Console.WriteLine(“1.Sayıyı girin”);
sayi1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“2.Sayıyı girin”);
sayi2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“3.Sayıyı girin”);
sayi3 = Convert.ToInt32(Console.ReadLine()); C# Örnekleri -1 yazısına devam et

C#’ta Kullanılan Veri Türleri

Tür

CTS Karşılığı

Açıklama

Max ve Min aralık ya da değeri

sbyte

System.Byte

8 bit işaretli tamsayı

-128 : 127

short

System.Int16

16 bit işaretli tamsayı

-32.768 : 32.767

int

System.Int32

32 bit işaretli tamsayı

-2.147.483.648 : 2.147.483.647

long

System.Int64

64 bit işaretli tamsayı

-9.223.372.036.854.775.808 : 9.223.372.036.854.775.807

byte

Sytem.Byte

8 bit işaretsiz tamsayı

0 : 255

ushort

System.UInt16

16 bit işaretsiz tamsayı

0 : 65535

uint

System.UInt32

32 bit işaretsiz tamsayı

0 : 4.294.967.295

ulong

System.UInt64

64 bit işaretsiz tamsayı

0 : 18.446.744.073.709.551.615

float

SytemSingle

32 bit tek kayan sayı

±1,5 * 1045 : ±3,4 * 1038

double

System.Double

64 bit çift kayan sayı

± 5 * 10-324 : ± 1,7 * 10308

decimal

System.Decimal

128 bit ondalıklı sayı

± 1,5 * 10-28 : ± 7,9 * 1028

bool

System.Bool

Doğru / Yanlış

True ya da False

char

System.Char

Karakterleri temsil eder

16-Unicode karakterleri