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

Slides:



Advertisements
Benzer bir sunumlar
Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
Advertisements

C# - Metotlar.
Fonksiyonlar.
JavaScript Birinci Hafta.
Tuğba DEMİREL
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
String Diziler(Katarlar)
Selçuk Üniversitesi’nin Bilişime Gönül Veren Gençleri
BPR152 ALGORİTMA VE PROGRAMLAMA - II
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
NESNEYE YÖNELİK PROGRAMLAMA
DİZİLER.
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
NESNE TABANLI PROGRAMLAMA -METOTLAR-
METODLAR.
C# Metot Overloading (Aşırı yükleme)
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Metotlar.
METOTLAR.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
JAVA’DA DÖNGÜLER.
Kalıtım , Sınıf Asli Ergün.
Demet AYDIN METODLAR Demet AYDIN
Nesneye Dayalı Programlama
Ders İçeriği Liste Soyut veri yapısı (ADT)
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
JAVA PROGRAMLAMA ORNEKLER
Görsel C# ile Windows Programlama
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Random... Rastgele Sayı Atamak...
BTP206– Görsel Programlama II
Fonksiyonlar.
BİLGİSAYAR programlama II
KALITIM(INHERITANCE) Öğr.Gör. Murat ASLANYÜREK. KALITIM KAVRAMINA GİRİŞ  Kalıtım, sınıflardan yeni sınıflar türetmeyi sağlar.  Türetilen yeni sınıflar,
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Prof. Dr. Ümit Kocabıçak Prof. Dr. Cemil Öz Doç. Dr. Ahmet Turan.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
C Programlama Dili Bilgisayar Mühendisliği.
Nesneye Dayalı Programlama
C# ÖRNEK UYGULAMALAR C# Örnek Uygulamalar 1
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
Excel’de VBA Programlama (Visual Basic Application)
Veri Tipleri 12/4/2018.
Nesneye Dayalı Programlama 1
Kurucular(Yapıcılar), Yıkıcılar
Nesneye Dayalı Programlama 1
Nesneye Dayalı Programlama 1
MTM216 GÖRSEL PROGRAMLAMA
Nesneye Dayalı Programlama 1
MTM216 GÖRSEL PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: http://kod5.org/c-sinif-yapisi/ Araş. Gör. Sefa TUNÇER

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: https://gelecegiyazanlar.turkcell.com.tr/konu/windows-phone/egitim/windows-phone-101/erisim-belirleyiciler Araş. Gör. Sefa TUNÇER

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

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 = "0-228-214-11-11"; 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 = "0-312-344-45-66"; 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

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

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

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

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 = "0228214111"; 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 = "0-312-344-45-66"; public void Yaz() Console.WriteLine(this.Ad); Console.WriteLine(this.Tel_No); Araş. Gör. Sefa TUNÇER

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

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

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

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

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

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

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

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

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

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

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