Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

Mobil Cihaz da Yüklü Depolama Kartlarını Bulmak

clock Ocak 23, 2010 06:05 by author Volkan Atasever

Windows Mobile işletim sistemi yüklü mobil cihazlarda kullandığımız storage card'larla ilgili bir uygulamayı anlatacağım. Cihaza bağlı herhangi bir storage kartı bulup için herhangi bir mesaj yazdıracağız. Cihazda toplamda kaç adet storage card olduğunu tespit edeceğiz. Emülatörünüze 1'den fazla storage card ekleyip sonuçları görebilirsiniz. Bu işlemleri VS 2008 ile beraber gelen emülatörle yapacağınız gibi Windows Mobile Developer Power Toys ile gelen emülatörlerle de aktif olarak deneyebilirsiniz.

Windows Mobile için kullanıcı arayüz tasarımımız:

 

Kullanmamız ve eklememiz gereken namespace'ler:

using System.IO;

using System.Diagnostics;

Kodumuz;

publicpartialclassForm1 : Form

{

               public Form1()

              {

                      InitializeComponent();

              }

               conststring _cardsHelloWorldFileName = "helloworld.txt";

              conststring _helloWorldMessage = "depolama kartının üzerine yazılan mesaj";

              privatevoid menuFindCards_Click(object sender, EventArgs e)

             {

                       int cardCount = 0;

                      DirectoryInfo rootInfo = newDirectoryInfo(@"\");

                      foreach (DirectoryInfo dirInfo in rootInfo.GetDirectories())

                     {

                                   if ((dirInfo.Attributes & FileAttributes.Temporary) != 0)

                                  {

                                               Debug.WriteLine("Directory Name: " + dirInfo.Name);  

                                              Debug.WriteLine(" Full Name: " + dirInfo.FullName);

                                               cardCount++;

                                               string filePathName = Path.Combine(dirInfo.FullName, _cardsHelloWorldFileName);

                                              StreamWriter writer = newStreamWriter(filePathName);

                                              writer.Write(_helloWorldMessage);

                                             writer.Close();

                                             Debug.WriteLine("Dosya yaratıldı: " + filePathName);                                             Debug.WriteLine("");

                                  }

                   }

                  string endMessage = string.Format(" {0} tane  Storage Card bulundu", cardCount.ToString());

                  Debug.WriteLine(endMessage);

                  MessageBox.Show(endMessage);

       }

}

 Programı çalıştırdıktan sonra görüntümüz;

Emülatörler beraber yüklü hiçbir storage card olmadığı için bu mesajı verdi. Emülatöre donanım olarak storage card yükleyelim. Bunun için emülatörün menü seçeneklerinden File ardından configure sekmesine tıklayalım açılan pencerede shared folder kısmına bilgisayarmızdan bir klasör gösterelim mobil cihazda bu klasör storage card olarak gözükecektir.

Sağdaki cihazda storage card'ı görebiliyoruz. File Explorerdan bu kontrolü yapabilirsiniz. Uygulamamızı çalıştırdıktan sonraki ekran görüntümüz;

Yazan: Volkan Atasever

kaynaklar: MSDN



Sayı tahmin oyunu

clock Ocak 22, 2010 02:39 by author Volkan Atasever

 

 

Bu C# ile algoritmalar yazımda klasik bir sayı tahmin oyunu kodlayacağım. İtiraf etmek gerekirse en iyi algoritmayı kullandığım söylenemez. Daha fazla iyileştirilebilir. Sizin iyileştirilmiş kodlarınızı yazının altındaki yorum kısmına bekliyorum. Bilgisayarın tuttuğu sayı rakamları birbirinden farklı bir sayı olacak. 10 tahmin hakkımız var. Aynı zamanda eğer rakam doğru basamakta tahmin edildiyse + yanlış bir basamakta tahmin edildiyse - verilecek. Eğer hiç isabet etmemişse bir mesaj vermeyecek. Bunun için C# dili ile aşağıdaki algoritmayı uyguladım;

classProgram

{

             staticvoid Main(string[] args)

            {

                  Random rnd = newRandom();

                  int belirli = 0; bool flag = false;

                 do{

                       belirli = rnd.Next(1000, 9999);

                       string ara=belirli.ToString();

                      int hata=0;

                      for (int i = 0; i < 3; ++i)

                           if (ara[i] == ara[i + 1])

                               hata++;

                     if (ara[0] == ara[2])

                              hata++;

                    if (ara[1] == ara[3])

                              hata++;

                    if (ara[0] == ara[3])

                             hata++;

 

                    if (hata == 0)

                          flag = true;

                   else

                        flag = false;

 

             }while(!flag);

             int tahmin = 0; int sayac = 0; string tah2;

 

            do{

                  Console.WriteLine("Say tahmin ediniz");

                  tah2 = Console.ReadLine();

                  tahmin = Convert.ToInt32(tah2);

                  Console.WriteLine(belirli);

                  if (belirli == tahmin){

                      Console.WriteLine("Doru Tahmin bildiniz teekkrler");

                      break;

                 }

                Console.WriteLine(hesapla(tahmin, belirli));

 

            }while(sayac<11);

 

       }

       staticstring hesapla(int sayi2,int tah){

             string sayi = sayi2.ToString();

             string tahmin = tah.ToString();

             string sonuc = ""; int say = 0;

             for (int i = 0; i < 4; ++i)               for(int j=say;j<4;++j)

               {

                     if (sayi[i] == tahmin[j])

                        if (i == j)

                             sonuc += "+";

                        else

                           sonuc += "-";

               }

                    return sonuc;

         }

}

 



3 kenarı belli olan üçgen çizilebilir mi?

clock Ocak 22, 2010 02:31 by author Volkan Atasever

 

Buradaki sorumuz ise 3 kenarı belli olan üçgen çizilebilir mi çizilemez mi bunu hesaplamak olacak. Bu algoritmayı oluşturabilmek için bilmemiz gereken üçgenin kenarları ile ilgili kural ve bağıntılardır. Buna göre bir üçgenin çizilebilmesi için;

1 ) Bir üçgende iki kenarın toplamı, üçüncü kenarından büyüktür.
2 ) Bir üçgende iki kenarın farkı üçüncü kenarından küçüktür.

Buna göre kodumuz aşağıdaki gibi olacaktır;

classProgram

{

        staticvoid Main(string[] args)

       {

              string a, b, c;

              Console.WriteLine("1. kenar uzunluunu girin");

             a = Console.ReadLine();

             Console.WriteLine("2. kenar uzunluunu girin");

             b = Console.ReadLine();

             Console.WriteLine("3. kenar uzunluunu girin");

             c = Console.ReadLine();

            bool sonuc = is_trangle(Convert.ToInt32(a),Convert.ToInt32(b),Convert.ToInt32(c));

            if (sonuc)

                 Console.WriteLine("gen izilebilir");

            else

               Console.WriteLine("gen izilemez");

      }

      privatestaticbool is_trangle(int a, int b, int c)

     {

           bool flag1=false; bool flag2=false;

           if ((a + b) > c && (a + c) > b && (b + c) > a)

              flag1 = true;

           if ((a - b) < c && (a - c) < b && (b - c) < a)

              flag2 = true;

          return flag1 && flag2;

      }

}

 



Euler sayısını hesaplamak

clock Ocak 22, 2010 02:21 by author Volkan Atasever

 

e sayısı veya Euler sayısı, matematik, doğal bilimler ve mühendislikte önemli yeri olan sabit bir reel sayı, doğal logaritmanın tabanı. e sayısı aşkın bir sayıdır, dolayısıyla irrasyoneldir, ve tam değeri sonlu sayıda rakam kullanılarak yazılamaz. Yaklaşık değeri şöyledir:

e sayısı, aşağıdaki sonsuz toplama eşittir:

Buna göre C# ile e sayısını bulmak için aşağıdaki kod parçasını kullanmalıyız tabi normalde sonsuz bir toplama eşit olduğu için yaklaşık değeri elde etmek için hassasiyeti n sayısına vereceğimiz değerlere bulabiliriz.

classProgram

{

       staticvoid Main(string[] args)

      {

             double e = 0.0;

             int n = 20;

             for (int i = 0; i < n; i++)

             {

                   e = e + (1 / fakt(i));

             }

             Console.WriteLine(e);

       }

       staticdouble fakt(double f)

      {

           if (f == 0)

          {

               return 1;

          }

          else

         {

                return f * fakt(f - 1);

         }

     }

}

Kaynaklar: Euler sayısı tanımı, wikipedia

 



C# ile Akrep ile yelkovan arasındaki açıyı bulma

clock Ocak 22, 2010 02:12 by author Volkan Atasever

 

Akrep ile yelkovan arasındaki açıyı bulmak için farklı algoritmalar ve yöntemler kullanabilirsiniz. Benim buradaki amacım en iyi algoritmayı kullanmak. Bu işi tek satırda çözebildim. Tabiki Kullanıcı arayüz kısmını değil ana işi yapan metoddaki algoritmik kısmı. Aşağıdaki kod Akrep ile yelkovan arasındaki açıyı en kısa şekilde bulmaktadır. En iyi kod işi en iyi şekilde ve en kısa yoldan çözen yani en iyi algoritmaya sahip koddur. Bunu unutmamanız gerekir.

classProgram

{

       staticvoid Main(string[] args)

      {

              string a, b;

              Console.WriteLine("saat giriniz");

              a = Console.ReadLine();

              Console.WriteLine("dakika giriniz");

              b = Console.ReadLine();

             int aci = get_angle(Convert.ToInt32(a), Convert.ToInt32(b));

             Console.WriteLine("Aci " + aci);

      }

      privatestaticint get_angle(int saat, int dakika)

     {

                returnMath.Abs((int)(saat * 30) - (int)(dakika * 5.5)); // tek satır kodla istediğimiz işlemin sonucunu elde ettik!

     }

}

 



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Kurucu&Genel Müdür/Software4Galaxy Ltd.
Bilgisayar Mühendisi
Bilim Adamı, Eğitmen ve Danışman, Teknoloji Yazarı, Şair, Araştırmacı, Girişimci, Amatör Telsiz Operatörü, Amatör Denizci, Akvarist, Nümismat, Filatelist, Amatör Balıkçı

HAM Radio Sign: TA2OVA

SWL Sign: TA234127

QTH Location: KN41TE

Genel Duyurular

-Yakın bir zamanda Amatör Telsiz , Amatör Denizcilik, Amatör Balıkçılık ve Shortwave Radio adında yeni dört kategori ile bilgilerimi paylaşıyor olacağım.

-RC Araçlar kategorisi ilgi alanımdadır artık bu konuda da araştırmalar yapıp zaman buldukça projelerimi paylaşacağım.

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2019

Sign In