ALGORİTMA VE PROGRAMLAMA II

Benzer belgeler
enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

enum, struct, union ve typedef Yapıları

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS#1

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Birlik (Union) 1 Birlik (Union), enum, typedef

ALGORİTMA VE PROGRAMLAMA II

YZM 2105 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA I

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

BÖLÜM 11: YAPISAL VERİ TİPLERİ

YZM 2116 Veri Yapıları

YZM 2105 Nesneye Yönelik Programlama

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA II

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

BİLG Dr. Mustafa T. Babagil 1

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

YZM 3215 İleri Web Programlama

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Genel Programlama II

Sınav tarihi : Süre : 60 dak.

C++ Dersi: Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Yrd. Doç. Dr. Caner ÖZCAN

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

C++ Dersi: Nesne Tabanlı Programlama

BİL1001 Bilgisayar Bilimlerine Giriş 1

Pointer Kavramı. Veri Yapıları

HSancak Nesne Tabanlı Programlama I Ders Notları

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

YAPILAR (STRUCTURES)

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Dr. Fatih AY Tel: fatihay@fatihay.net

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

Yrd. Doç. Dr. Caner ÖZCAN

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

ALGORİTMA VE PROGRAMLAMA I

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

1 PROGRAMLAMAYA GİRİŞ

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

Telefon Rehberi Uygulaması

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

C Programlama Dili (MCS116) Ders Detayları

YZM 2105 Nesneye Yönelik Programlama

YZM 2116 Veri Yapıları

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Dizi ( Array ) ve Dizgi ( String )

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

8. İŞARETCİLER (POINTERS)

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Final Sınavı Soruları Güz, Süre: 90 Dakika

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Pointers (İşaretçiler)

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

C PROGRAMLAMA D İ L İ

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Ünite 01 Algoritma Geliştirme

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Veri Yapıları Laboratuvarı

Yrd. Doç. Dr. Caner ÖZCAN

Diziler (Arrays) Çok Boyutlu Diziler

PROGRAMLAMAYA GİRİŞ DERS 2

Nesne Yönelimli Programlama

Bölüm 9. Altprogramlar ISBN

Transkript:

ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Genel Bakış 2 Yapılar ve Birlikler enum Deyimi / Sayma Sabitleri (Enumeration Constants) struct Deyimi / Yapı (Structures) typedef Deyimi union Deyimi / Birlik

2. BÖLÜM 3 Enumeration

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.

enum Deyimi (devam ) 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 ) 6 Hangisi daha anlaşılır? if (kisi_cinsiyet == 1) { }? if (kisi_cinsiyet == Erkek) { }

enum Deyimi (devam ) 7 Genel yazım biçimi: enum tip_adı { değer_1, değer_2,..., değer_n };

enum Deyimi (devam ) 8 Ö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.

enum Deyimi (devam ) 9 Örnek: enum ebolumler { programcilik, donanim, muhasebe, motor }; Proje oluşturalım ve örneği uygulayalım void main () { enum ebolumler bolum_degiskeni; int bolum_degiskeni2; }

Örnek: Basit enum Kullanımı 10

Alıştırma: enum Oluşturma 11 Aşağıdaki bilgilerin 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 Örnek: Girilen Sayının Tek/Çift Olma Kontrolü (enum Kullanımı) Lab uygulamasında yapacağız.

2. BÖLÜM 13 Yapılar (Struct) ve Birlikler

struct (Yapı) Deyimi 14 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.

struct Deyimi (devam ) 15 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 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

struct Deyimi (devam ) 17 Örnek: Bir üniversitedeki öğrencilerin 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;

struct Deyimi (devam ) 18 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?

struct Deyimi (devam ) 19 Ö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ı

struct Deyimi (devam ) 20 Ogrenci varlığı (entity) içerisinde öğrenci ile ilgili bilgileri kapsüllemiş (encapsulation) olduk.

struct Deyimi (devam ) 21 Öğrenci tanımlama ve değer atama Proje oluşturalım ve örneği uygulayalım

Yazma Örnek: struct Okuma ve Yazma Okuma

struct Değişkenlerini Kopyalama 23 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;

Örnek: struct Kopyalama 24 ogrenci_bilgisi2.no = ogrenci_bilgisi1.no; ogrenci_bilgisi2.ad = ogrenci_bilgisi1.ad; ogrenci_bilgisi2.soyad = ogrenci_bilgisi1.soyad;

struct Değişkenlerini Karşılaştırma 25 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 üyeler ile karşılaştırma yapılabilir. Aşağıdaki karşılaştırma yanlıştır: if (degisken1 == degisken2).

Örnek: struct Değişkenlerini Karşılaştırma 26

struct Değişkenleri ve Fonksiyonlar 27 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.

Örnek: struct ve Fonksiyonlar 28

struct Değişkenleri ve Diziler 29 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.

struct Değişkenleri ve Diziler 30 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.

Örnek: struct Değişkenleri ve Diziler 31

struct Değişkenleri ve Diziler 32 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.

Örnek: struct Değişkenleri ve Diziler 33

typedef Kullanımı 34 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.

Örnek: typedef Kullanımı 35

struct içerisinde struct Kullanımı 36 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.

Örnek: struct içerisinde struct Kullanımı 37 OgrenciNot isimli bir struct oluşturun 2 Vize notu, 2 Quiz notu, 1 final notu olsun (Tüm alanlar int olabilir) Iletisim isimli bir struct oluşturun Telefon ve Eposta üyeleri olsun (Karakter dizisi) Ogrenci isimli bir struct oluşturun No, Ad, Soyad, Cinsiyet, Iletisim ve OgrenciNot üyeleri olsun

Örnek: struct içerisinde struct Kullanımı 38

Birlikler (Union) 39 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.

Birlikler (Union) (devam ) 40 Ö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.

KAYNAKLAR 41 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

42 İYİ ÇALIŞMALAR Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr