3. Hafta Ders Notları (18.07.2020 - 19.07.2020)

ASP.Net MVC Core, C#, Ado.Net, Entity Framework, Windows Form, SQL Server, Console, HTML, CSS, JQuery, Web Api
Kullanıcı avatarı
AzS
1500+
1500+
Mesajlar: 8953
Kayıt: 02 Ağu 2019 08:10

3. Hafta Ders Notları (18.07.2020 - 19.07.2020)

Mesaj gönderen AzS »

Sınıflar-Metotlar Aynı şekilde; program geliştirirken bütün metotları tek bir sınıfın içinde tanımlamak yerine benzer görevleri yerine getiren metotları bir sınıf içerisinde tanımlamak kod tekrarını azaltır, okunabilirliği arttırır ve programın daha kolay geliştirilebilmesini sağlar. Erişim Belirleyicisi: Metot ve özelliklere olan erişimin sınırlarını belirtmektedir.
1. Private: Sadece tanımlandığı sınıf içerisinden erişilebilir.
2. Public: Her yerden erişilebilir.
3. Internal: Sadece bulunduğu projede erişilebilir.
4. Protected: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir.

Klavyeden girilen bilgilerler yamuğun alanını hesaplayan yamuk sınıfı üretip,fonksiyon kullanıp hesaplama yapan kod satırlarını yazınız.

Kod: Tümünü seç

namespace ConsoleApp1
{
class yamuk
{
public double tavan;
public double taban;
public double yukseklik;
public void alan()
{
Console.Write("Yamuk Alanı=" +(taban+tavan)/2*yukseklik);
}
}
class Program
{
static void Main(string[] args)
{
yamuk ym2 = new yamuk();Yamuk Sınıfından değişkenlere erişmek için nesne türettik
Console.Write("Taban Değeri Giriniz=");
ym2.taban = Convert.ToDouble(Console.ReadLine());//Taban Bilgisi erişimi
Console.Write("Tavan Değeri Giriniz=");
ym2.tavan = Convert.ToDouble(Console.ReadLine());//Tavan bilgisi erişimi
Console.Write("Yükseklik Değeri Giriniz=");
ym2.yukseklik = Convert.ToDouble(Console.ReadLine());//Yükseklik erişimi
ym2.alan();//Alan hesabını yapıp ekrana yazdırma fonksiyonunu çağırma
Console.ReadKey();
}
Resim

NOT= Fonksiyon içerisinde void değer döndürmeyip sadece sonucu Main fonksiyonuna yönlendirir. Return döndürme metodunu da tanımlamak için void kullanılmaz tip kullanılır.

Kod: Tümünü seç

class yamuk
{
public double tavan;
public double taban;
public double yukseklik;
public double alan()
{
return (taban+tavan)/2*yukseklik);
}
}
class Program
{
static void Main(string[] args)
{
yamuk ym2 = new yamuk();//Yamuk Sınıfından değişkenlere erişmek için nesne
Console.Write("Taban Değeri Giriniz=");
ym2.taban = Convert.ToDouble(Console.ReadLine());//Taban Bilgisi erişimi
Console.Write("Tavan Değeri Giriniz=");
ym2.tavan = Convert.ToDouble(Console.ReadLine());//Tavan bilgisi erişimi
Console.Write("Yükseklik Değeri Giriniz=");
ym2.yukseklik = Convert.ToDouble(Console.ReadLine());//Yükseklik erişimi
Console.Write( ym2.alan());
Dairenin çevresini ve alanını hesaplayan programı metod kullanarak yazınız.

Kod: Tümünü seç

class daire
{
public double yarıcap;
public double cevre()
{
return (2 * Math.PI * yarıcap);
}
public double alan()
{
return (Math.PI * Math.Pow(yarıcap, 2));
}
}
class Program
{
static void Main(string[] args)
{
daire daire = new daire();
Console.Write("Yarıçap Değeri Giriniz=");
daire.yarıcap = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Alanı=" + daire.alan());
Console.WriteLine("Çevresi=" + daire.cevre());
Resim

Overloading (Metodların aşırı yüklenmesi)

Kod: Tümünü seç

class Matematik
{
public void toplama(int a,int b)
{
Console.WriteLine("Toplama Sonucu=" + (a + b));
}
public void toplama(double a, double b)
{
Console.WriteLine("Toplama Sonucu=" + (a + b));
}
public void toplama(string a, string b)
{
Console.WriteLine("Toplama Sonucu=" + (a + b));
}
}
class Program
{
static void Main(string[] args)
{
Matematik m1 = new Matematik();
m1.toplama(2, 3);
m1.toplama(2.3, 5.2);
m1.toplama("Yaren", "Ufuk");
Resim

Sınıf kullanarak hesap makinesi programı kod satırlarını yazınız.

Kod: Tümünü seç

class Matematik
{
public double sayi1, sayi2;
public void toplama()
{
Console.WriteLine("Toplama Sonucu=" + (sayi1 + sayi2));
}
public void Cikarma()
{
Console.WriteLine("Çıkarma Sonucu=" + (sayi1 - sayi2));
}
public void Carpma()
{
Console.WriteLine("Çarpma Sonucu=" + (sayi1*sayi2));
}
public void Bolme()
{
Console.WriteLine("Bölme Sonucu=" + (sayi1 / sayi2));
}
}
class Program
{
static void Main(string[] args)
{
int islem;
Matematik matematik = new Matematik();
do
{
Console.Write("1.Sayıyı Giriniz=");
matematik.sayi1 = Convert.ToDouble(Console.ReadLine());
Console.Write("2.Sayıyı Giriniz=");
matematik.sayi2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("1.Toplama 2.Çıkarma 3.Çarpma 4.Bölme .........0 ile çıkınız");
islem = Convert.ToInt16(Console.ReadLine());
switch (islem)
{
case 1: matematik.toplama(); break;
case 2: matematik.Cikarma(); break;
case 3: matematik.Carpma(); break;
case 4: matematik.Bolme(); break;
}
} while (islem != 0);
Resim

İdeal kiloyu hesaplayan programın kod satırlarını yazınız.

Kod: Tümünü seç

class İdeal
{
public double boy, yil,kilo,k,yas,ideal;
public string cinsiyet;
public void hesapla()
{
yas = DateTime.Now.Year - yil;
ideal= ((boy / 100 + yas) / 10) *k;
if (cinsiyet == "e" || cinsiyet == "E")
{
k = 0.9;
ideal = (boy - 100 + yas / 10) * k;
Console.WriteLine("İdeal Kilonuz=" + ideal);
}
else
{
k = 0.8;
ideal = (boy - 100 + yas / 10) * k;
Console.WriteLine("İdeal Kilonuz" + ideal);
}
}
}
class Program
{
static void Main(string[] args)
{
İdeal ideal = new İdeal();
Console.Write("Boyunuz=");
ideal.boy = Convert.ToDouble(Console.ReadLine());
Console.Write("Doğum Yılınız=");
ideal.yil = Convert.ToDouble(Console.ReadLine());
Console.Write("Cinsiyet(E/K)=");
ideal.cinsiyet = Console.ReadLine();
Console.Write("Gerçek Kilonuz=");
ideal.kilo = Convert.ToDouble(Console.ReadLine());
if(ideal.ideal == ideal.kilo)
{
ideal.hesapla();
Console.WriteLine("Bravo...İdeal Kilodasınız");
}
else if(ideal.ideal > ideal.kilo)
{
ideal.hesapla();
Console.WriteLine("Zayıfsınız...");
}
else if(ideal.ideal < ideal.kilo)
{
ideal.hesapla();
Console.WriteLine("Şişmansınız...");
}
Resim

Sayı tut metodu kullanarak klavyeden 1 gönderilince tek sayı 2 gönderilince çift sayı üreten kod satırlarını yazınız.

Kod: Tümünü seç

class sayitut
{
public int sayi1, sayi2, gelen;
public void SayiTut()
{
Random rastgele = new Random();
if (gelen == 1) {
do {
sayi1 = rastgele.Next(1, 101);
sayi2 = sayi1 % 2;
} while (sayi2 !=1);
Console.Write("Tek sayi=" + sayi1);}
if (gelen == 2) {
do
{
sayi1 = rastgele.Next(1, 101);
sayi2 = sayi1 % 2;
} while (sayi2 != 0);
Console.Write("Çift Sayı=" + sayi1);}
}
}
class Program
{
static void Main(string[] args)
{
sayitut tut = new sayitut();
Console.Write("1 veya 2 giriniz=");
tut.gelen = Convert.ToInt16(Console.ReadLine());
tut.SayiTut();
Resim

Bir araca ait gittiği yol ve gidiş süresi klavyeden girildiğinde ortalama hızını hesaplayıp ekrana yazan C# konsol uygulamasını yazınız.

Kod: Tümünü seç

class Arac
{
double yol;
double sure;
double ortalama()
{
return yol / sure;
}
class Program
{
static void Main(string[] args)
{
Arac arac = new Arac();
Console.Write("Aldığı yol=");
arac.yol = Convert.ToDouble(Console.ReadLine());
Console.Write("Aldığı süre=");
arac.sure = Convert.ToDouble(Console.ReadLine());
arac.ortalama();
Console.WriteLine("Ortalama Hızı {0} km/h'dir." , arac.ortalama());
Console.ReadKey();
}
}
}
Resim

Static metot tanımlamaları ve parametre kullanımı

Kod: Tümünü seç

namespace ConsoleApp1
{
class sinif1
{
public int topla1(int sayi1,int sayi2)
{
return sayi1 + sayi2;
}
}
class sinif2
{
public static int topla2 (int sayi1,int sayi2)
{
return sayi1 + sayi2;
}
}
class Program
{
public static int topla(int sayi1,int sayi2)
{
return sayi1 + sayi2;
}
static void Main(string[] args)
{
Console.WriteLine(topla(5, 10));
//********SINIF1 DEN ÇAĞIRMA********//
sinif1 snf1 = new sinif1();
Console.WriteLine(snf1.topla1(4,7));
//********SINIF2 DEN ÇAĞIRMA********//
Console.WriteLine(sinif2.topla2(6, 4));//Static tanımlama yapıldığı zaman yeni bir nesne oluşturmaya ihtiyaç yoktur.
Resim

Bir otoparkta park eden taksinin 1 saati 5TL,minibüsün 6TL,ticarinin 6.5 TL’dir. Araçların 1 saatten fazla kaldıklarından ödeyeceği fark sırayla %20,%21,5,%25 tir. Klavyeden girilen araç tipi ve saat bilgileriyle ödeyeceği ücret miktarını hesaplayan kod satırlarını yazınız.
Resim
Resim

Windows Form Uygulamaları
Form uygulamalarında en bilinmesi gereken en önemli metot form geçişlerini sağlayan Form.Show() metodudur. Form içerisine yazılan this.Hide() metodu ise diğer forma geçildiği zaman eski formu
gizlemektedir. this.Close() metodu ise o formu direk olarak kapatan metottur. Ancak bu metodu ana formda uygularsak uygulamayı direk olarak kapatır.
Önemli özelliklerden bir tanesi ise kod ile label eklenmesidir.

Kod: Tümünü seç

Label label2 = new Label();
this.Controls.Add(label2);
label2.Text = "Selam...";
AutoSize() özelliği ise label içini otomatik boyutlandırmaktadır. True ve false olarak iki değer almaktadır. True dersek otomatik boyutlandırmaktadır.
Font() sınıfından da label dizayn edebiliriz. ForeColor() özelliği kullanarak değişik renkleri kullanabiliriz.

Kod: Tümünü seç

label2.AutoSize = true;
label2.Font = new Font("Comic Sans Ms", 15, FontStyle.Italic);
label2.ForeColor = Color.Red;
TextBox içerisindeki verileri Listbox içerisine yazan kod satırlarını yazınız.

Kod: Tümünü seç

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAktar_Click(object sender, EventArgs e)
{
string metin = textBox1.Text;
listBox1.Items.Add(metin);
}
}
Resim

Farklı olarak kullanacağımız metotta aşağıdaki kodda mevcuttur. Bu kodla da alt alta yazabilmemiz gerektiğinde kullanırız.

Kod: Tümünü seç

private void btnAktar_Click(object sender, EventArgs e)
{
for(int i = 0; i < textBox1.Lines.Length; i++)
{
listBox1.Items.Add(textBox1.Lines[i]);
}
}
Resim

Textbox içerisindeki metni tersten yazan kod satırlarını yazınız.

Kod: Tümünü seç

private void btnCevir_Click(object sender, EventArgs e)
{
char[] str=textBox1.Text.ToCharArray();//Metni karakter karakter alıp diziye atma islemi
Array.Reverse(str);//Diziyi tersine çevirme metodu
string strTers = new string(str); //TextBox içerisine yalnızca string ifadeler yazıldığı için stringe çevirme işlemi yaptık.
textBox2.Text = strTers; //TextBox içerisine yazdırma
}
}
Resim

Basit bir hesap makinesi yapan programın kod satırlarını yazınız.

Kod: Tümünü seç

private void btnTopla_Click(object sender, EventArgs e)
{
int sayi1 = Convert.ToInt16(tbSayi1.Text);
int sayi2 = Convert.ToInt16(tbSayi2.Text);
int sonuc;
sonuc = sayi1 + sayi2;
tbSonuc.Text = sonuc.ToString();
}
private void btnCikar_Click(object sender, EventArgs e)
{
int sayi1 = Convert.ToInt16(tbSayi1.Text);
int sayi2 = Convert.ToInt16(tbSayi2.Text);
int sonuc;
sonuc = sayi1 - sayi2;
tbSonuc.Text = sonuc.ToString();
}
private void btnCarp_Click(object sender, EventArgs e)
{
int sayi1 = Convert.ToInt16(tbSayi1.Text);
int sayi2 = Convert.ToInt16(tbSayi2.Text);
int sonuc;
sonuc = sayi1 * sayi2;
tbSonuc.Text = sonuc.ToString();
}
private void btnBol_Click(object sender, EventArgs e)
{
int sayi1 = Convert.ToInt16(tbSayi1.Text);
int sayi2 = Convert.ToInt16(tbSayi2.Text);
double sonuc;
if (sayi2 == 0) { MessageBox.Show("Sayi 0'a bölünmez"); }
else
{
sonuc = sayi1 / sayi2;
tbSonuc.Text = sonuc.ToString();
}
}
Resim

İdeal kilo bulma uygulaması yapan uygulamanın kod satırlarını yazınız.

Kod: Tümünü seç

private void btnHesap_Click(object sender, EventArgs e)
{
double kilo, boy, yas,ideal;
kilo = Convert.ToDouble(tbKilo.Text);
boy = Convert.ToDouble(tbBoy.Text);
yas = DateTime.Now.Year - Convert.ToDouble(tbDogum.Text);
if (rbErkek.Checked)
{
ideal = (boy - 100 + yas / 10) * 0.9;
tbIdeal.Text = ideal.ToString();
if (ideal == kilo){ MessageBox.Show("Tebrikler");}
else if (ideal > kilo) { MessageBox.Show("Zayıfsınız..."); }
else if (ideal < kilo) { MessageBox.Show("Şişmansınız..."); } }
if (rbKadin.Checked)
{
ideal = (boy - 100 + yas / 10) * 0.8;
tbIdeal.Text = ideal.ToString();
if (ideal == kilo) { MessageBox.Show("Tebrikler"); }
else if (ideal > kilo) { MessageBox.Show("Zayıfsınız..."); }
else if (ideal < kilo) { MessageBox.Show("Şişmansınız..."); }
}
Resim

Radio Button Kullanımı
RadioButton.Checked metodu radio seçildikten sonraki tetiklemeleri gösterir.Yani seçildikten sonra button a basıldıktan sonra aktif olur.
RadioButton_CheckedChanged ise radio button seçildiği anda tetiklenir.Yani herhangi bir button kullanılmaya gerek kalmadan aktif olur.

Kod: Tümünü seç

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked) { label1.Text = radioButton1.Text; }
if (radioButton2.Checked) { label1.Text = radioButton2.Text; }
if (radioButton3.Checked) { label1.Text = radioButton3.Text; }
}
Resim

Kod: Tümünü seç

private void btnGoster_Click(object sender, EventArgs e)
{
if (radioButton1.Checked) { label1.Text = radioButton1.Text; }
if (radioButton2.Checked) { label1.Text = radioButton2.Text; }
if (radioButton3.Checked) { label1.Text = radioButton3.Text; }
}
Form ekranında 10-20-30-40 butonları ve artır-azalt radio butonları olacak.Sayı butonlarına basıldığında textboxtaki sayısı tıklama kadar artıran kod satırlarını yazınız.

Kod: Tümünü seç

public partial class Form1 : Form
{ int sayi = 0;
public Form1()
{
InitializeComponent();
}
private void btn10_Click(object sender, EventArgs e)
{
if (rbArtir.Checked)
{
sayi = sayi + 10;
tbSayi.Text = sayi.ToString();
}
if (rbAzalt.Checked)
{
sayi = sayi - 10;
tbSayi.Text = sayi .ToString();
}
}
private void btn20_Click(object sender, EventArgs e)
{
if (rbArtir.Checked)
{
sayi = sayi + 20;
tbSayi.Text = sayi.ToString();
}
if (rbAzalt.Checked)
{
sayi = sayi - 20;
tbSayi.Text = sayi.ToString();
}
}
private void btn30_Click(object sender, EventArgs e)
{
if (rbArtir.Checked)
{
sayi = sayi + 30;
tbSayi.Text = sayi.ToString();
}
if (rbAzalt.Checked)
{
sayi = sayi - 30;
tbSayi.Text = sayi.ToString();
}
}
private void btn40_Click(object sender, EventArgs e)
{
if (rbArtir.Checked)
{
sayi = sayi + 40;
tbSayi.Text = sayi.ToString();
}
if (rbAzalt.Checked)
{
sayi = sayi - 40;
tbSayi.Text = sayi.ToString();
}
}
}
Resim

Butona her basıldığında butonun içerisindeki sayıyı artıran kod satırını yazınız.

Kod: Tümünü seç

public partial class Form1 : Form
{
int sayi = 0;
public Form1()
{
InitializeComponent();
}
private void btnTrigger_Click(object sender, EventArgs e)
{
sayi = sayi + 1;
btnTrigger.Text = sayi.ToString();
if (sayi == 10)
{
MessageBox.Show("Yeeeeetteeeerrr....");
Application.Exit();
}
}
}
Resim

CheckBox Kullanımı
checkBox1.Checked() butonla tetiklenen metottur. checkBox1 CheckedChanged() ise sadece seçildiğinde tetiklenir. Button tetiklemesine ihtiyaç yoktur.

Kod: Tümünü seç

private void btnHesapla_Click(object sender, EventArgs e)
{
double tutar, toplam;
tutar = Convert.ToDouble(textBox1.Text);
if (checkBox1.Checked == true)
{
toplam = tutar - (tutar * 0.2);
label2.Text = toplam.ToString();
}
else { label2.Text = tutar.ToString(); }
}
Resim

Bir restoranda verilen siparişleri fiyatlarına göre hesaplayıp gösteren bir uygulama.

Kod: Tümünü seç

private void btnHesapla_Click(object sender, EventArgs e)
{
double toplam,sandvic,hamburger,kola ;
if (checkBox1.Checked == true)
{
toplam = 10;
label2.Text = toplam.ToString();
}
if (checkBox2.Checked == true)
{
toplam = 15;
label2.Text = toplam.ToString();
}
if (checkBox3.Checked == true)
{
toplam = 5;
label2.Text = toplam.ToString();
}
if(checkBox1.Checked == true && checkBox2.Checked == true)
{
toplam = 10 + 15;
label2.Text = toplam.ToString();
}
if(checkBox1.Checked == true && checkBox3.Checked == true)
{
toplam = 10 + 5;
label2.Text = toplam.ToString();
}
if (checkBox2.Checked == true && checkBox3.Checked == true)
{
toplam = 15 + 5;
label2.Text = toplam.ToString();
}
if (checkBox2.Checked == true && checkBox3.Checked == true && checkBox1.Checked == true)
{
toplam = 15 + 5 + 10;
label2.Text = toplam.ToString();
}
if (checkBox2.Checked == false && checkBox3.Checked == false && checkBox1.Checked == false)
{ MessageBox.Show("Lütfen Seçim Yapınız"); }
Resim

Rastgele iki sayı üretip işlem yaptıran ve bize 10 hak verip sonuç tahmin ettiren programın kod satırlarını yazınız.

Kod: Tümünü seç

public partial class Form1 : Form
{ double sonuc;
string isaret;
int hak = 10, tahmin,skor=0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int sayi1, sayi2, islem;
Random rastgele = new Random();
tahmin = Convert.ToInt32(tbTahmin.Text);
sayi1 = rastgele.Next(1, 10);
sayi2 = rastgele.Next(1, 10);
islem = rastgele.Next(0, 4);
if (islem == 0) { sonuc = sayi1 + sayi2; isaret = islem.ToString(); isaret = "+"; }
else if (islem == 1) { sonuc = sayi1 - sayi2; isaret = islem.ToString(); isaret = "-"; }
else if (islem == 2) { sonuc = sayi1 * sayi2; isaret = islem.ToString(); isaret = "*"; }
else if (islem == 3) { sonuc = sayi1 / sayi2; isaret = islem.ToString(); isaret = "/"; }
if (sonuc == tahmin)
{
skor++;
label1.Text = "Cevabınız Doğru" + " " + sayi1 + " " + isaret + " " + sayi2 + " = " +sonuc ; }
else
{
hak--;
label1.Text = "Cevabınız Yanlış" + " " + sayi1 + " " + isaret + " " + sayi2 + " = " + sonuc + " Kalan Hakkınız=" + hak; ;
if (hak == 0)
{
MessageBox.Show("Üzgünüm Kaybettiniz...Skorunuz=" + skor);
}
}
tbTahmin.Clear();
}
Resim
Kullanıcı avatarı
AzS
1500+
1500+
Mesajlar: 8953
Kayıt: 02 Ağu 2019 08:10

Re: 3. Hafta Ders Notları (18.07.2020 - 19.07.2020)

Mesaj gönderen AzS »

Kullanıcı avatarı
AzS
1500+
1500+
Mesajlar: 8953
Kayıt: 02 Ağu 2019 08:10

Re: 3. Hafta Ders Notları (18.07.2020 - 19.07.2020)

Mesaj gönderen AzS »

Yeni Başlık Cevapla

“Yazılım Uzmanlığı Ders Notları” sayfasına dön