Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

GÖRSEL PROGRAMLAMA C# UYGULAMALARI Araş. Gör. Sefa TUNÇER.

Benzer bir sunumlar


... konulu sunumlar: "GÖRSEL PROGRAMLAMA C# UYGULAMALARI Araş. Gör. Sefa TUNÇER."— Sunum transkripti:

1 GÖRSEL PROGRAMLAMA C# UYGULAMALARI Araş. Gör. Sefa TUNÇER

2 C# Tip Dönüşümleri Araş. Gör. Sefa TUNÇER

3 Uygulama-1 Elemanları kullanıcı tarafından girilen 10 elemanlı string bir dizide, en uzun metni, en uzun metnin karakter sayısını, en uzun metnin index numarasını bulan ve ekrana yazdıran C# konsol kodunu yazınız. Araş. Gör. Sefa TUNÇER

4 Uygulama-1 Araş. Gör. Sefa TUNÇER

5 Uygulama-2 Verilen bir karakter dizininin Substring() metodunu kullanarak string içerisinde arama yapan ve kaç defa geçtiğini bulan C# console kodunu yazınız. Araş. Gör. Sefa TUNÇER

6 Uygulama-2 Araş. Gör. Sefa TUNÇER

7 Uygulama-3 İki sayının birbirine bölümünü ekrana yazdıran C# kodunu try, catch, finally yapısını kullanarak yazınız. Araş. Gör. Sefa TUNÇER

8 Uygulama-3 Araş. Gör. Sefa TUNÇER

9 Uygulama-4 Klavyeden girilen bir sayının kaç basamaklı olduğunu bulan C# kodunu yazınız. Araş. Gör. Sefa TUNÇER

10 Uygulama-4 int sayi, sayac=1, b=1; String s; Console.WriteLine("Sayi: "); s = Console.ReadLine(); sayi = Int32.Parse(s); while((sayi /b) >9) { b=b*10; sayac++; } Console.WriteLine(sayac + " basamaklı"); Araş. Gör. Sefa TUNÇER

11 Uygulama-5 SAYI TAHMİN OYUNU
Her tahminden sonra sayı bulunana kadar «Daha büyük tahmin yapınız» veya «Daha küçük tahmin yapınız» şeklinde uyarı veren ve sayının kaçıncı adımda bulunduğunu ekrana yazan C# kodunu yazınız. Do-while yapısını kullanınız. Araş. Gör. Sefa TUNÇER

12 Uygulama-5 int sayi,tahmin,sayac=0; Random rast=new Random(); sayi= rast.Next(1,11); do { sayac++; Console.Write("Tahmin : "); tahmin=Int32.Parse(Console.ReadLine()); if(tahmin>sayi) Console.WriteLine("Daha kucuk tahmın edın "); else Console.WriteLine("Daha buyuk tahmın edın "); }while (tahmin!=sayi); Console.WriteLine(sayac + ". defada buldunuz"); Araş. Gör. Sefa TUNÇER

13 Uygulama-6 Klavyeden girilen bir cümlede sesli harflerin sayısını bulan C# kodunu yazınız. Araş. Gör. Sefa TUNÇER

14 Uygulama-6 (1. Çözüm) int adet = 0; string cumle; cumle = Console.ReadLine(); for (int i = 0; i < cumle.Length; i++) { if (cumle[i]=='a' || cumle[i]=='e' || cumle[i]=='ı'|| cumle[i]=='i' || cumle[i]=='u' || cumle[i]=='ü' || cumle[i]=='o' || cumle[i]=='ö') adet++; } Console.WriteLine("sesli harf sayısı: {0}",adet); Araş. Gör. Sefa TUNÇER

15 Uygulama-6 (2. Çözüm) string cumle; char[] sesli = { 'a','e','ı','i','u','ü','o','ö'}; int adet = 0; cumle = Console.ReadLine(); for (int i = 0; i < cumle.Length; i++) for (int k = 0; k < sesli.Length; k++) if (cumle[i]==sesli[k]) { adet++; } Console.WriteLine("sesli harf sayısı : {0}",adet); Araş. Gör. Sefa TUNÇER

16 Class (Sınıf) Sınıf (class) bir nesnenin şeklini tanımlayan bir şablondur. Sınıf, verileri ve bu verileri işleyecek kodu içerir. Sınıf nesneleri oluşturmak için temel özellikleri içerir.Nesne(object) ‘ler sınıfların birer örneğidirler. Bu durumda sınıf, nesnelerin nasıl inşa edileceğini tanımlayan bir kılavuzdur diyebiliriz. Gerçek hayatta birçok nesne bulunur. Kitap, kalem, TV, araba vs. bunların hepsi birer nesnedir. Program için de bu durum farksızdır. Yani hayatımızı modelleyerek programlara aktarabiliriz. İşte bu nesnelerin belirli  özellikleri ve fonksiyonları vardır. Her arabanın kapısı olması veya hareket etmesi gibi. Örneğin yemek kitabı bir sınıftır, bu kitabın yardımıyla yapılacak olan yemekler ise birer nesnedir. Sınıf soyut bir ifadedir, nesneler oluşuncaya kadar fiziksel olarak bellekte yer almazlar. Sınıfta veriler veri üyelerinde(değişken), kod ise fonksiyon üyelerinde saklanır. Veri üyeleri örnek değişkenleri ve statik değişkenleri içerir. Fonksiyon üyeleri ise metot, yapılandırıcı, yok edici, indeksleyici, olaylar, operatörler ve özellikleri içerirler. Kaynak: Araş. Gör. Sefa TUNÇER

17 Class (Değişken-Metot Erişim Belirleyicileri)
Public: Her yerden erişilebilir. Private: Sadece tanımlandığı sınıf içerisinden erişilebilir. Internal: Sadece bulunduğu projede erişilebilir. Protected: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir. Protected Internal: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir. Ayrıca tanımlamanın aynı proje içerisinde olma şartı yoktur. Protected'dan farkı budur. Kaynak: Araş. Gör. Sefa TUNÇER

18 Uygulama – Class (Telefon Faturası)
Telefon faturası sınıfına ait bir örnek yapılması istenmektedir. Telefon adlı sınıfta Müşteri adı Adresi Telefon numarası Fatura tutarı gibi bilgilerin tutulması istenmektedir. Ayrıca toplam tutarı geri döndürmesi için Toplam() adlı bir fonksiyon ve bu fonksiyonun içinde Konuşma, Mesaj, Diğer tutarlar gibi farklı değerlerin toplanması istenmektedir. Bu değerleri ekrana yazdırmak için sınıfın Yazdir adlı bir fonksiyona sahip olması istenmektedir. Araş. Gör. Sefa TUNÇER

19 class Program { static void Main(string[] args) Fatura f1 = new Fatura(); Console.WriteLine(f1.Ad); Console.WriteLine(f1.No); Console.WriteLine(f1.Adres); Console.WriteLine(f1.Tutar); Fatura f2 = new Fatura(); f2.Ad = "Bilecik Yayıncılık"; f2.No = " "; f2.Adres = "BŞEÜ Mühendislik Fakültesi"; f2.Tutar = f2.Toplam(); Console.WriteLine(f2.Ad); Console.WriteLine(f2.No); Console.WriteLine(f2.Adres); Console.WriteLine(f2.Tutar); } public class Fatura public string Ad; public string No; public string Adres; public int Tutar; public Fatura() this.Ad = "Ankara Yayınevi"; this.Adres = "Kızılay/Ankara"; this.No = " "; this.Tutar = 30; public int Toplam() int Konusma, Mesaj, Diger; Console.Write("Konusma Tutarı:"); Konusma = int.Parse(Console.ReadLine()); Console.Write("Mesaj Tutarı:"); Mesaj = int.Parse(Console.ReadLine()); Console.Write("Diger Tutar:"); Diger = int.Parse(Console.ReadLine()); return Konusma + Mesaj + Diger; Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Araş. Gör. Sefa TUNÇER

20 Erişimci Metotlar (Get, Set)
Get: İlgili alanın içeriğini okumayı sağlar. Set: İlgili alanın içeriğine değer aktarmayı sağlar. Bu metotlar private olarak tanımlanan değişkenlerin değerlerine erişimi sağlamak veya bu değişkenlerin değerlerini değiştirmek amacıyla kullanılırlar. Yani private engelini aşmak için bu yapı kullanılır. Araş. Gör. Sefa TUNÇER

21 Uygulama – Class (Araba)
Araba adlı bir sınıf oluşturun. Bu sınıfta başka bir yerden erişimin sağlanamadığı ve arabanın rengini tutan bir renk değişkeni olsun. Bu sınıfın bir parametreden oluşan ve renk değerini içeren bir kurucu fonksiyonu olsun. Ayrıca bu sınıfta Araba’nın rengini öğrenebileceğimiz bir fonksiyon bulunsun. Araş. Gör. Sefa TUNÇER

22 Uygulama – Class (Araba)
static void Main(string[] args) { Araba araba; araba = new Araba("Kırmızı"); Console.WriteLine(araba.ArabaRengi()); araba = new Araba("Sarı"); Console.WriteLine(araba.Renk); araba.Renk = "Yeşil"; } class Araba private string renk; public Araba(string Renk) this.renk = Renk; public String ArabaRengi() return "Bu araba " + renk; public string Renk get { return renk; } set { renk = value;} Araş. Gör. Sefa TUNÇER

23 Uygulama – Erişimci Metotlar
class Program { static void Main(string[] args) Fatura f1 = new Fatura(); f1.Yaz(); Fatura f2 = new Fatura(); f2.Ad = "Bilecik Yayıncılık"; f2.No_Kontrol = " "; f2.Yaz(); } public class Fatura public string Ad; private string Tel_No; public string No_Kontrol get { return Tel_No; set { string N = value; int uzunluk = N.Length; if (uzunluk < 11) Console.WriteLine("Telefon Tel_No'su eksik"); else Tel_No = value; public Fatura() this.Ad = "Ankara Yayınevi"; this.Tel_No = " "; public void Yaz() Console.WriteLine(this.Ad); Console.WriteLine(this.Tel_No); Araş. Gör. Sefa TUNÇER

24 Class - Kalıtım Sınıflar arası kalıtım, mevcut sınıfların özelliklerinden, olaylarından ve metotlarından yararlanmayı sağlamaktadır. Örnek olarak, A sınıfı B sınıfından kalıtım alıyorsa, A sınıfı B sınıfındaki değişkenlere ve fonksiyonlara ulaşabilir. Fakat tam tersi geçerli değildir. Yani B sınıfından A’ya erişilemez. Yalnız private değişkenlere ve sınıflara erişim yapılamaz. Araş. Gör. Sefa TUNÇER

25 Uygulama - Kalıtım class Program:Aritmetik { static void Main(string[] args) int toplam = Toplama(100, 200); int carpim = Carpma(50, 100); Console.WriteLine("Toplam: " + toplam); Console.WriteLine("Çarpım: " + carpim); } class Aritmetik public static int Toplama(int i, int j) return i + j; public static int Carpma(int a, int b) return a * b; Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Araş. Gör. Sefa TUNÇER

26 Uygulama - Kalıtım class AnaSinif:Aritmetik { static void Main(string[] args) Aritmetik nesne = new Aritmetik(); int sonuc1 = Toplama(10,20); // Doğru int sonuc2 = nesne.Toplama(10,20); // Yanlış } class Aritmetik public static int Toplama(int i, int j) return i + j; Not: Statik metotları işletmek için söz konusu metodun tanımlı olduğu sınıftan yola çıkarak nesne hazırlamak gerekmez. Araş. Gör. Sefa TUNÇER

27 Uygulama – Kalıtım (Sealed)
class AnaSinif:Aritmetik { static void Main(string[] args) int toplam = Toplama(100, 200); int carpim = Carpma(50, 100); Console.WriteLine("Toplam: " + toplam); Console.WriteLine("Çarpım: " + carpim); } sealed class Aritmetik public static int Toplama(int i, int j) return i + j; public static int Carpma(int i, int j) return i * j; Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Bir sınıfın başka bir sınıftan kalıtım almasını engellemek istiyorsak sınıf tanımlamasını yukarıdaki gibi yaparız. Sealed ile işaret edilen sınıf herhangi bir sınıfın ana sınıfı yapılmak istendiğinde hata meydana gelir. Araş. Gör. Sefa TUNÇER

28 Class (Statik Değişken)
class AnaSinif { static void Main(string[] args) float fiyat = 1500; float kdvDahil; kdvDahil = fiyat * (1 + Katsayilar.kdv); Console.WriteLine(kdvDahil); fiyat = 2250; Katsayilar.kdv = 0.005f; } class Katsayilar public static float kdv = 0.15f; Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Not: Bir sınıf içerisinde kullanmak istediğimiz statik bir değişken için nesne oluşturmamıza gerek yoktur. Araş. Gör. Sefa TUNÇER

29 Uygulama – Class (Tarih)
class AnaSinif { static void Main(string[] args) Tarih t1 = new Tarih(); Console.WriteLine("Gun:" + t1.Gun + " Ay:" + t1.Ay + " Yıl:" + t1.Yil); Tarih t2 = new Tarih(15); Console.WriteLine("Gun:" + t2.Gun + " Ay:" + t2.Ay + " Yıl:" + t2.Yil); Tarih t3 = new Tarih(11,3); Console.WriteLine("Gun:" + t3.Gun + " Ay:" + t3.Ay + " Yıl:" + t3.Yil); } Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Araş. Gör. Sefa TUNÇER

30 Uygulama – Class (Tarih) >> Devamı
public class Tarih Gun = i; { public int Gun; public int Ay; public int Yil; public Tarih(int i,int j) public Tarih() DateTime bugun = DateTime.Today; Gun = bugun.Day; Ay = j; Ay = bugun.Month; Yil = bugun.Year; } public Tarih(int i) Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Araş. Gör. Sefa TUNÇER

31 Uygulama – Class (String Dizi)
class Sinifim_1 { static void Main(string[] args) string[] takim = new string[3]; takim[0] = "Galatasaray"; takim[1] = "Fenerbahçe"; takim[2] = "Beşiktaş"; Sinifim_2 sinif2 = new Sinifim_2(takim); Console.WriteLine("Devam etmek için bir tuşa basın"); Console.ReadLine(); } class Sinifim_2 public Sinifim_2(string[] dizi) int sayi = dizi.Length; for (int i = 0; i < sayi; i++) Console.WriteLine(dizi[i]); Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Araş. Gör. Sefa TUNÇER

32 Class (base komutu) class AnaSinif { static void Main(string[] args) Zaman zaman = new Zaman(16,59,14,10); Console.WriteLine(zaman.Saat); Console.WriteLine(zaman.Dakika); Console.WriteLine(zaman.Gun); Console.WriteLine(zaman.Ay); } class Tarih public int Gun; public int Ay; public Tarih(int g,int a) Gun = g; Ay = a; class Zaman:Tarih public int Saat, Dakika; public Zaman(int x,int y,int g,int a):base(g,a) Saat = x; Dakika = y; Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Base komutu: İki sınıftan biri diğerinden miras alıyorsa ve kurucu metotlar parametre almışsa, miras alan sınıfın kurucu metodunda kullanılır. Miras alan sınıf, miras veren sınıfın kurucu metodunda bulunan parametreleri bu komut ile eklemek zorundadır. Araş. Gör. Sefa TUNÇER

33 Class (Virtual-Override)
class AnaSinif { static void Main(string[] args) Galatasaray gs = new Galatasaray(); gs.Renkler(); } class Takimlar public virtual void Renkler() Console.WriteLine("Kırmızı-Beyaz"); class Galatasaray : Takimlar public override void Renkler() Console.WriteLine("Sarı-Kırmızı"); Kaynak: Memik Yanık, Visual Studio 2010 Eşliğinde Visual C# 4.0 for .NET Framework 4.0 Miras alan sınıflar, miras aldığı sınıftaki metodun aynısını kullandığında bir uyarı alır. Bu uyarıyı engellemek amacıyla virtual-override kavramları devreye girer. Yani eğer aynı metod türetilen sınıflarda da kullanılacak ve metodun işlevi farklı olacaksa bu yapıyı kullanmak gerekmektedir. Araş. Gör. Sefa TUNÇER

34 Abstract Class (Rehber)
abstract class Sporlar { abstract public void adres(string str); } class Basketbol : Sporlar public override void adres(string str) Console.WriteLine("Adres:" + str); class Voleybol : Sporlar Abstract sınıfta sadece deklare işlemi yapılır. Fonksiyonlar veya değişkenler abstract sınıf içerisinde kullanılmazlar. Abstract sınıflar rehber sınıflardır. Kullandığı tüm değişken ve metotlar kalıtım alınan diğer sınıflarda kullanılır. Abstract sınıfta oluşturulan tüm metotlar kalıtım alan diğer sınıflarda override edilmek zorundadır. Araş. Gör. Sefa TUNÇER


"GÖRSEL PROGRAMLAMA C# UYGULAMALARI Araş. Gör. Sefa TUNÇER." indir ppt

Benzer bir sunumlar


Google Reklamları