Soruları - KTÜ Bilgisayar Mühendisliği
Transkript
Soruları - KTÜ Bilgisayar Mühendisliği
Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü Öğr.Gör. Ömer ÇAKIR BIL 327 Dosya Organizasyonu Final Sınavı 8 Ocak 2010 Süre = 100 Dakika Sınavlarda Uyulması Gereken Kurallar 1. Sınavda cep telefonları kapalı olmalı ve sıranın üzerinde olmamalıdır. (Cep telefonlarının hesap makinesi ya da saat olarak kullanılması yasaktır) 2. Sınav esnasında öğrenciler, dersle ilgili olsun ya da olmasın herhangi bir ders notu ya da sınavla ilgisi olmayan kâğıt vb. materyallerin erişilebilecek şekilde olmadığını kontrol etmek ve sağlamak zorundadırlar. Aksi halde sorumluluk öğrenciye aittir. Ayrıca sınav esnasında kalem, silgi vb. eşyaların alışverişi yasaktır. 3. Öğrenci, sınavdan çıkıyor olsa dahi arkadaşları ile kesinlikle konuşmamalıdır. 4. Sınav esnasında etrafa, sağa sola bakınma gibi şüphe uyandıran hareketlerden kaçınmalıdır. #include <stdio.h> #include<stdio.h> int f(int p, int d) { if(p<=0) return 1; int f(int m, int n) { if(n==2) return m+1; int toplam = 0; for(int i=d; i>0; i--) toplam += ...; //Recursive return toplam; } void main() { for(int p=1; p<7; p++) printf("f(%d,%d)= %d \n",p,4, f(p,4)); } 1. Yukarıda verilmiş, Polyphase birleştirme yöntemine göre girişlerde kullanılacak disk sayısı d ve birleştirme geçişi sayısı p değerlerini parametre alarak ana dosyanın bölüneceği parça sayısını hesaplayan int f(int p, int d) prototipli fonksiyon için aşağıdaki soruları cevaplayınız: a) Eksik olarak yazılmış “toplam +=...;” satırını tamamlayınız. (20P) b) Programın ekran çıktısınız yazınız. (20P) 2. Aşağıdaki tablodaki veriler Secondary Key (İkincil Anahtar) M olmak üzere Multilist File Implementation yöntemine göre organize edildiğinde oluşan index ve veri tablolarını M (Mağlubiyet) ve P (Puan) alan değerlerine göre büyükten küçüğe sıralı olarak eksiksiz yazınız. (30P) Not <secondary key, primary key> = <M,P> return ...; // Recursive } void main() { printf("f(%d,%d)=%d \n",6,3,f(6,3)); } 3. B Tree oluştururken verilerin geliş sırası ne olursa olsun aynı Btree ‘yi üretebilmek için ağacın seviye sayısı n, yapraklara ve dallara eklenebilecek maksimum veri sayısı m (2,4,6,8,… çift sayı) olduğu durumda gereken toplam veri sayısını hesaplayan int f(int m,int n) prototipli fonksiyonda eksik bırakılmış return ...; ifadesini tamamlayınız. (30P) Örneğin yapraklarında maksimum m=2 veri tutan B Tree ‘ye 1,2,3,4,5,6,7,8 verileri eklendiğinde oluşan n=3 seviyeli B Tree 'de root=4 olurken 8,7,6,5,4,3,2,1 verileri eklendiğinde root=5 olmaktadır. Yani farklı B Tree ‘ler üretilmiştir. Bu durumda toplam veri sayısı olan 8 yukarıdaki fonksiyonun döndüreceği değerlerden biri değildir. Aşağıdaki tablodan da görüleceği gibi 7 olmalıdır. Yukarıdaki programın ekran çıktısı f(6,3)=31 'dir. m=2 n=2 3 TAKIMLAR G B M P n=3 7 Fenerbahçe 12 1 4 37 n=4 15 Galatasaray 11 3 3 36 Bursaspor 11 2 4 35 n=5 31 Kayserispor 10 4 3 34 Beşiktaş 9 5 3 32 Trabzonspor 8 3 6 27 Gençlerbirliği 7 5 5 26 Eskişehirspor 6 7 4 25