- 28 Mar 2020
- 6,312
- 4,769
Giriş
Merhaba, C# diline yeni başlayan arkadaşlar için program geliştirme deneyimi olması amaçlı bir seri hazırlayayım dedim.
Bu seri de, örnekler ile pek çok 'basit' program geliştireceğiz. Bu sayede temel programlama bilginizin yanında program geliştirme tecrübesi de kazanmış olacaksınız.
Tabi seri ilerledikçe yapılan programların zorluğu da artabilir.
İlk yazımızda yapacağımız program da ise pek bir bilgi gerektirmeyen bir şey olsun dedim.
Bu yüzden Vücut(Beden) Kitle Endeksi hesaplama programı yapmayı uygun gördüm.
Not: Programı konsol üzerinde değil, form application üzerinde geliştireceğiz ki daha kullanışlı olsun.
İyi okumalar dilerim.
Yapılış
Öncelikle Visual Studio programını açıyorum ve "VKE '(Vücut Kitle Endeksi)' Hesaplayıcı" adında bir proje oluşturuyorum.
Projemizi oluşturduktan sonra tasarımı yukarıdaki gibi oluşturuyoruz.
Öncelikle formun üstüne tıklıyorum ve sağ tarafta açılan panelden "Text (Form1)" yazan kısma "VKE Hesaplayıcı" yazıyorum ve formun başlığını değiştiriyorum.
Sonrasında sol taraftan araç kutusunu açıyorum ve sırayla aşağıdaki materyalleri ekliyorum.
GroupBox
Label
TextBox
Button
Ve resimdeki gibi hizalıyorum.
Evet, tasarımımız tamamlandı. Şimdi de yavaştan kodlara geçelim.
Burada işlemin başlatan kısım "Hesapla" adındaki tuşumuz.
Tıklandığında çalışmasını sağlamak için üzerine 2 defa tıklıyoruz ve tuşun kod içeriğine gidiyoruz.
Kodumuz ilk başta yukarıdaki gibi olacak. Biz burada kodlarımızı "button1_click" yazan metodumuz içine yazacağız.
Şimdi burada "textBox" ve "radioButton" içindeki değerleri almalıyız.
textBox içindeki değeri almak için gerekli kod
C#:
double DegiskenAdi = Convert.ToDouble(textBox1.text);
Bu kod sayesinde textBox içindeki değer, değişkenin içine aktarılacak.
Peki Convert.ToDouble(); ne? Diye soracaklar için ise; bu metodumuz textBox içindeki string değerimizi double türüne çevirmek için kullanılır.
Verilerimizi çektiğimize göre şimdi de hesaplama kısmına geçelim.
Vücut Kitle Endeksi hesaplama formülü: Boy / Kilo(2)
Tabi buradaki hesapta boy cm cinsinden değil de, metre cinsinden hesaplanmalı.
O yüzden aldığımız boy değerini aşağıdaki kod ile metre cinsine çeviriyoruz.
C#:
double BoyMetreCinsinden = BoyMetreCinsinden / 100.0;
Kod anlamında ise aşağıdaki gibi olacaktır.
C#:
double VucutKitleEndeksi = BoyMetreCinsinden / (Kilo * Kilo);
Tabi sadece bu şekilde olmak zorunda değil, başka şekillerde de bu işlem yapılabilir. Mesela Matematik kütüphanesinin içindeki pow(); metodu ile de bu işlem yapılabilir.
C#:
double VucutKitleEndeksi = BoyMetreCinsinden / Math.Pow(Kilo, 2);
Evet, vücut kitle endeksi hesaplama işlemimiz bitti. Şimdide bu veriye göre şiddetinin ne kadar olduğunu hesaplatalım.
Bunun için koşullu yapıları kullanacağız ve sonuca göre de ekrana bulduğumuz değeri yazdıracağız.
Bunun için aşağıdaki şemayı kullanacağız.
0 - 18,4: Zayıf
18,5 - 24,9: Normal
25,0 - 29,9: Fazla Kilolu
30,0 - 34,9: Şişman (Obez) - I. Sınıf
35,0 - 44,9: Şişman (Obez) - II. Sınıf
45,0 ve üstü: Aşırı Şişman (Aşırı Obez) - III. Sınıf
Kullanacağımız kod
C#:
if (VucutKitleEndeksi < 18.5)
{
label5.Text = "Vücut Kitle Endeksi: " + VucutKitleEndeksi.ToString("F2") + " (Zayıf)";
}
else if (VucutKitleEndeksi < 25)
{
label5.Text = "Vücut Kitle Endeksi: " + VucutKitleEndeksi.ToString("F2") + " (Normal)";
}
else if (VucutKitleEndeksi < 30)
{
label5.Text = "Vücut Kitle Endeksi: " + VucutKitleEndeksi.ToString("F2") + " (Fazla Kilolu)";
}
else if (VucutKitleEndeksi < 35)
{
label5.Text = "Vücut Kitle Endeksi: " + VucutKitleEndeksi.ToString("F2") + " (Şişman (Obez) - I. Sınıf)";
}
else if (VucutKitleEndeksi < 45)
{
label5.Text = "Vücut Kitle Endeksi: " + VucutKitleEndeksi.ToString("F2") + " (Şişman (Obez) - II. Sınıf)";
}
else
{
label5.Text = "Vücut Kitle Endeksi: " + VucutKitleEndeksi.ToString("F2") + " (Aşırı Obez - III. Sınıf)";
}
Şimdiye kadar yaptığımız kısım yukarıdaki gibi gözükecektir.
Ancak bu hali ile programımız tam bitti sayılmaz çünkü textBox içine sayı harici herhangi bir şey girilmemesi gerekiyor.
(Eğer bunu yapmaksak kullanıcılar harf vb. şeyler girdiğinde program hata verecektir..)
Bunun için textBox'ımıza bir kere tıklıyoruz ve özellikler bölümünden kırmızı yerle işaretlenmiş kısma basıp 'KeyPress' kısmına çift tıklıyoruz.
Bu engelleme işlemi için kullanacağımız kod
C#:
if (!char.IsDigit(e.KeyChar) && e.KeyChar != 8)
{
e.Handled = true;
}
Kodumuz son olarak yukarıda ki şekilde görünecektir.
Genel olarak programımız bitti, şimdi de çalıştıralım.
Kapanış
Evet, yazımız burada bitti.
İlk proje için gayet basit bir örnek olduğunu düşünüyorum, sorularınız olursa altta belirtebilirsiniz.
Sonraki programlarda görüşmek üzere, iyi forumlar.