Volkan Atasever

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

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!

     }

}

 



Mobil İçin Evrensel Download Aracı

clock Ocak 14, 2010 07:10 by author Volkan Atasever

 

Bu araç sayesinde windows mobile ile birlikte gelen internet explorer tarzı tarayıcılar üzerinden download yapabilme işlemini evrensel bir hale getirmiş bulunmaktayız. Bu uygulama sayesinde yolu verilen uygulama mobile cihaza indirilmektedir. Mobile cihaz için hazırlanan bir cab dosyası ise direkt çalıştıralabilir şekilde indirebilirsiniz. Mobile için bazı uygulamalar ise active sync bağlantısını veya vista üzerinde windows mobile device center’a ihtiyaç duyacaktır.

 

Uygulamamızın tasarımı yukarıdaki şekilde olsun. Download butonuna bastığımızda uygulamayı mobil cihazımıza indirsin. Kodlamaya geçerken temel değişkenlerimizi ve isim uzaylarımızı ekleyelim.

Bir windows uygulaması açtığımızda standart gelen namespace’lere ilave olarak;

using System.Net;

using System.IO;

isim uzaylarınıda eklememiz gerekmektedir.

Bu isim uzaylarındaki sınıflar download işlemini yapmamız için yeterli düzeydedir.

Sabit olarak;     

        const string _downloadUrl = @"http://download.microsoft.com/download/6/c/0/6c03246d-e97f-460f-893e-785c1dda82b1/mnyppc06.exe";

        const string _localFileName = @"\Program Files\mnyppc06.exe";       

        const int _downloadBlockSize = 4096;

kullanacağız. downloadUrl, bizim uygulamayı indirceğimiz url. localFileName hedey klasör ve isim. Block size olara 4096 değerini veriyoruz.

Menüdeki download isimli butonumuzun click event’ine ise aşağıdaki kodu yazalım;

HttpWebRequest httpRequest = null;

HttpWebResponse httpResponse = null;

Stream responseStream = null;

FileStream localFileStream = null;

try           

{

    httpRequest = (HttpWebRequest)WebRequest.Create(_downloadUrl);

    httpRequest.Method = "GET";

    httpResponse = (HttpWebResponse)httpRequest.GetResponse();

    responseStream = httpResponse.GetResponseStream();

    localFileStream = new FileStream(_localFileName, FileMode.Create);

    Byte[] buffer = new Byte[_downloadBlockSize];

    int bytesRead = responseStream.Read(buffer, 0, _downloadBlockSize);

    while (bytesRead > 0)

    {

         localFileStream.Write(buffer, 0, bytesRead);

         bytesRead = responseStream.Read(buffer, 0, _downloadBlockSize);

    }

        MessageBox.Show("Success!!", "Download Complete");

}           

catch (Exception ex)

{

        MessageBox.Show(ex.Message, "Download Failed");

}

finally 

{

      if (httpResponse != null)

           httpResponse.Close();

       if (responseStream != null)

           responseStream.Close();

       if (localFileStream != null)

           localFileStream.Close();

}

Yukarıdaki kodda gördüğünüz standart windows veya konsol uygulamaları denemelerimde kullandığım HttpWebRequest gibi sınıflardır. Bu sayede tarayıcıya bağlı kalmaktan kurtulmuş ve windows mobile için evrensel bir dosya indirme aracı yapmış oluyoruz. Bu uygulamayı kendiniz daha fazla geliştirebilirsiniz. Örneğin bir url kutusu koyabilirsiniz. Emülatörle denemelerinizi yaparken bilgisayar ile internet bağlantısı yapmayı unutmayın. 

Kaynak: MSDN



PCWorld Ocak 2010 Sayısı - Mobil Programlama - İkinci Yazım

clock Aralık 30, 2009 04:30 by author Volkan Atasever

PCWorld, Ocak 2010 sayısında mobil programlama yazı dizisinin ikinci serisi yayınlandı. İkinci yazımda .Net Compact Framework ve getirileri ile ilgili anlatımların yanı sıra bir projenin baştan sona çalışması hakkında bilgi edinebilirsiniz. Dünyanın en çok satan bilgisayar dergisinde yazmak oldukça keyifli bir deneyim.

Konu Başlığım: Mobil Programlama: Visual Studio 2008 içinde mobil geliştirme araçları 



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Kurucu&Genel Müdür/Software4Galaxy Ltd.
Bilgisayar Mühendisi
Eğitmen ve Danışman, Teknoloji Yazarı, Şair, Araştırmacı, Girişimci, Akvarist, Nümismat, Bilim İnsanı

Genel Duyurular

-Öğrencilerim Eğitim verdiğin derslerin takibini yapabilirler ana sayfada ilgili bölümler mevcut.

-10 aralık 2018 günü kim milyoner olmak ister programında yarıştım. blogumdan veya youtube kanalımdan programımı izleyebilirsiniz.

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