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