14 Mart 2016 Pazartesi

C# Dizi sıralama (TextBox'a girilen değerlere göre)

C# Dizi sıralama


c# dizi sıralama


Sizden bir method ve bu methoduun kullanıldığı bir program yazmanız isteniyor.Method parametre olarak aldığı diziyi küçükten büyüğe yada büyükten küçüğe sıralayıp sıralı diziyi geri döndürecek.  Yazacağınız program sıralanmış diziyi ekranda gösterecek. Herhangi bir sıralama algoritması kullanılabilirsiniz.Burada girilen dizi karakterleri arasında 1 space boşluk bırakılarak giriş sağlanmıştır bu girişler kullanıcıdan alınıp trim ve split komutu ile bir string arraya geçirilip oradan number array e geçirilmiştir ve daha sonra sort ve reverse fonksiyonu ile sıralanmıştır.sort fonksiyonu küçükten büyüğe , reverse ise büyükten küçüğe sıralama yapar

 

Çözüm:

Önce kullandığımı methodları açıklayalım  :

Trim metodu karakterin başındaki ve sonundaki boşlukları atmak için kullanılır. Eğer ki sadece kelimelerin başındaki ya da sonundaki boşlukları aşmak istiyorsak TrimEnd ve TrimStart metotlarını da kullanabiliriz.

Bu metotların yapmış olduğu işlemlere örnek verecek olursak hazırladığımız programda kullanıcının mailden gelen güvenlik kodunu gireceği bir alan var. Genelde mailimizden direkt kopyala yapıştır yaparız ve kimi zaman karakter topluluğunun başında veya sonundaki fazladan boşlukları da alırız. Bu da programın güvenlik kodunu yanlış algılamasına neden olacaktır. Bu gibi durumları engellemek için Trim metotunu kullanabiliriz.

Split Metodu Kelime veya kelime gruplarında belirlenen karakterden sonrasını bölmek için kullanılır. Bu işlem sırasında belirlenen karakteri kaldıracaktır.c# dizi sıralama

 

[caption id="attachment_171" align="alignnone" width="647"]c# dizi sıralama c# dizi sıralama[/caption]

Saf Kod text hali :

using System;
using System.Windows.Forms;
namespace _152120121048_OZANMANAV_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSirala_Click(object sender, EventArgs e)
{
String text = txtSiralanmamisDizi.Text;
text = text.Trim(' ');
String[] textArray = text.Split(' ');

double[] numberArray = new double[textArray.Length];

for (int i = 0; i < textArray.Length; i++)
{
numberArray[i] = Double.Parse(textArray[i]);

}

if (rbKucuktenBuyuge.Checked)
{
txtSiralanmisDizi.Clear();
Array.Sort(numberArray);
for (int i = 0; i < numberArray.Length; i++)
{
txtSiralanmisDizi.Text += numberArray[i].ToString()+' ';
}
}

else
{
txtSiralanmisDizi.Clear();
Array.Reverse(numberArray);
for (int i = 0; i < numberArray.Length; i++)
{
txtSiralanmisDizi.Text += numberArray[i].ToString() + ' ';
}
}
}
}
}

c# dizi sıralama , c# textbox dizi sıralama , dizi sıralama , c# textbox'a girilen değerleri sıralama

7 Mart 2016 Pazartesi

C# Geometrik Dizi Yazdırma

c# geometrik dizi yazdırma


3

Bildiğiniz üzere Bir sayı dizisindeki ardışık iki terim arasındaki oran sabit bir sayı ise bu diziye geometrik dizi denir. Geometrik dizide ardışık iki terim arasındaki orana dizinin ortak çarpanı denir. Aşağıdaki dizinin ortak çarpanı 3 ve  2 'dir. Ortak çarpan bulunurken herhangi bir terim bir önceki terime bölünür.

Sizden İlk terimi a1 olan ve ortak çarpanı r olan bir geometrik dizinin genel terimi: an = a1 . r(n−1)  olacak bir serinin ilk n elemanının listeleyen bir program yazmanız öneriliyor.Kullanıcıdan ilk eleman  a1ortak çarpanı r ve eleman sayısını girmesini isteyecektir eğer kullanıcı değerleri boş girmişse program mesaj kutusu ( messagebox ) ile uyarı verecektir.

Çözüm:

c# geometrik dizi yazdırma




[caption id="attachment_164" align="aligncenter" width="410"]c# geometrik dizi yazdırma c# geometrik dizi yazdırma[/caption]

4

Saf kod hali kopyalamak için :
namespace _152120121048_OZAN_MANAV_LAB4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnHesapla_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtIlkEleman.Text)) //Boş bırakıldıysa messagebox göster
{
MessageBox.Show("Lütfen Boş bırakmayınız : İlk Eleman");
return; //boş bırakılmış demekki döndür
}
if (string.IsNullOrEmpty(txtOrtakCarpan.Text)) //Boş bırakıldıysa messagebox göster
{
MessageBox.Show("Lütfen Boş bırakmayınız : Ortak Çarpan");
return; //boş bırakılmış demekki döndür
}
if (string.IsNullOrEmpty(txtElemanSayisi.Text)) //Boş bırakıldıysa messagebox göster
{
MessageBox.Show("Lütfen Boş bırakmayınız : Eleman Sayisi");
return; //boş bırakılmış demekki döndür
}

int IlkEleman = Convert.ToInt32(txtIlkEleman.Text);
int OrtakCarpan = Convert.ToInt32(txtOrtakCarpan.Text);
int ElemanSayisi = Convert.ToInt32(txtElemanSayisi.Text);

int[] dizi = new int[ElemanSayisi+1];

dizi[1] = IlkEleman;

for(int i=2;i<ElemanSayisi+1;i++)
{
dizi[i] = dizi[1] * (int)Math.Pow(OrtakCarpan,i-1) ;
}

for (int i = 1; i < ElemanSayisi+1; i++)
{
txtDiziGoster.Text = txtDiziGoster.Text + dizi[i]+Environment.NewLine;
}
}
}
}

 

 

 

C# Mouse Sayacı

[caption id="attachment_157" align="aligncenter" width="306"]C# Mouse Sayacı (Örnek Uygulama) C# Mouse Sayacı (Örnek Uygulama)[/caption]

C# Mouse Sayacı (Örnek Uygulama)


Sizden textbox üzerinden mouse kaç defa geçtiğini sayan bir program yazmanız isteniyor. Programda bir checkbox ve bir adet multiline özelliği true olan bir textbox olacak. Eğer checkbox (text: Saydır) seçili ise kullanıcı mouse ı her textbox üzerinden geçtiğinde geçiş sayısı bir artacaktır, eğer checkbox  seçili değilse sayma işlemi olmayacaktır. Her 5 sayımda toplam geçiş sayısı messagebox ile ekranda gösterilecektir.

Çözüm:

İhtiyacımız olanlar  : CheckBox , TextBox , Label, TextBox'un MouseEnter eventi

Untitled

Saf kod halinde kopyalabilmek için :
namespace _152120121048_OZAN_MANAV_LAB3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int counter = 0;
public void MesajGoster()
{
MessageBox.Show(counter.ToString());
}
private void txt_YaziKutusu1_MouseEnter(object sender, EventArgs e)
{
if (chk_Saydir.Checked)
{
counter++;
txt_YaziKutusu1.Text = counter.ToString();
if (counter%5==0)
{
MesajGoster();
}
}
else { }
}
}
}

C# MessageBox Kullanımı

C#'ta MessageBox'ın en basit kullanım şekli aşağıdaki gibidir. Bu kullanım şeklinde kullanıcıya sadece Mesaj İçeriği'ni gösteriyoruz:

[caption id="attachment_154" align="aligncenter" width="186"]C# MessageBox Kullanımı C# MessageBox Kullanımı[/caption]

 

 
MessageBox.Show("Hello World!");

 

Bundan sonraki kullanımlarında yavaş yavaş kullanıcılara daha ayrıntılı bir pencere sunabileceğiz.
Bu kullanımda kullanıcıya hem Mesaj İçeri'ğini gösterebileceğiz hem de pencere başlığına bir Başlık yazabileceğiz:
MessageBox.Show("Hello World", "Başlık");

Gelelim üçüncü kullanım şeklimize MessageBox pencereleri sadece mesaj vermek için kullanılmıyor. Ayrıca mesaj sonucunda da kullanıcıya işlem yaptırabiliyoruz. Aşağıdaki kullanım şekliyle kullanıcıya gösterdiğimiz pencerede MessageBox fonksiyonunun standart Tamam butonunun dışına çıkarak Tamam ve İptal butonlarını kullanabileceğiz:
MessageBox.Show("Mesaj içeriği", "Başlık", MessageBoxButtons.OKCancel);

MessageBoxButtons ile sadece Tamam ve İptal butonları değil ayrıca aşağıdaki butonları da kullanabiliriz:

MessageBoxButtons.AbortRetryIgnore: Bu komut pencerede Durdur, Yeniden Dene, Yoksay butonlarını göstermemizi sağlar.

MessageBoxButtons.OK: Bu komut pencerede Tamam butonunu göstermemizi sağlar.

MessageBoxButtons.OKCancel: Bu komut pencerede Tamam ve İptal butonlarını göstermemizi sağlar.

MessageBoxButtons.RetryCancel: Bu komut pencerede Yeniden Dene ve İptal butonlarını göstermemizi sağlar.

MessageBoxButtons.YesNo: Bu komut pencerede Evet ve Hayır butonlarını göstermemizi sağlar.

MessageBoxButtons.YesNoCancel: Bu komut pencerede Evet, Hayır ve İptal butonlarını göstermemizi sağlar.

Gördüğümüz gibi MessageBox fonksiyonumuz giderek renkli bir görünüm alıyor. Bu kullanım şeklinde de MessageBox'ımıza bir ikon resmi koyabiliyoruz:

MessageBox.Show("Mesaj içeriği", "Başlık", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

Yukarıdaki örnek ile kullanıcıya bilgi ikonunun olduğu bir pencere gösteriyoruz. Ayrıya bu parametrede sadece bilgi ikonu ile sınırlı değil;

MessageBoxIcon.Asterisk: Bu komut pencerede genellikle bilgi mesajı vermede kullanılan "i" ikonunu göstermemizi sağlar.

MessageBoxIcon.Error: Bu komut pencerede genellikle hata mesajı vermede kullanılan kırmızı "X" ikonunu göstermemizi sağlar.

MessageBoxIcon.Exclamation: Bu komut pencerede genellikle hata mesajı vermede kullanılan sarı "!" ikonunu göstermemizi sağlar.

MessageBoxIcon.Hand: Bu komutta Error komutu ile aynı işlevdedir.
MessageBoxIcon.Information: Bu komutta Asterisk komutu ile aynı işlevdedir.

MessageBoxIcon.None: Bu komut ile herhangi bir ikon gösterilmez.

MessageBoxIcon.Question: Bu komut pencerede genellikle soru sorma işlemlerinde kullanılan "?" ikonunu göstermemizi sağlar.

MessageBoxIcon.Stop: Bu komutta Error komutu ile aynı işlevdedir.

MessageBoxIcon.Warning: Bu komut Exclamation komutu ile aynı işlevdedir.

Evet gelelim en son parametremize bu parametrede eklediğimiz butonlardan hangisinin aktif olacağını seçebileceğimiz 3 adet seçenek var. Button1, Button2 ve Button3:

MessageBox.Show("Mesaj içeriği", "Başlık", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);

Yukarıda gösterdiğim kullanımda kullanıcıya gösterilen pencerede İptal butonu aktif olacaktır.

MessageBoxDefaultButton.Button1: Bu komut penceredeki butonlardan ilkini aktif eder.

MessageBoxDefaultButton.Button2: Bu komut penceredeki butonlardan ikincisini aktif eder.

MessageBoxDefaultButton.Button3: Bu komut penceredeki butonlardan üçüncüsünü aktif eder.Aktif derken pencere gösterildiğinde seçili butondur.




 

 

4 Mart 2016 Cuma

Android Uygulama Bileşenleri

Bu yazımda Android altyapısını oluşturan bileşenlerden bahsedeceğim.Bir çok kaynakta farklı şekilde kategorize edilen bu bileşenleri ben 5 başlık altında topladım.

[caption id="attachment_147" align="aligncenter" width="429"]componentsOfAndroid Android Compenents[/caption]

-Aktivite
-Intent
-Servis
-İçerik Sağlayıcı
-Broadcast Receiver

İlk olarak bazı kitaplardan okuduğum kadarıyla aktivite bileşeninden bahsedeceğim Activity sınıfı tarafından oluşturulan nesneler uygulama içinde kullanılan ekranları temsil ederler.Örneğin bir e-posta uygulaması düşünün.E-postaların listesini göstermek için bir Activity'e sahiptir.Başka bir activity ise e-postayı okumak için , diğer bir Activity ise e-posta yazmak için var olmalıdır.Yani her ekran için ayrı ayrı Activity'ler olması gerekir.
Activity'ler iyi bir kullanıcı deneyimi oluşturmak için birlikte çalışmasına rağmen, her birini diğerinden bağımsız şekilde başlatabilirsiniz.Örneğin bir kamera uygulaması fotoğrafı paylaşmak için whatsapp uygulamasını başlatabilir.

İkinci olarak intent nesnesinden bahsedecek olursak , uygulamadaki diğer sınıfların çalıştırılmasına olanak veren bir nesne olarak çıkıyor karşımıza.Bu nesne sayesinde başka bir sınıf aracılığı ile yeni bir görünüm , yani yeni bir sayfaya geçiş yapabiliyoruz.

Üçüncü olarak Content Providers yani içerik sağlayıcılardan bahsedersek bu bileşen bir uygulamanın ortak veri kümesini yönetir.Bu sayede SQLite veritabanı oluşturabilirsiniz yada web üzerinde kalıcı olarak veri depolayıp sonradan erişebilirsiniz.İçerik sağlayıcılar ile diğer uygulamalar ile verileri değiştebilir ve sorgu yapabilirsiniz(Tabi eğer gerekli izinler verilmiş ise)

Örnek olarak Android işletim sistemi içerik sağlayıcı olarak bize kullanıcının kişiler listesini vermektedir.Uygun izinlere sahip bir uygulama içerik sağlayıcıyı ( Örneğin Contacts.Data ) kullanarak cihazın rehberine erişebilir.Mesela bir uygulama yazdınız ve rehbere erişmek istediğinizde bir içerik sağlayıcı kullanmanız gerekecektir.

Dördüncü olarak servisler , arkaplanda kullanıcıyı rahatsız etmeden gerekli olan işlemleri yapan bileşenlerdir mesela arkada müzik çalması veya ağ üzerine veri transferi gibi. Bir activity bir servisi tetikleyebilir ve onunla iletişime geçebilir.

Beşinci ve son olarak Broadcast Receiver işletim sistemi tarfından uygulamalara gönderilen sinyalleri dinlemek ve takip etmekle görevlidir.Yani uygulamamız telefona gelen çağrılardan sms lerden haberdar olabilir bunlar bu bileşen ile sağlanır.

Bu yazımda bazı kaynaklardan derlediğim bileşenlerden bahsetmeye çalıştım başka bir yazıda görüşmek dileği ile ....

3 Şubat 2016 Çarşamba

Android Geliştirme Özet Anlatım-2

Merhaba arkadaşlar bugün Buton,TextView oluşturup yazıyı nasıl görünmez yapabiliriz ve Button a tıklandığında aksiyon oluşturmayı göreceğiz.

Öncelikle main.xml , activity_main.xml  oluşturduğunuz projeye göre değişir ama ilk olarak gui arayüzü oluşturarak almaktansa xml dosyasına kodunu yazarak oluşturmak bana daha akılda kalıcı geliyor o yüzden oluştururken xml dosyasında kodlarını yazarak oluşturacağım.

İlk olarak TextView oluşturalım.

<TextView android:text="@string/string1"   android:id="@+id/string1TextView" android:layout_width="match_parent" android:layout_height="wrap_content"    />
İsterseniz alttaki satırı eklersiniz böylelikle invisible bir textviewniz olmuş olur ve herhangi bir aksiyon ile onu visible yapabilirsiniz.İlerde göstereceğim.
android:visibility="visible" 
Alltaki satır ise textview veya herhangi bir compenent e id verip daha sonra çağırmamızda sadece bu id yi kullanmamazı sağlar bir nevi relation id .
android:id="@+id/string1TextView"

android:text kısmına direk " " arasına text yazabilirsiniz ama daha sonra sürekli yeniden yazmak istemiyorsanız strings.xml kısmına tanımlayıp main.xmlde o tanımlı şekli ile kullanabilirsiniz.Örneğin string1 adında bir key oluşturdum ben orada içersinde "Merhaba ben prefix string" yazan string1 çağırdığım her yerde o yazı gözükecektir.Bunun için strings.xml dosyasına resources arasına şu alttaki satırı eklemeniz yeterlidir.
<string name="string1">merhaba ben prefix string</string>
Şimdide Button oluşturalım bunun içinde main.xml dosyamıza alttaki satırları giriyoruz.

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button1" android:text="@string/text_button1"/>

burada yine TextView 'de olduğu gibi string xml dosyasına text_button1 adında key oluşturdum onuda şu alttaki satırla yapıp burada sadece text_button1 yazarak çağırıyorum.
<string name="text_button1">Buraya Bas</string> 

Şimdi ise butonumuza basıldığı zaman çağıralacak bir method ekleyeceğiz.

android:onClick="onButtonClicked"
Yukarıdaki satırı <Button ... içerisine eklediğimiz takdirde button a basıldığı zaman onButtonClicked methodu çağıralacaktır.
Peki ama neyin nesi bu onButtonClicked ? Biz bunu biyerde napacağını söylememiz lazım ismi var implementasyonu yok .Bunun için hemen src klasörünün altında bulunan MainActivity.Java size göre değişr ama buradaki .java uzantılı dosyamıza geliyoruz.

public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
} 
Yukarıdaki satırların bulunduğu .java uzantılı dosyamızı bulduktan sonra Methodumuzu burada tanımlayıp ne yapacağını söyleceğiniz.( Unutmayın method burada tanımlanmaz ise butona basıldığında öyle bir method bulunmadığından dolayı program kapanacaktır.)

public void onButtonClicked(View view)
{
} 
 Satırını MainActivity classı içinde eklediğimizde şimdi ise onButtonClicked methodumuzu tanımlamış olduk şimdi butona basıldığında program hata vermez kapanmaz fakat boş bi fonksiyon gibi düşünün o haliyle kalacaktır hiç bir işlem yapmadan sadece içi boş olan methodu çağıracaktır.

Şimdi ise bu methodu impleme etmeye bir gözatalım.
"Bu methodumuz invisible yaptığımız textView mizi visible hale getirsin"
Peki bunu nasıl yapacağız ? Bir sonraki blog yazımda bunu anlatacağım.İyi Çalışmalar.

Android Geliştirme Özet Anlatım-2

Merhaba arkadaşlar bugün Buton,TextView oluşturup yazıyı nasıl görünmez yapabiliriz ve Button a tıklandığında aksiyon oluşturmayı göreceğiz.

Öncelikle main.xml , activity_main.xml  oluşturduğunuz projeye göre değişir ama ilk olarak gui arayüzü oluşturarak almaktansa xml dosyasına kodunu yazarak oluşturmak bana daha akılda kalıcı geliyor o yüzden oluştururken xml dosyasında kodlarını yazarak oluşturacağım.

İlk olarak TextView oluşturalım.

<TextView android:text="@string/string1"   android:id="@+id/string1TextView" android:layout_width="match_parent" android:layout_height="wrap_content"    />
İsterseniz alttaki satırı eklersiniz böylelikle invisible bir textviewniz olmuş olur ve herhangi bir aksiyon ile onu visible yapabilirsiniz.İlerde göstereceğim.
android:visibility="visible" 
Alltaki satır ise textview veya herhangi bir compenent e id verip daha sonra çağırmamızda sadece bu id yi kullanmamazı sağlar bir nevi relation id .
android:id="@+id/string1TextView"

android:text kısmına direk " " arasına text yazabilirsiniz ama daha sonra sürekli yeniden yazmak istemiyorsanız strings.xml kısmına tanımlayıp main.xmlde o tanımlı şekli ile kullanabilirsiniz.Örneğin string1 adında bir key oluşturdum ben orada içersinde "Merhaba ben prefix string" yazan string1 çağırdığım her yerde o yazı gözükecektir.Bunun için strings.xml dosyasına resources arasına şu alttaki satırı eklemeniz yeterlidir.
<string name="string1">merhaba ben prefix string</string>
Şimdide Button oluşturalım bunun içinde main.xml dosyamıza alttaki satırları giriyoruz.

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button1" android:text="@string/text_button1"/>

burada yine TextView 'de olduğu gibi string xml dosyasına text_button1 adında key oluşturdum onuda şu alttaki satırla yapıp burada sadece text_button1 yazarak çağırıyorum.
<string name="text_button1">Buraya Bas</string> 

Şimdi ise butonumuza basıldığı zaman çağıralacak bir method ekleyeceğiz.

android:onClick="onButtonClicked"
Yukarıdaki satırı <Button ... içerisine eklediğimiz takdirde button a basıldığı zaman onButtonClicked methodu çağıralacaktır.
Peki ama neyin nesi bu onButtonClicked ? Biz bunu biyerde napacağını söylememiz lazım ismi var implementasyonu yok .Bunun için hemen src klasörünün altında bulunan MainActivity.Java size göre değişr ama buradaki .java uzantılı dosyamıza geliyoruz.

public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
} 
Yukarıdaki satırların bulunduğu .java uzantılı dosyamızı bulduktan sonra Methodumuzu burada tanımlayıp ne yapacağını söyleceğiniz.( Unutmayın method burada tanımlanmaz ise butona basıldığında öyle bir method bulunmadığından dolayı program kapanacaktır.)

public void onButtonClicked(View view)
{
} 
 Satırını MainActivity classı içinde eklediğimizde şimdi ise onButtonClicked methodumuzu tanımlamış olduk şimdi butona basıldığında program hata vermez kapanmaz fakat boş bi fonksiyon gibi düşünün o haliyle kalacaktır hiç bir işlem yapmadan sadece içi boş olan methodu çağıracaktır.

Şimdi ise bu methodu impleme etmeye bir gözatalım.
"Bu methodumuz invisible yaptığımız textView mizi visible hale getirsin"
Peki bunu nasıl yapacağız ? Bir sonraki blog yazımda bunu anlatacağım.İyi Çalışmalar.