Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
DİZİLER – I. Kısım YRD.DOÇ.DR. CİHAD DEMİRLİ
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Tutarlı Bir Katalog için Otorite Kontrolü
ALİ YALKIN İLKÖĞRETİM OKULU 2/A SINIFI ÇALIŞMA SAYFASI
Değişkenler ve bellek Değişkenler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Saydığımızda 15 tane sayı olduğunu görürüz.
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
Bölüm 2 C Dilinin Temelleri
Diferansiyel Denklemler
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Microsoft Danışman Öğrenci
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Veri Toplama, Verilerin Özetlenmesi ve Düzenlenmesi
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
String Kütüphanesindeki Arama Fonksiyonları
BPR151 ALGORİTMA VE PROGRAMLAMA - I
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 10 Yapılar ve Birleşimler
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
ARALARINDA ASAL SAYILAR
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Veri Tabanı Yönetim Sistemleri
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Matematik 2 Örüntü Alıştırmaları.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
DOĞUŞ ÜNİVERSİTESİ VI. LİSELERARASI MATEMATİK YARIŞMASI
Temel tanımlar ve işleyiş
HABTEKUS' HABTEKUS'08 3.
DERS 11 KISITLAMALI MAKSİMUM POBLEMLERİ
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Nesne.
Akış Kontrol Mekanizmaları
Chapter 6: Using Arrays.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yard. Doç. Dr. Mustafa Akkol
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Diferansiyel Denklemler
FONKSİYONLAR f : A B.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
1 2 3 GÜVENLİK İÇİN ÖNCELİKLE RİSKİ YOK EDİLMELİDİR. RİSKİ YOK EDEMIYORSANIZ KORUNUN KKD; SİZİ KAZALARDAN KORUMAZ, SADECE KAZANIN ŞİDDETİNİ AZALTIR.
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
1 (2009 OCAK-ARALIK) TAHAKKUK ARTIŞ ORANLARI. 2 VERGİ GELİRLERİ TOPLAMIDA TAHAKKUK ARTIŞ ORANLARI ( OCAK-ARLIK/2009 )
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
MDK ALT YAPI KIYASLAMA ÇALIŞMA GRUBU
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Proje Konuları.
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
SLAYT 1BBY220 OCLC WorldCat Yaşar Tonta Hacettepe Üniversitesi yunus.hacettepe.edu.tr/~tonta/ BBY220 Bilgi Erişim İlkeleri.
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR programlama II
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
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.
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ
Sunum transkripti:

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Algorİtma ve Programlama II Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

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

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

YZM 1102 – Algoritma ve Programlama II enum Deyimi 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

YZM 1102 – Algoritma ve Programlama II enum Deyimi (devam…) 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 YZM 1102 – Algoritma ve Programlama II

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

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

YZM 1102 – Algoritma ve Programlama II enum Deyimi (devam…) Örnek: enum eBolumler { programcilik, donanim, muhasebe, motor }; 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. YZM 1102 – Algoritma ve Programlama II

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

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

Alıştırma: enum Oluşturma 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 YZM 1102 – Algoritma ve Programlama II

Örnek: Girilen Sayının Tek/Çift Olma Kontrolü (enum Kullanımı) Lab uygulamasında yapacağız. Bu örnek yapılırken çeşitli programlama teknikleri gösterilecek. ? Operatörü kullanımı, return, if-else kullanımı… YZM 1102 – Algoritma ve Programlama II

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

YZM 1102 – Algoritma ve Programlama II struct (Yapı) Deyimi 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. 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 bu oluşumu iyi öğrenmek, ileriki zamanlarda C# ve JAVA gibi tamamen nesneye dayalı programlamayı benimsemiş gelişmiş dilleri öğrenmeye de yardımcı olacaktır. YZM 1102 – Algoritma ve Programlama II

struct Deyimi (devam…) 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. 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 bu oluşumu iyi öğrenmek, ileriki zamanlarda C# ve JAVA gibi tamamen nesneye dayalı programlamayı benimsemiş gelişmiş dilleri öğrenmeye de yardımcı olacaktır. YZM 1102 – Algoritma ve Programlama II

struct Deyimi (devam…) 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 YZM 1102 – Algoritma ve Programlama II

struct Deyimi (devam…) Ö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; Normalde kullanılacak bilgileri, ayrı birer değişken olarak tanımlamak zorunda kalırdık. Ve bu değişkenler kendi aralarında mantıksal bir bütünlük oluşturamazlardı. Structlar sayesinde bu değişkenleri mantıksal olarak gruplama şansımız olacak. YZM 1102 – Algoritma ve Programlama II

struct Deyimi (devam…) 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? Normalde kullanılacak bilgileri, ayrı birer değişken olarak tanımlamak zorunda kalırdık. Ve bu değişkenler kendi aralarında mantıksal bir bütünlük oluşturamazlardı. Structlar sayesinde bu değişkenleri mantıksal olarak gruplama şansımız olacak. YZM 1102 – Algoritma ve Programlama II

struct Deyimi (devam…) Ö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ı Normalde kullanılacak bilgileri, ayrı birer değişken olarak tanımlamak zorunda kalırdık. Ve bu değişkenler kendi aralarında mantıksal bir bütünlük oluşturamazlardı. Structlar sayesinde bu değişkenleri mantıksal olarak gruplama şansımız olacak. YZM 1102 – Algoritma ve Programlama II

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

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

struct Değişkenlerini Kopyalama 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; 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; … YZM 1102 – Algoritma ve Programlama II

struct Değişkenlerini Karşılaştırma 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) …. YZM 1102 – Algoritma ve Programlama II

Örnek: struct Değişkenlerini Karşılaştırma Genellikle yapı değişkeni veya nesne karşılaştırmalarında tek tek üyeleri veya özellikleri karşılaştırmaya gerek yoktur. Çünkü o değişkeni diğer değişkenlerden ayırt edecek benzersiz bir üye mutlaka bulunmaktadır. YZM 1102 – Algoritma ve Programlama II

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

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

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

struct Değişkenleri ve Diziler 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. YZM 1102 – Algoritma ve Programlama II

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

struct Değişkenleri ve Diziler 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. YZM 1102 – Algoritma ve Programlama II

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

YZM 1102 – Algoritma ve Programlama II typedef Kullanımı 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. YZM 1102 – Algoritma ve Programlama II

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

struct içerisinde struct Kullanımı 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…. YZM 1102 – Algoritma ve Programlama II

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

YZM 1102 – Algoritma ve Programlama II Birlikler (Union) 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. YZM 1102 – Algoritma ve Programlama II

Birlikler (Union) (devam…) 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. Örnek: union test { int x; char y[10]; } p YZM 1102 – Algoritma ve Programlama II

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

İYİ ÇALIŞMALAR… Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr YZM 1102 – Algoritma ve Programlama II