( bz205 ) veri yapıları ve algoritmalar dersi projesi
https://bm.erciyes.edu.tr/mcelik/bz205/
Ödev
Veri Yapıları ve Algoritmalar Dersi
Sonbahar 2018
Veriliş Tarihi: 2 Kasım 2018
Teslim Tarihi: 05 Aralık 2018 Saat: 11:30 (en geç)
Ödev teslim şekli:
1- Ödevleri 4'er kişilik gruplar halinde yapılacaktır. 4'er kişilik gruplar oluşması ödevin bir parçasıdır. Grupları kendiniz oluşturabilirsiniz. Her grubun bir ödev teslim etmesi yeterli.
2- Ödevler dijital ortamda hazırlanıp çıktısı alınarak teslim edilecektir.
3- El yazımı ile yapılan ödevler kabul edilmeyecektir.
4- Programlar C/C++ ile yazılacaktır.
5- Ödeve grup üyelerinin numaralarını ve ismlerini yazmayı unutmayınız?
6- Ödev ile ilgili tartışabilirsiniz ve araştırma yapabilirsiniz, fakat aynı ödevi verdikleri tespit edilenlerin notları yansıtılmayacak.
7- Ödevleri zımbalayarak verebilirsiniz. Poşet veya dosya içine koymanıza gerek yok.
8- Ödevlerde kapak ve gereksiz süs olması ödev notunuzu etkilemez. Bunları koymayabilirsiniz.
program kodunuzun en başına aşağıdaki bilgileri yazınız?
\ Odev 1
\ Ogrenci1 No: .........
\ Ogrenci1 Ismı: ................
\ Ogrenci2 No: .........
\ Ogrenci2 Ismı: ................
....
\ Ders kodu:…….
\ Dosya ismi: Program dosyasının ismi yazılacak
Sorular
-
Çift yönlü bağlantılı liste ve B+ ağacı kullanarak (B+ ağacı bağlantılı liste mantığında programlanacaktır) iki soyut veri yapısı tanımlayınız ve temel işlemleri yapan programlarını yapınız? Çift yönlü listenin her bir düğümünde öğrencinin numarası, adı, soyadı ve bölümü bilgileri tutulacaktır. Ağaçta ise indeksleme öğrenci numarasına göre yapılacaktır, ancak aşağıdaki bazı soruları cevaplamak için indeksleme ad ve/veya soyada göre de yapılabilir.
-
Tasarlamış olduğunuz çift yönlü liste kullanarak Bilgisayar Programlama dersinin sınıf listesi oluşturulacaktır ve ağaçta ise Veritabanı Yönetim Sistemleri dersinin sınıf listesi tutulacaktır. Yazacağınız program çift yönlü liste ve B+ ağaç temel işlemlerini içerecektir ve ek olarak aşağıda istenen fonksiyonlar olacaktır. Ana programda temel işlemleri içeren ve aşağıdaki istenenlere ulaşmak için kullanılabilecek bir menü oluşturunuz?
a. Her iki dersi de birden fazla kez alan öğrencileri listeleyiniz?
b. Sadece Bilgisayar Programlama dersini alan öğrencileri listeleyiniz? (Bu öğrenciler Veritabanı Yönetim Sistemleri dersini alıyor olmayacaklar.)
c. Bilgisayar Programlama A ve B grubu olarak ikiye ayrılacaktır. A grubunda soyadı A-K arasında olan öğrenciler ve B grubunda ise soyadı L-Z arasında olan öğrenciler olacaktır. Veritabanı Yönetim Sistemleri dersini iki gruba ayırmak için gerekli yeni B+ ağaçları oluşturunuz ve ayrı ayrı tutunuz?
d. Bilgisayar Programlama ve Veritabanı Yönetim Sistemleri derslerinin her ikisini de alan ve başka bölüm öğrencileri olan öğrencileri listeleyiniz (Derslerde yandal ve çift anadal ile ders alan farklı bölüm öğrencileri bulunabilmektedir. ) Yukarıda yapılan işlemler neticesinde Bilgisayar Programlama ve Veritabaı Yönetims Sistemleri dersleri esas sınıf listelerinde değişiklik olmayacaktır. İstenildiğinde bu listeler görülebilmelidir.
- Yazmış olduğunuz program için aşağıdakileri uygulayınız?
a. Hızlı sıralama algoritmasını kullanarak her iki dersi de alan öğrencileri soyadlarına göre sıralayınız?
b. Radiks sıralama algoritmasını kullanarak sadece Veritabanı Yönetim Sistemleri dersini alan öğrencileri adlarına göre sıralayınız?
c. Kümeleme sıralama algoritmasını kullanarak Bilgisayar Programlama dersini alanları numaralarına göre sıralayınız?
- 1., 2. ve 3. sorularda yazmış olduğunuz programın her bir fonksiyonunun
a. mantığını birer paragraf şeklinde açıklayınız
b. akış diyagramlarını çiziniz ve
c. program fonksiyonlarının çalıştığını gösterir ekran çıktılarını ödevinize ekleyiniz? İstendiğinde ödevin çalışır hali gösterilebilir olmalıdır.
Not: Ödevlerde çift yönlü bağlantılı liste ve B+ yapılarını kullanmak esastır. Verileri diziye veya başka bir veri yapısına atıp üzerinde işlem yapılması İSTENMEMEKTEDİR.