Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM.

Benzer bir sunumlar


... konulu sunumlar: "ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM."— Sunum transkripti:

1 ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM 1102

2 Yapılar ve Birlikler enum Deyimi / Sayma Sabitleri (Enumeration Constants) struct Deyimi / Yapı (Structures) typedef Deyimi union Deyimi / Birlik Genel Bakış… 2 YZM 1102 – Algoritma ve Programlama II

3 2. BÖLÜM Enumeration 3 YZM 1102 – Algoritma ve Programlama II

4 enum Deyimi 4 Sayma tipi/sabiti olarak adlandırılırlar. Bir sayma tipi, enum anahtar kelimesiyle tanıtılır ve tanıtıcılar ile temsil edilen tamsayı sabitlerinin kümesidir. Bu sayma sabitleri, değerleri otomatik olarak belirlenen sembolik sabitlerdir. enum içindeki değerler aksi belirtilmedikçe 0 ile başlar ve 1 arttırılır. Bu tip, değişkenin alabileceği değerlerin sabit olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır. YZM 1102 – Algoritma ve Programlama II

5 5 Mantıksal örnekler: Cinsiyet: Kadın, Erkek Calisma_Durumu: İssiz, Calisan, Ögrenci, Emekli Evlilik_Durumu: Evli, Bekar Egitim_Durumu: İlkokul, Lise, OnLisans, Lisans, LisansUstu Menu_Turu: Topla, Cikart, Bol, Carp enum Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II

6 6 Hangisi daha anlaşılır? if (kisi_cinsiyet == 1) { } ? if (kisi_cinsiyet == Erkek) { } enum Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II

7 7 Genel yazım biçimi: enum tip_adı { değer_1, değer_2,..., değer_n }; enum Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II

8 enum Deyimi (devam…) 8 Örnek: enum eBolumler { programcilik, donanim, muhasebe, motor }; YZM 1102 – Algoritma ve Programlama II Tanımı ile alınan değerler: programcilik için 0, donanim için 1, muhasebe için 2 ve motor için 3 değerini Değerler, aksi belirtilmedikçe 0 ile başlar ve 1 arttırılır.

9 enum Deyimi (devam…) 9 Örnek: enum eBolumler { programcilik, donanim, muhasebe, motor }; void main () { enum eBolumler bolum_degiskeni; int bolum_degiskeni2; } YZM 1102 – Algoritma ve Programlama II Proje oluşturalım ve örneği uygulayalım…

10 10 Örnek: Basit enum Kullanımı YZM 1102 – Algoritma ve Programlama II

11 11 Alıştırma: enum Oluşturma YZM 1102 – Algoritma ve Programlama II Aşağıdaki bilgileirn enum tiplerini oluşturunuz: Cinsiyet: Kadın, Erkek Calisma_Durumu: İssiz, Calisan, Ögrenci, Emekli Evlilik_Durumu: Evli, Bekar Egitim_Durumu: İlkokul, Lise, OnLisans, Lisans, LisansUstu

12 12 Örnek: Girilen Sayının Tek/Çift Olma Kontrolü (enum Kullanımı) YZM 1102 – Algoritma ve Programlama II Lab uygulamasında yapacağız.

13 2. BÖLÜM Yapılar ve Birlikler 13 YZM 1102 – Algoritma ve Programlama II

14 14 struct (Yapı) Deyimi YZM 1102 – Algoritma ve Programlama II Yapılar, farklı veri türlerine sahip değişkenlerin bir grup olarak değerlendirilmesi ve bu grubun bir isimle kullanılması amacıyla tercih edilen kullanıcı tanımlı bir veri türüdür. Yapılar diziler gibi bellekte sürekli kalır. Bir yapı içerisindeki elemanlara üye (member) denir. Üyelerin her biri farklı veri tipine sahip olabilir. Yapılar sayesinde kendi veri tipinizi üretmeniz mümkündür. Yapılar farklı programlama dillerinde Record (Kayıt) olarak da geçerler.

15 15 YZM 1102 – Algoritma ve Programlama II Yapılar int, float, char gibi farklı tipteki değişkenleri veya aynı türdeki birden çok değişkeni bir araya getirmeyi sağlar. Nesne tabanlı programlamanın da temelini oluşturan bir yaklaşımdır. İlerleyen zamanlarda C# ve Java gibi tamamen nesneye dayalı programlamayı benimsemiş gelişmiş dilleri öğrenmeye de yardımcı olacaktır. struct Deyimi (devam…)

16 16 struct Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II Yapı gösterimi aşağıdaki gibidir: struct yapı_adı { veri_tipi değişken_ismi1; veri_tipi değişken_ismi2;... }; Mantıksal Gruplama

17 17 struct Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II Örnek: Bir üniversitedeki öğrencilerin aşağıdaki bilgilerini programda kullanalım.Kullanılacak bilgiler aşağıdaki gibi olsun, nasıl tanımlarız? Öğrenci Numarası Öğrenci Adı Öğrenci Soyadı Öğrenci Cinsiyeti Öğrenci Fakültesi/Bölümü Öğrenci Genel Not Ortalaması int No; char Ad[50]; char Soyad[50]; int Cinsiyet; int FakulteBolum; float GenelOrtalama;

18 18 struct Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II Değişkenleri tek tek tanımlamak zorundayız. Değişkenler arasında bir bütünlük olmaz. Bu bilgiler aynı öğrenciye mi ait yoksa başka bir öğrenciye mi ayırt edemeyiz. Birden fazla öğrenci için nasıl bir tanım yapacağız?

19 19 struct Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II Örnek: Bu öğrencilerin bilgilerini struct kullanarak ifade edelim. Kullanılacak bilgiler aşağıdaki gibi olsun: Öğrenci Numarası Öğrenci Adı Öğrenci Soyadı Öğrenci Cinsiyeti Öğrenci Fakültesi/Bölümü Öğrenci Genel Not Ortalaması

20 20 struct Deyimi (devam…) YZM 1102 – Algoritma ve Programlama II Öğrenci tanımlama ve değer atama Proje oluşturalım ve örneği uygulayalım…

21 YZM 1102 – Algoritma ve Programlama II Örnek: struct Okuma ve Yazma Okuma Yazma

22 22 struct Değişkenlerini Kopyalama YZM 1102 – Algoritma ve Programlama II struct tipindeki bir değişkenin değeri aynı tipteki bir başka struct değişkenine atanabilir. Üyeleri tek tek atmaya gerek yoktur. Atama aşağıdaki şekilde yapılır: degisken1 = degisken2;

23 23 YZM 1102 – Algoritma ve Programlama II Örnek: struct Kopyalama ogrenci_bilgisi2.No = ogrenci_bilgisi1.No; ogrenci_bilgisi2.Ad = ogrenci_bilgisi1.Ad; ogrenci_bilgisi2.Soyad = ogrenci_bilgisi1.Soyad; …

24 24 struct Değişkenlerini Karşılaştırma YZM 1102 – Algoritma ve Programlama II struct tipindeki bir değişken aynı tipteki bir başka struct değişkeni ile direk karşılaştırılamaz. Ancak sahip olduğu üyelerinin tamamı diğeri ile karşılaştırılır. Aşağıdaki karşılaştırma yanlıştır: if ( degisken1 == degisken2) ….

25 25 Örnek: struct Değişkenlerini Karşılaştırma YZM 1102 – Algoritma ve Programlama II

26 26 struct Değişkenleri ve Fonksiyonlar YZM 1102 – Algoritma ve Programlama II 1.struct tipindeki bir değişken herhangi bir fonksiyona parametre olarak aktarılabilir. 2.Herhangi bir fonksiyon geri dönüş değeri olarak struct tipinde bir veri türü geriye dönebilir.

27 27 Örnek: struct ve Fonksiyonlar YZM 1102 – Algoritma ve Programlama II

28 28 struct Değişkenleri ve Diziler YZM 1102 – Algoritma ve Programlama II 1.struct tipi içerisinde; Dizi türünde üyeler tanımlamak mümkündür. 2.Dizileri; struct tipinde tanımlamak mümkündür. Nesneye dayalı programlama yaklaşımına önemli bir ADIM….

29 29 struct Değişkenleri ve Diziler YZM 1102 – Algoritma ve Programlama II OgrenciNot isimli bir struct oluşturalım. Öğrenci Numarasını, 2 tane Vize Notunu, 2 tane Quiz Notunu ve 1 tane Final Notunu içersin.

30 30 Örnek: struct Değişkenleri ve Diziler YZM 1102 – Algoritma ve Programlama II

31 31 struct Değişkenleri ve Diziler YZM 1102 – Algoritma ve Programlama II OgrenciNot isimli bir structtan Öğrenci Numarasını, 2 tane Vize Notunu, 2 tane Quiz Notunu ve 1 tane Final Notunu içersin. 100 tane öğrenciyi tanımlayalım.

32 32 Örnek: struct Değişkenleri ve Diziler YZM 1102 – Algoritma ve Programlama II

33 33 typedef Kullanımı YZM 1102 – Algoritma ve Programlama II typedef deyimi C dilinde değişken tanımlama yaparken kullanılan int, float, char gibi değişken isimlerini değiştirmeye yarar. Bu sayede kodlar programcının anadiline daha fazla yaklaşmış olur. struct deyimi ile beraber kullanıldığında oluşturduğunuz yapıyı bir değişken türü olarak tanımlayıp o yapının çoğaltılmasını sağlar. Bu yapıdan değişken tanımlamak için tekrar struct deyiminin kullanılmasına gerek kalmaz.

34 34 Örnek: typedef Kullanımı YZM 1102 – Algoritma ve Programlama II

35 35 struct içerisinde struct Kullanımı YZM 1102 – Algoritma ve Programlama II C programlama dili struct içerisindeki bir üyenin yine bir struct tipinde olmasına izin verir. Bunu yapmaktaki temel amaç: Kaynak kodun tekrar kullanılabilirliğini arttırmak Kaynak kodun okunabilirliğini arttırmak Kaynak kodu sadeleştirmek Nesneye dayalı programlama yaklaşımına önemli bir ADIM….

36 36 Örnek: struct içerisinde struct Kullanımı YZM 1102 – Algoritma ve Programlama II

37 37 Birlikler (Union) YZM 1102 – Algoritma ve Programlama II Birlikler de yapılar gibi sürekli belleğe yerleşen nesnelerdir. Birlikler yapılara göre daha az kullanılırlar. Bir programda veya fonksiyonda değişkenlerin aynı bellek alanını paylaşması için ortaklık bildirimi union deyimi ile yapılır. Bu yer, birliğin en büyük alanı kadardır. Bu da belleğin daha verimli kullanılmasına imkan verir. Bu tipte bildirim yapılırken struct yerine union yazılır.

38 38 Birlikler (Union) (devam…) YZM 1102 – Algoritma ve Programlama II Örnek: union test { int x; char y[10]; } p Bu tanıma göre x tamsayısı için bellekte 4 baytlık yer ayrılmaktadır. Birlik içinde yer alan y değişkeni için 10 baytlık yer ayrılmıştır. Bu durumda, birlik için en fazla 10 baytlık bir yer ayrılmıştır. Ayrılan bu alan, birliğin her bir alanı tarafından ortak kullanılır.

39 39 KAYNAKLAR N. Ercil Çağıltay ve ark., C DERSİ PROGRAMLAMAYA GİRİŞ, Ada Matbaacılık, ANKARA; Milli Eğitim Bakanlığı "Programlamaya Giriş ve Algoritmalar Ders Notları", 2007 Problem Solving and Program Design in C, Hanly, Koffman YZM 1102 – Algoritma ve Programlama II

40 40 İYİ ÇALIŞMALAR… Yrd. Doç. Dr. Emin BORANDAĞ YZM 1102 – Algoritma ve Programlama II


"ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM." indir ppt

Benzer bir sunumlar


Google Reklamları