STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI LAST-IN-FIRST-OUT LIFO VERİ YAPISI
|
|
- Eser Öz
- 5 yıl önce
- İzleme sayısı:
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 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ı 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ü
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Ç 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 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
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, 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 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 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) 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İ 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 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: 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İ 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 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ı
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 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 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
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 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 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)
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 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 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;
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 Ç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 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ı 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 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 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 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 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 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
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ş
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) 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)
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ı
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)
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ı ³ 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) 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ı 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ı
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 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
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 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 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 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
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 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İ 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
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ı- 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 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()
(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 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 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 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İŞ
İÇİ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, 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 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İ 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
İÇİ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 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 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)
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) 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 #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 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 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 ; } 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)
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:
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 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é
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 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ı 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, 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
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İ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 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 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ı*/
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, 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 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.
Ö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 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ı 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.
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 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 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
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
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 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Ç 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 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
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 İ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 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ı