STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI LAST-IN-FIRST-OUT LIFO VERİ YAPISI

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI LAST-IN-FIRST-OUT LIFO VERİ YAPISI"

Transkript

1 STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI LAST-IN-FIRST-OUT LIFO VERİ YAPISI

2 STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI Eleman ekleme(push) ve çıkarmaların(pop) en üstten (top) yapıldığı veri yapısına STACK (ÇIKIN/ yığıt/yığın) adı verilir. Son giren ilk çıkar (Last In First Out- LIFO) veya İlk giren son çıkar (First-in- Last-out FILO) mantığıyla çalışır. Bir eleman ekleneceğinde Stack in en üstüne konulur (eklenir). Bir eleman çıkarılacağı(silineceği) zaman stack in en üstündeki eleman çıkarılır(silinir). Eklenen/silinen bu eleman stack deki elemanlar içindeki en son eklenen elemandır. Bu nedenle Stack lere LIFO/FILO listesi de denilir.

3 STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI Stack, Günlük hayatta karşılaşılan üst üste dizilmiş nesneler(örneğin kitap, tabak) topluluğuna benzetilebilir.

4 STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI Üst üste dizilmiş nesneler topluluğuna yeni bir nesne eklenmek istenirse öncekilerin üstüne konulur. Tersine; üst üste dizilmiş nesneler topluluğundan bir nesne alınmak istenirse bu nesne en üstteki olur.

5 Stack Uygulama Alanları Stack(Çıkın) mantığı, bilgisayar donanım ve yazılım uygulamalarında sıkça kullanılan bir yapıdır.

6 Stack Uygulama Alanları Mikroişlemcinin içyapısında STACK adı verilen bir özel hafıza bölgesi vardır. Bu bölge ile mikroişlemci arasında program komutları (pop ve push gibi) ile bazı işlemlerde (fonksiyon çağırma ve kesmeler gibi) veri transferi gerçekleşir. Mikroişlemcinin içinde bu hafıza bölgesine işaret eden bir stack pointer(sp) bulunur. SP o anda bellekte çalışılan bölgenin adresini tutar. Push komutu bu stack olarak adlandırılan hafıza bölgesine veri göndermede(yazmada), pop komutu ise bölgeden veri almada(okumada) kullanılır.

7 Stack Uygulama Alanları Yazılım uygulamalarından stack(çıkın/yığıt) uygulaması olarak verilebilecek diğer bir örnek Kelime İşlem yada Editör uygulamalarındaki Undo(Geri Al) işlemi her yapılan işlem hakkında bilgiyi tutan bir stack(çıkın/yığıt) yapısı şeklindedir. İşlemler yapıldıkça push işlemi ile stack(çıkın/yığıt) yapısına yerleştirilir. Daha sonra undo yapıldıkça pop işlemi ile geri alınır.

8 Stack Uygulama Alanları Bir diğer stack(çıkın/yığıt) yazılım uygulama örneği ise aktif pencerenin bulunması işlemi: Üst üste açılan pencerelerde son açılan aktif penceredir o pencere kapatılırsa bir önceki pencere aktif pencere olur.

9 Stack Uygulama Alanları Web tarayıcı (browser)lardaki Back butonu (önceki sayfaya) stack kullanır. Burada da LIFO mantığı kullanılır. Matematiksel işlemlerdeki operatörler (+,*,/,- gibi) ve operandlar için stack kullanılabilir.

10 Stack Uygulama Alanları Programlama ortamlarındaki editör uygulamalarında parantezlerin yazım kontrolünde de stack kullanılabilir. Cep Telefonlarında gelen çağrıların yada mesajların görüntülenmesinde, e-posta yönetim yazılımlarının gelen postaların listelemesinde Stack yapısı kullanılır.

11 Temel Stack İşlemleri Eleman ekleme(push) ve çıkarmaların(pop) en üstten (top) yapıldığı veri yapısı olarak Stack(çıkın/yığıt); iki temel işlem(eklemesilme) ve bu işlemleri destekleyecek yardımcı işlemleri kapsamaktadır.

12 Temel Stack İşlemleri İŞLEM İŞLEV İŞLEVİN BAŞLIĞI Ekleme Silme yeni bir elemanı stack in en tepesine(üstüne) yerleştirir. Stack in en tepesindeki elemanı siler ve silinen elemanı döndürür void push(eklenecek _eleman) void cikin_ekle(cikinptr c,ornekptr yeni ) çıkacak _eleman=pop() Ornekptr cikin_sil(cikinptr c)

13 Temel Stack İşlemleri Stack Veri Yapısını oluşturmak ve bu yapıya uygun işlemleri yürütebilmek için Stack i tanımlamak gerekmektedir. Stack yapısının tanımı temel işlemlerin algoritmalarını da etkilemektedir. Stack tanımlamada daha önceden bildiğimiz iki veri yapısından yararlanılabilir. Bunlar: Sabit dizi yoluyla Stack(çıkın) tanımlamak Bağlı Liste ile Stack(çıkın) tanımlamak Bu yapılardan yararlanarak öncelikle Stack i oluşturacak eleman yapısını tanımlamak, sonra da bu elemanlardan meydana gelecek Stack veri yapısını tanımlamak gerekir. Her iki yapının da birbirine göre avantaj ve dezavantajları bulunmaktadır.

14 Stack Veri Yapısının Tanımı Sabit dizi yoluyla Stack(çıkın) tanımlama //öncelikle Stack eleman yapısı tanımlanıyor.. struct ornek{ int icerik; /*icerik alanın int tipi problemin özelliğine göre değişebilir*/}; typedef struct ornek Ornek; typedef Ornek *Ornekptr;

15 Stack Veri Yapısının Tanımı Sabit dizi yoluyla Stack(çıkın) tanımlama /*stack-cıkın tanımı...*/ struct cikin{ Ornekptr *dizi; int ust; /*stack'in en son elemanının dizideki yeri*/ int N;//stack'in eleman sayısı }; typedef struct cikin Cikin; typedef Cikin *Cikinptr;

16 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk1-stack te yer alacak yeni eleman oluşturan fonksiyon*/ Ornekptr yeni_ornek(int icerik){ Ornekptr ornek; ornek=(ornek*)(malloc(sizeof(ornek))); ornek->icerik=icerik; return ornek;}

17 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk2-n elemanlı boş bir Stack/cıkın yaratma fonksiyonu*/ Cikinptr yeni_cikin(int N){ Cikinptr cikin; cikin=(cikin*)(malloc(sizeof(cikin))); cikin->ust=-1; cikin->n=n; cikin->dizi=(ornekptr*)(malloc(n*sizeof(ornekptr))); return cikin;}

18 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk3-cıkının/stack'in ust yani son elemanının yernosunu döndüren fonksiyon*/ int ust(cikinptr c) { return c->ust; }

19 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk 4-Cıkının/stack'in dolu olup olmadığını, doluysa 1, boşsa 0 döndüren fonksiyon */ int cikin_dolu(cikinptr c){ if(c->ust==c->n-1) return 1; else return 0; }

20 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk 5-Cıkının/stack'in boş olup olmadığını, boşsa 1, doluysa 0 döndüren fonksiyon */ int cikin_bos(cikinptr c){ if(c->ust==-1) return 1; else return 0; }

21 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk 6-Cıkına/stack'e eleman ekleme fonksiyonu*/ void cikin_ekle(cikinptr c,ornekptr yeni ) { if(!cikin_dolu(c)){ c->ust++; c->dizi[c->ust]=yeni; } }

22 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*fonk 7-Cıkından/stack'ten eleman silme fonksiyonu*/ Ornekptr cikin_sil(cikinptr c){ if(!cikin_bos(c)){ c->ust--; return c->dizi[c->ust+1]; } else NULL; }

23 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*Stack elemanlarının tümünü ekrana yazdırma fonksiyonu */ void cikin_yaz(cikinptr c){ printf("\n...stack'te bulunan elemanlar listesi..."); Ornekptr p;int sayac=0; while(!cikin_bos(c)){ p=cikin_sil(c); sayac++; printf("\nstack %d. elemani: %d",sayac,p->icerik); } printf("\n devam icin enter giriniz...");getch(); }

24 Temel Stack İşlemleri ( Sabit dizi yoluyla ) /*Stack elemanlarının tümünü ekrana yazdırma fonksiyonu */ void cikin_yaz_2(cikinptr c){ //Cikinptr tmp=null; Cikinptr tmp=yeni_cikin(3); printf("\n...stack'te bulunan elemanlar listesi..."); Ornekptr p;int sayac=0; while(!cikin_bos(c)){ cikin_ekle(tmp,cikin_sil(c)); } while(!cikin_bos(tmp)){ p=cikin_sil(tmp); cikin_ekle(c,p); sayac++; printf("\nstack %d. elemani: %d",sayac,p->icerik); } printf("\n devam icin enter giriniz...");getch();}

25 Soru: Temel Stack İşlemleri ( Sabit dizi yoluyla ) void cikin_yaz(cikinptr c) ve void cikin_yaz_2(cikinptr c) Fonksiyonlarının işlevleri arasında ne gibi farklar vardır?

26 Temel Stack İşlemleri ( Sabit dizi yoluyla ) //ana fonksiyon int main() { int sayi;char devam; Cikinptr test=yeni_cikin(3);// 3 eleman kapasiteli stack yaratıldı... if(cikin_dolu(test)) printf("\n STACK SU ANDA DOLU");else printf("\n STACK SU ANDA BOS"); getch(); do{ printf("\nstack'e eklenecek bir tamsayı giriniz...");scanf("%d",&sayi); Ornekptr yeni_eleman=yeni_ornek(sayi); printf("\nyeni eleman %d",yeni_eleman->icerik); printf("\nyeni elemanin adresi...%p",yeni_eleman); cikin_ekle(test, yeni_eleman); printf("\n devam icin bir tusa basiniz..."); devam=getch();}while(!cikin_dolu(test)) ; printf("\n...uzgunum STACK DOLDU...YENİ ELEMAN EKLENEMEZ"); cikin_yaz(test); //cikin_yaz_2(test); if(cikin_dolu(test)) printf("\n STACK SU ANDA DOLU");else printf("\n STACK SU ANDA BOS"); printf("\nprogram bitti...");getch(); exit(0);}

27 Stack İşlemleri Ekleme: O(1) Silme: O(1) Temel Stack İşlemleri ( Sabit dizi yoluyla )

28 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) tanımlama //öncelikle Stack eleman yapısı tanımlanıyor.. /*stack-cıkın için eleman tanımı...*/ struct eleman{ int icerik ; struct eleman* ileri ; }; typedef struct eleman Eleman; typedef Eleman* Elemanptr;

29 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) tanımlama /*stack-cıkın tanımı...*/ struct cikin{ Elemanptr ust; }; typedef struct cikin Cikin; typedef Cikin *Cikinptr;

30 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*fonk1-yeni boş bir stack/çıkın oluşturan fonksiyon*/ Cikinptr yeni_cikin(){ Cikinptr cikin; cikin=(cikin*)(malloc(sizeof(cikin))); cikin->ust=null; return cikin;}

31 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*fonk2-yeni stack elemanı oluşturma fonksiyonu...*/ Elemanptr yeni_eleman(int icerik ){ Elemanptr eleman; eleman = (Eleman*)malloc(sizeof(Eleman)); eleman->icerik = icerik; eleman->ileri = NULL; return eleman; }

32 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*fonk3-cıkının/stack'in ust yani son elemanını döndüren fonksiyon*/ Elemanptr ust(cikinptr c){ return c->ust; }

33 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*fonk 4-Cıkının/stack'in boş olup olmadığını, boşsa 1, doluysa 0 döndüren fonksiyon */ int cikin_bos(cikinptr c){ if(c->ust==null) return 1; else return 0; }

34 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*fonk 5-Cıkına/stack'e eleman ekleme fonksiyonu*/ void cikin_ekle(cikinptr c,elemanptr yeni ) { yeni->ileri=c->ust; c->ust=yeni; }

35 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*fonk 6-Cıkından/stack'ten eleman silme fonksiyonu*/ Elemanptr cikin_sil(cikinptr c){ Elemanptr e=c->ust; if(!cikin_bos(c)){ c->ust=c->ust->ileri; return e; } }

36 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*Stack elemanlarının tümünü ekrana yazdırma fonksiyonu */ void cikin_yaz(cikinptr c){ printf("\n...stack'te bulunan elemanlar listesi..."); Elemanptr p;int sayac=0; while(!cikin_bos(c)){ p=cikin_sil(c); sayac++; printf("\nstack %d. elemani: %d",sayac,p->icerik); } printf("\n devam icin enter giriniz...");getch(); }

37 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri /*Stack elemanlarının tümünü ekrana yazdırma fonksiyonu */ void cikin_yaz_2(cikinptr c){ Cikinptr tmp=yeni_cikin(); printf("\n...stack'te bulunan elemanlar listesi..."); Elemanptr p;int sayac=0; while(!cikin_bos(c)){ cikin_ekle(tmp,cikin_sil(c)); } while(!cikin_bos(tmp)){ p=cikin_sil(tmp); cikin_ekle(c,p); sayac++; printf("\nstack %d. elemani: %d",sayac,p->icerik); } printf("\n devam icin enter giriniz...");getch(); }

38 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri //ana fonksiyon int main() { int sayi;char devam; Cikinptr test=yeni_cikin();// stack yaratıldı... do{ printf("\nstack'e eklenecek bir tamsayı giriniz...");scanf("%d",&sayi); Elemanptr e=yeni_eleman(sayi); printf("\nyeni eleman %d",e->icerik); cikin_ekle(test, e); printf("\n devam icin d/d tusuna basiniz..."); devam=getch();}while(devam=='d' devam=='d') ; cikin_yaz_2(test); Elemanptr s=cikin_sil(test); printf("\n silme islemi yapıldıktan sonra yeni liste\n"); cikin_yaz(test); printf("\nprogram bitti...");getch();return(0); }

39 Stack Veri Yapısının Tanımı Bağlı Liste ile Stack(çıkın) işlemleri Stack İşlemleri Ekleme: O(1) Silme: O(1) Sabit Dizi ve Bağlı Liste ile Stack işlemlerinin zaman karmaşıklığı aynı olduğuna sabit dizi veya bağlı liste ile Stack/çıkın tanımlamanın birbirlerine göre avantaj ve dezavantajlarını tartışınız.

40 C++ STL <Stack.h> Kütüphanesi Fonksiyon push(e) pop() empty() top() stack <veri_tipi> s; İşlevi e elemanını stack in en üstüne ekler Stack in en üst/tepe konumundaki elemanı siler Stack in boş olup olmadığını kontrol eder. Stack in en üst/tepesindeki elemanı verir s adlı stack i <> tipinde tanımlamak için kullanılır.

41 Stack Uygulamaları Örnek-1 /* STACK VERİ YAPISI KULLANARAK 10 TABANINDA VERİLEN BİR SAYININ 2 TABANINA ÇEVRİLMESİ */ #include<iostream.h> #include<stack.h> #include<conio.h> using namespace std; int main(){ int sayi,kalan,i; cout<<"\n Onlu tabanda sayinizi giriniz:"; cin>>sayi; i=sayi; stack <int> s; while(i>0){ //kalan=i%2; s.push(i%2); i=i/2; } cout<<sayi<<" sayisinin ikilik tabandaki karsiligi : \t"; while(!s.empty()) { int t=s.top(); cout<< t; s.pop(); } cout<<"\n devam icin bir tusa basiniz..."; getch(); }

42 Stack Uygulamaları Örnek-2 /*STACK VERİ YAPISI KULLANARAK FAKTÖRİYEL HESAPLAMA.*/ #include<iostream> #include<stack> #include<string> #include<conio.h> using namespace std; int fakt_stack(int sayi) { stack<int> s; while(sayi) s.push(sayi--); int sonuc =1,temp=0; while(!s.empty()) { temp=s.top(); sonuc*=temp; s.pop(); } return sonuc; } int main(){ int sayi; cout<<"faktöriyeli hesaplanacak sayiyi giriniz:"; cin>>sayi; int sonuc=fakt_stack(sayi); cout<<sayi<<" sayisinin faktöriyeli:"<<sonuc; getch(); }

43 Stack Uygulamaları Örnek-3 /*string bir ifadede açılan ve kapanan parantez sayılarına göre parantez hatası olup olmadığını stack veri yapısı kullanarak bulan fonksiyon*/ #include<iostream> #include<stack> #include<string> #include<conio.h> using namespace std; bool hata_var(string ifade){ stack<char> S; for(int i = 0;i< ifade.length();i++) { if(ifade[i] == '(' ifade[i] == '[') S.push(ifade[i]); else if(ifade[i] == ']' ifade[i] == ')') S.pop();} if(!s.empty()) return true; else return false; //true sonucu dönerse hata var, false sonucu dönerse hata yok demektir... } int main(){ string ifade=""; cout<<"\n ifadenizi giriniz:"; cin>>ifade; if(hata_var(ifade)) cout<<"ifadede parantez hatası var..."; else cout<<"ifadede parantez hatası yok..."; cout<<"\n devam icin bir tusa basiniz..."; getch();}

44 Stack Uygulamaları Örnek-4 İç içe parantezler içeren bir ifadede parantezlerin geçerli olması için Stack Veri Yapısı Kullanımı : İç içe parantezler içeren bir ifadede parantezlerin geçerli olması için : 1. Açılan ve kapanan toplam parantez sayısı eşit olmalıdır. Aç ( ve kapa ) parantezlerin eşitliğine bakılır. 2. Kapanan her parantezden önce bir parantez açılmış olmalıdır. Her ) için bir ( olup olmadığına bakılır.

45 Stack Uygulamaları Örnek-4 ((A+B) ve A+B( 1. şarta uymaz. )A+B(-C ve (A+B))-(C+D 2. şarta uymaz.

46 Stack Uygulamaları Örnek-4 Problemin çözümü için her açılan parantezde bir geçerlilik alanı açılır ve kapanan parantezde de kapanır. İfadenin herhangi bir noktasındaki parantez derinliği (Nesting Depth) o ana kadar açılmış fakat kapanmamış parantezlerin sayısıdır. İfadenin herhangi bir noktasındaki parantez sayısı = ( sayısı ) sayısı olarak belirtilebilir.

47 Stack Uygulamaları Örnek-4 Parantezleri geçerli bir ifadede şu şartlar olmalıdır; 1. İfadenin sonunda parantez sayısı 0 olmalıdır. İfadede ya hiç parantez yoktur veya açılan parantezlerin sayısı ile kapanan parantezlerin sayısı eşittir. 2. İfadenin hiçbir noktasında parantez sayısı negatif olmamalıdır. Bu, parantez açılmadan bir parantezin kapanmadığını garantiler.

48 Stack Uygulamaları Örnek-4 Aşağıdaki ifade iki şarta da uyar : İfade:((x*((x+y)/(z-3))+y)/(4-2.5))

49 Stack Uygulamaları Örnek-4 Aşağıdaki ifade 1. şarta uymaz : ((A+B) (İfade sonunda 1 parantez arttı. 0 değil) Aşağıdaki ifade 2. şarta uymaz : ( A + B ) ) - ( C + D (Arada negatif oldu)

50 Stack Uygulamaları Örnek-4 Problem biraz değiştirildiğinde : parantezler (parentheses) : (, ) köşeli parantezler (brackets) : [, ] küme parantezleri (braces) : {, } içerebilen ifadelerin parantez doğruluğu kontrolünün yapılması istendiğinde parantez sayılarının yanında tiplerinin de tutulması gerekecektir. Bu nedenle yukarıdaki yöntemin kullanılması uygun olmaz.

51 Stack Uygulamaları Örnek-4 void main() { printf( Merhaba }; ); yanlış bir ifadedir.

52 Stack Uygulamaları Örnek-4 Karşılaşılan parantezleri tutmak üzere stack kullanılabilir. Bir parantezle karşılaşıldığında stack e eklenir. İlgili parantezlerin karşılığı ile karşılaşıldığında ise stack e bakılır. Stack boş değilse stack ten bir eleman çıkarılarak doğru karşılık olup olmadığı kontrol edilir. Doğruysa işlem sürdürülür. Değilse ifade geçersizdir. Stack sonuna ulaşıldığında stack boş olmalıdır. Aksi halde açılmış ama kapanmamış parantez olabilir.

53 Stack Uygulamaları Örnek-4 {x+(y-[a+b])*c-[(d+e)]}/(h-(j-(k-[l-n]))) e e e çç ee ççç e e e e çççç [ ( { ( { ( { ( { { [ { [ {

54 Stack Uygulamaları Örnek-5 INFIX formunda verilen bir matematiksel ifadenin POSTFIX forma dönüştürülmesi: A+B matematiksel ifadesinde; operator (işlemci) : + operands (işlenenler) : A, B Infix gösterimde işlemci (+), işlenenlerin (A,B) arasında yer alır. Postfix gösterimde işlemci, işlenenlerden sonra gelir. infix gösterim : A+B postfix gösterim : AB+

55 Stack Uygulamaları Örnek-5 A+B*C infix ifadesini postfix e çevirilmesi: Bunun için işlem önceliğine bakmak gerekir. Çarpmanın toplamaya önceliği olduğu için; A+(B*C) şeklinde düşünülebilir. Önce çarpma kısmı postfix e çevrilecek sonra da sonucu.

56 Stack Uygulamaları Örnek-5 A+(B*C) anlaşılırlığı artırmak için parantez kullanıldı. A+(BC*) çarpım çevrildi. A(BC*)+ toplam çevrildi. ABC*+ postfix form.

57 Stack Uygulamaları Örnek-5 İşlem önceliği : Üs alma Çarpma/Bölme Toplama/Çıkarma Parantezsiz ve aynı önceliğe sahip işlemcilerde işlemler soldan sağa doğru yapılır (üs alma hariç). Üs almada sağdan sola doğrudur. A-B+C de öncelik (A-B)+C şeklindedir. A^B^C de ise A^(B^C) şeklindedir. Parantezler default öncelikleri belirtmek için konulmuştur.

58 Stack Uygulamaları Örnek-5 Infix A+B-C (A+B)*(C-D) A^B*C-D+E/F/(G+H) ((A+B)*C-(D-E))^(F+G) A-B/(C*D^E) Postfix AB+C- AB+CD-* AB^C*D-EF/GH+/+ AB+C*DE FG+^ ABCDE^*/-

59 Stack Uygulamaları Örnek-5 Postfix formda parantez kullanımına gerek yoktur. Aşağıdaki iki infix ifade ele alındığında: A+(B*C) ve (A+B)*C İlk ifadede parantez gereksizdir. İkincide ilk ifade ile karıştırılmaması için gereklidir. Postfix forma çevirmek bu karışıklığı önler.

60 Stack Uygulamaları Örnek-5: Stack veri yapısı kullanarak postfix ifadenin sonucunun hesaplanması: Algoritma: Bir postfix string inde her operator kendinden önce gelen iki operand üzerinde işlem yapacaktır. Bu operandlar daha önceki operator lerin sonuçları da olabilir. Belirli bir anda ifadeden bir operand okunarak stack e yerleştirilir. Bir operator e ulaşıldığında, stack in en üstündeki iki eleman bu operator ün operand ları olacaktır. İki eleman stack ten çıkarılır işlem yapılır ve sonuç tekrar stack e konulur. Artık bir sonraki operator ün operand ı olmaya hazırdır.

61 Stack Uygulamaları Örnek-5: Stack veri yapısı kullanarak postfix ifadenin sonucunun hesaplanması: Birçok derleyici 3*2+5*6 gibi bir infix ifadenin değerini hesaplayacağı zaman postfix forma ( 3 2 * 5 6 * + ) dönüştürdükten sonucu stack yapısı mantığına göre hesaplar. Aşağıdaki şekilde gösterilen stack yapısında yukarıda açıklanan algoritma açıklanmaktadır:

62 Stack Uygulamaları Örnek-5: Stack veri yapısı kullanarak postfix ifadenin sonucunun hesaplanması: İnfix formdan çevrilmiş ve sonucu hesaplanacak postfix ifade: 3 2 * 5 6 *

YIĞIT STACK. Yrd. Doç. Dr. Aybars UĞUR

YIĞIT STACK. Yrd. Doç. Dr. Aybars UĞUR YIĞIT STACK Yrd. Doç. Dr. Aybars UĞUR Giriş Eleman ekleme çıkarmaların en üstten (top) yapıldığı veri yapısına yığıt (stack) adı verilir. Bir eleman ekleneceğinde yığıtın en üstüne konulur. Bir eleman

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 4 Stack (Yığın, Yığıt) Veri Yapısı Stack Çalışma

Detaylı

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü Yığın İşlemleri Postfix, Prefix, Infix Yrd.Doç.Dr. M. Ali Akcayol 1 Yığındaki elemanlardan sadece en son eklenene erişim yapılır. Yığına ilk eklenen eleman en son elde edilir. FILO (First-in-Last-out)

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Stack, doğrusal artan bir veri yapısı olup; insert

Detaylı

YIĞIT STACK. Doç. Dr. Aybars UĞUR

YIĞIT STACK. Doç. Dr. Aybars UĞUR YIĞIT STACK Doç. Dr. Aybars UĞUR Giriş Eleman ekleme çıkarmaların en üstten (top) yapıldığı veri yapısına Yığıt (Stack) adı verilir. Bir eleman ekleneceğinde yığıtın en üstüne konulur. Bir eleman çıkarılacağı

Detaylı

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri Veri Yapilari Stacks Stacks Queues Lists Stack nedir Stack de tanimli islemler Push Pop Empty Full Inialization Stack in gerceklestirilmesi 10/7/2004 Veri yapilari 3.1 10/7/2004 Veri yapilari 3.2 Stack

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

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

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

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

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) 1. Kendisine gönderilen iki karakter dizisini birleştirip geriye tek bir dizi döndüren ve

Detaylı

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

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

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

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta Ödev No: 2 1- A)

Detaylı

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

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 PARAMETRİKÇOKŞEKİLLİLİK: TEMPLATES Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik Templates

Detaylı

Programlama Dilleri 1. Ders 5: Göstericiler

Programlama Dilleri 1. Ders 5: Göstericiler Programlama Dilleri 1 Ders 5: Göstericiler Değişkenlerin adresleri Bellekteki her değişkenin bir adresi ve bir de taşıdığı değeri vardır. int x=3; DEĞİŞKEN BELLEK ADRES 0 (0000) 1 2 3 4...... 65533 (FFFD)

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 7: Yapılar Diziler İçerik Yapıların Tanımı Yapılara İlk Değer Atama Yapı Elemanlarına Erişim İç içe Yapılar Yapılar ve Fonksiyonlar 2 Yapılar (structures) içinde

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"

Detaylı

Örnek1: #include <iostream> #include <string> using namespace std;

Örnek1: #include <iostream> #include <string> using namespace std; BTEP243 Ders 5 Nesne İşaretçileri İşaretçiler, bildiğiniz gibi bir değişkenin bellekte tutuldukları yerin adresini tutarlar. Nesne işareçtileri konusundaki işaretçiler, nesnelerin bellek üzerinde bulundukları

Detaylı

Diziler (Arrays) Çok Boyutlu Diziler

Diziler (Arrays) Çok Boyutlu Diziler Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş Fonksiyonlar Prof. Dr. Necmettin Kaya Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 5: Fonksiyonlar İçerik Standart Kütüphane Fonksiyonları Kullanıcı Tarafından Tanımlanan Fonksiyonlar Fonksiyon Tanımı Fonksiyon Prototipi void Fonksiyonları Parametreli

Detaylı

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

Final Sınavı Soruları Güz, Süre: 90 Dakika Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 1105- Algoritma ve Programlama I Final Sınavı Soruları Güz, 2018-2019 Süre: 90 Dakika Derse Kayıtlı Olduğunuz Grubun Öğretim Üyesini (X)

Detaylı

Bölüm 2 - C ile Programlamaya Giriş

Bölüm 2 - C ile Programlamaya Giriş 1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1 Giriş 2.2 Basit C Programları: Bir Metni Yazdırmak 2.3 Basit C Programları: İki Tam Sayıyı Toplamak 2.4 Hafıza Konuları 2.5 C de Aritmetik 2.6 Karar

Detaylı

YAPILAR (STRUCTURES)

YAPILAR (STRUCTURES) YAPILAR (STRUCTURES) Yapılar, dizilere benzeyen ancak farklı tipten verileri bir arada tutan bütün olarak tanımlanabilir. Yapıların kullanılmasının esas sebebi de budur. Yapı tipi aslında yeni bir tip

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

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

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.

Detaylı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

Detaylı

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

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

Standard Template Library

Standard Template Library Standard Template Library Uluslararası Bilgisayar Enstitüsü Ege Üniversitesi Ahmet Bilgili & Serkan Ergun STL ANSI/ISO Standard C++ ın içerdiği algoritmalar ANSI/ISO Standard C++ ın içerdiği algoritmalar

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK Yigin & Kuyruk 0 {\ /\ Suhap SAHIN Onur GÖK Yıgın (Stack) son giren ilk çıkan LIFO ilk giren son çıkan Yıgın islemleri(so) ekle push 31 stack overflow 24 31 U U 34 34 3 3 S S Yıgın islemleri(so) al pop

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Nesne Bellekte yer kaplayan ve içeriklerine

Detaylı

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

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 2 hafta ÖDEV NO: 5 1- BANKA

Detaylı

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

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

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-11 Karakter Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Karakter ve String Karakter Karakter bir sabit tek tırnak

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9 BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 5 1. Aşağıdaki programların çıktısı

Detaylı

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

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

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

Programlama Dilleri 1. Ders 4: Diziler

Programlama Dilleri 1. Ders 4: Diziler Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları

Detaylı

11- FONKSİYONLAR (FUNCTIONS)

11- FONKSİYONLAR (FUNCTIONS) 1 Fonksiyon : Belirli bir işi yapan programın bir isim altına tanımlanarak, o isimle çağrılarak kullanılması. Fonksiyonun faydaları : Programın modülerliğini arttırır. Aynı işi yapan program parçası tekrar

Detaylı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

Detaylı

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü String ve Karakter Dizileri #include Temel giriş çıkış akımları nesnelerinin tanımlandığı kütüphanedir. cin,cout,cerr,clog, wcin,wcout,wcerr,wclog nesneleri içerir. using namespace std; //std

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

Detaylı

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

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama

Detaylı

Main() Fonksiyonu. Main () Fonksiyonu. int main() İfadeler. Return ;

Main() Fonksiyonu. Main () Fonksiyonu. int main() İfadeler. Return ; Main() Fonksiyonu Main () Fonksiyonu int main() { İfadeler Return ; } int main() fonksiyon başlığıdır. Bu fonksiyonun { ile gövdesi oluşturulur. Bu ifadelerin her birinin sonunda noktalı virgül(;) işareti

Detaylı

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

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar: Dosyalama Çoğu programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. C programlama dilinde, disk dosyasına erişme (okuma ve yazma için) iki farklı yöntemle yapılır. Bunlar üst düzey ve alt

Detaylı

Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama

Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama Rekürsif Algoritmalar Bir problemin çözümü için döngü kurulması gerekiyorsa bu ihtiyacı karşılamak için birisi çevirimli diğeri rekürsif olarak

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

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

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları SOMEBODY ELSE'S ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları Yazan: Burak Kıymaz Derleyen: Serhan Aksoy @2016 Burak Kıymaz 28.10.2015 Veri Yapıları Abstrak veri yapıları: (Abstract

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

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

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı

Detaylı

YMT219 VERİ YAPILARI ÖDEV-1

YMT219 VERİ YAPILARI ÖDEV-1 YMT219 VERİ YAPILARI ÖDEV-1 1. İkiliBul yordamı aşağıda verilmiştir. İkiliBul yordamı A dizisi içerisinde 2 tane eşit sayı bulursa true bulamazsa false döndürmektedir. public boolean ikilibul(int[] A){

Detaylı

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/ GENEL TEKRAR 1) /*Kullanıcının belirlediği sayı kadar dikdörtgenin kenar bilgilerini kullanıcıdan alan, dikdörtgenlerin alan ve çevresini alt fonksiyon yardımı ile hesaplayan ve sonuçları ekrana yazan

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8 BTP 27 İNTERNET PROGRAMCILIĞI I Ders 8 Değişkenler 2 Tamsayı Değerler (Integer) Tamsayılar, tabanlı (decimal), 8 tabanlı (octal) veya 6 tabanlı (hexadecimal) olabilir. 8 tabanındaki sayıları belirtmek

Detaylı

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz. Ön bilgi: Dizi tanımlayabilmeli. foreach deyimi bilinmeli. Rastgele sayılar (Random) bilinmeli. 1. Aşağıda tamsayı tipinde iki boyutlu bir dizinin nasıl tanımlandığı, bir fonksiyona parametre olarak nasıl

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 5 Kuyruk VY ve ADT Basit Kuyruk (Simple Queue)

Detaylı

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

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri 7.0. Amaç Ve Kapsam Deneyde C dilinde kullanılan fonksiyon tanımlama ve parametre aktarım yöntemleri hakkında bilgi verilecektir. 7.1. Deneyden

Detaylı

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

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I 1 BLM 111 ALGORİTMA VE PROGRAMLAMA I ÇOK BOYUTLU DİZİLER, YAPILAR [MULTIDIMENSIONAL ARRAYS, STRUCTURES] ÇOK BOYUTLU DİZİLER Çok boyutlu diziler tanımlayabiliriz. İki boyutta, çok boyutlu diziler bellek

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Kuyruk, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II 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 İşaretçiler ve Diziler Fonksiyon

Detaylı

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı