100% found this document useful (1 vote)
359 views7 pages

JavaProgramlama Final

Uploaded by

brauterlik
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
359 views7 pages

JavaProgramlama Final

Uploaded by

brauterlik
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

BİL 141 Java Programlama Final Sınavı

Öğrenci Numarası: ……………………… Adı Soyadı:……………………….

Puanlama: 1-5: 3 puan 11-12: 10 puan 15-16: 5 puan (bonus)


6-10: 5 puan 13-14: 20 puan Toplam: 110 puan

1. Aşağıdakilerden hangisi short veri türünün değer aralığıdır?

a) -27 ... 27 - 1 b) 0 ... 28 - 1 c) -215 ... 215 - 1 d) 0 ... 216 - 1

2. float x = (float) 2.0; ifadesindeki (float)ile yapılan işlem ne olarak adlandırılır?

a) tür dönüşümü b) veri dönüşümü c) sınıf dönüşümü d) değişken dönüşümü

3. Java derleyicisi, java kaynak kodunu, ......JVM.............. isimli sanal makineye ait .......byte.... koda dönüştürür

4. Farklı parçalardan (yani birden fazla java kaynak kod dosyalarından) oluşan programın bütün
haline getirilmesine bağlama /linking denir

5. Bir sınıfın değişkenleri ve metodlarının, yeni oluşturulacak bir sınıfa aktarılabilmesine kalıtım/inheritance
denir

6. Aşağıdaki ifadelerin başına doğru ise D, yanlış ise Y yazınız.

.D. Alt düzey bilgisayar dillerine makine dili ve assembly dili denir

. Y. String basit/temel java veri türüdür

. Y. Farklı parçalardan (yani birden fazla java kaynak kod dosyalarından) oluşan programın bütün haline
getirilmesine derleme/compiling denir

. D. Bir sınıf içinde hiçbir nesne kurucu tanımlanmaz ise, java derleyici/compiler, bu sınıf için varsayılan nesne
kurucuyu otomatik olarak oluşturur

. Y. Soyut/abstract sınıflardan alt sınıf türetmek mümkün değildir

7. Aşağıda verilen kod parçasının çıktısı nedir?

int a = 10, b = 5;
a *= b;
a += 20;
a = a % 6;
[Link]("a:"+a);

a:4

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 1/7
8. Aşağıdaki while döngüsü ile hazırlanmış program parçasını, for döngüsü kullanarak yazınız.
int toplam = 0;
int i = 100;
while (i >= 1)
{
toplam += i;
i = i - 2;
}
[Link]("toplam:"+toplam);

int toplam = 0;
for (int i = 100; i >= 1; i = i - 2;)
toplam += i;
[Link]("toplam:"+toplam);

9. Aşağıdaki programın sonucu ne olur?


int k = 2;
while (k < 5)
{
[Link](k + " " + j);
k += k % 2;
}

j değişkeni tanımlı olmadıği için derleyici/compiler hatası oluşur

10. Aşağıda java kodu verilen sınıfı UML tarzında gösteriniz.


public class Saat {
private int saat;
private int dakika; Saat
private int saniye;

public Saat(int s, int d, int sn)


- saat: int
{ - dakika: int
[Link] = s; - saniye: int
[Link] = d;
[Link] = sn;
+ Saat(int, int, int)
}
public Saat() + Saat()
{ - Sifirla(): void
[Link] = 0;
[Link] = 0;
[Link] = 0;
}
private void Sifirla()
{
[Link] = 0;
[Link] = 0;
[Link] = 0;
}
}

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 2/7
11. Aşağıdaki çıktıyı oluşturan java kod parçasını, yazdırma komutu olarak sadece [Link]("*");
[Link](" "); ve [Link](); kullanarak yazınız.

********* for(int satir=0; satir<9; satir++)


******** {
******* for(int bosluk=0; bosluk<satir; bosluk++)
****** [Link](" ");
***** for(int yildiz=9; yildiz>satir; yildiz--)
**** [Link]("*");
[Link]();
***
}
**
*

12. Bir metin dosyasına satırlar halinde kaydedilmiş Numara, Ad ve Soyad bilgilerini okuyup ekrana alt alta yazan
bir program yazınız

import [Link].*;
public class Cevap12
{
public static void main(String[] args)
{
// asagidaki minimum olması gereken kod

BufferedReader girisAkimi =
new BufferedReader(new FileReader("[Link]"));

String numara = [Link]();


String ad = [Link]();
String soyad = [Link]();

[Link]();

[Link]("Numara: " + numara);


[Link]("Ad : " + ad);
[Link]("Soyad : " + soyad);
}
}

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 3/7
13. İki boyutlu dizileri kullanarak aşağıdaki metotları java’da kodlayınız.
a. public double [][] matrisYap(int m, int n)
Not: matrisin içini [Link]()*100 kullanarak doldurabilirsiniz.
b. public double [][] matrisTopla(double[][] a, double [][] b)
c. public double [][] matrisTranspose(double [][] m)
d. public double matrisOrtalama(double [][] m)

public static double[][] matrisYap(int m, int n)


{
double[][] matris = new double[m][n];
for(int i=0; i<m; i++)
for(int j=0; j<m; j++)
matris[i][j] = [Link]()*100;

return matris;
}

public static double[][] matrisTopla(double[][] a, double[][] b)


{
// a ve b matrislerinin aynı boyutta olması onkosul olmak uzere
int m = [Link];
int n = a[0].length;
double[][] matris = new double[m][n];
for(int i=0; i<m; i++)
for(int j=0; j<m; j++)
matris[i][j] = a[i][j] + b[i][j];

return matris;
}

public static double[][] matrisTranspose(double[][] m)


{
int r = [Link];
int c = m[0].length;
double[][] matris = new double[c][r];
for(int i=0; i<c; i++)
for(int j=0; j<r; j++)
matris[i][j] = m[j][i];

return matris;
}

public static double matrisOrtalama(double[][] m)


{
int r = [Link];
int c = m[0].length;
double toplam = 0.0;
for(int i=0; i<r; i++)
for(int j=0; j<c; j++)
toplam += m[i][j];

return toplam/(r*c);
}

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 4/7
14. Değişik yiyecek çeşitleri için bir sınıf tanımlanacaktır. Bu sınıf; yiyeceklerin isim, renk, ve ("agac",
"saksi" ve "toprak" değerlerinden birini alabilecek) yetiştiği yer bilgisini tutacaktır. Ancak, bu sınıftan
nesneler oluşturulmayacak/oluşturulamayacak, sınıf daha sonra türetilecek sınıflara temel teşkil edecektir.
Ayrıca, sınıf değişkenlerine, sınıf dışından erişilemeyecek, ve tüm bu sınıf değişkenlerine değer atayan ve
sınıf dışından erişilebilecek tek bir nesne kurucu (constructor) tanımlanacaktır. Yine sınıf degişkenleri
sayısında parametre alan ve bunları sınıf değişkenlerine atayan bir set metodu, ve isim ile renk
değişkenleri için parametre alan ve bunları bu iki sınıf değişkenine atayan diğer bir set metodu olmak
üzere 2 set metodu tanımlanırken; sınıf değişkenlerinin her biri için ayrı ayrı get metodları
tanımlanacaktır. Son olarak, Yiyecek sınıfı içerisinde YiyecekTuru isimli ve dışardan erişilebilen bir
metod tanımlanacaktır. Bu metod parametre almayacak ve değer olarak "belirsiz" döndürecektir.

a. Yiyecek isimli bu sınıfı tanımlayan java kodunu yazınız.


b. Yiyecek sınıfından Sebze ve Meyve sınıfları türetilecektir. Sebze ve Meyve sınıfları için
sadece isim ve renk değerlerini parametre olarak alan nesne kurucular tanımlanacaktır. Sebze
nesne kurucusu, nesneleri oluştururken yetiştiği yer başlangıç değerini "toprak" yapacak,
Meyve nesne kurucususu ise "agac" yapacaktır. Yine bu sınıflar YiyecekTuru isimli metodu
yeniden yapılandıracaklar; Sebze sınıfı nesneleri üzerinden bu metod çağrıldığında "sebze"
değerini, Meyve sınıfı nesneleri üzerinden bu metod çağrıldığında ise "meyve" değerini
döndürecektir. Sebze ve Meyve sınıflarını bu şekilde tanımlayan java kodunu yazınız.
c. Bu sınıf ve metodları kullanarak kırmızı lahana ve yeşil elma için nesneler oluşturan ve yetiştikleri
yeri yazan java kod parçasını yazınız.
d. Bir Yiyecek nesnesini parametre olarak alan ve örneğin bu nese kırmızı lahana için oluşturulan
nesne ise "lahana bir sebzedir", yeşil elma için oluşturulan nesne ise "elma bir
meyvedir" , yazan static bir metod yazınız.

public abstract class Yiyecek { // abstract, soyut class oldugunu belirtiyor


private String isim;
private String renk;
private String yer;

public Yiyecek(String isim, String renk, String yer)


{
Set(isim, renk, yer);
}

public void Set(String i, String r, String y) // 1. set metodu


{
Set(i,r);
yer = y;
}
public void Set(String i, String r) // 2. set metodu
{
isim = i;
renk = r;
}
//get metodlari
public String GetIsim() { return isim; }
public String GetRenk() { return renk; }
public String GetYer() { return yer; }

public String YiyecekTuru()


{
return "belirsiz";
}
}

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 5/7
Cevap 14
Devam

b.

public class Sebze extends Yiyecek


{
public Sebze(String i, String r)
{
super(i,r,"toprak");
}

public String YiyecekTuru()


{
return "sebze";
}
}
public class Meyve extends Yiyecek
{
public Meyve(String i, String r)
{
super(i,r,"agac");
}

public String YiyecekTuru()


{
return "meyve";
}
}

c.

Sebze s = new Sebze("lahana","kirmizi");


String isim = [Link]();
String renk = [Link]();
String yer = [Link]();
[Link](renk + " " + isim + "\'nın yetistigi yer: " + yer);

Meyve m = new Meyve("elma","yesil");


isim = [Link]();
renk = [Link]();
yer = [Link]();
[Link](renk + " " + isim + "\'nın yetistigi yer: " + yer);

d.

public static void YiyecekYazdir(Yiyecek y)


{
[Link]([Link]() + " bir " + [Link]() + "dir.");
}

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 6/7
15. Aşağıdaki a ve b değişkenleri için her zaman -231 < (a + b) < 231 koşulu sağlanıyor ise; bu değişkenlerin
değerlerini 3. bir değişken kullanmadan yer değiştiren java kod parçasını yazınız. Sizin kodunuzdan önce
örneğin a=3, b=11 değerlerinde ise, sizin kodunuzdan sonra a=11, b=3 değerlerinde olmalı. İpucu:
Yukarıdaki koşul, a+b değerinin her zaman int türü değişkenlerin alabileceği minimum ve maksimum
değerler içerisinde kaldığı anlamına gelir.

int a,b;
...
...
... // bu noktada a=3 b=11 degerinde ise

a = a + b; // bu noktada a=14 olur


b = a - b; // bu noktada b=3 olur
a = a - b; // bu noktada a=11 olur

// boylece bu noktada a=11 b=3 olur

16. Metod tanımlarının yeniden yapılandırılması (overriding) ile metodlarının fazladan yüklenmesi
(overloading) arasındaki farkı örnek kod ile açıklayınız.

14. sorunun cevabında Yiyecek sınıfı içinde tanımlanan Set isimli 2 metod (farklı sayıda
ve/veya türde parametre kullanmaları nedeniyle) fazladan yükleme (yani overloading) için
örnektir.

Yine aynı sorunun cevabında, Yiyecek sınıfında tanımlanan YiyecekTuru metodu,


kalıtım yolu ile Sebze ve Meyve sınıflarına aktarılmasına rağmen; bu sınıflar bu metodu
Yiyecek sınıfındaki (yani temel sınıftaki şekli ile - parametre sayısı ve tipleri aynı olmak
üzere) yeniden tanımladıkları için Sebze ve Meyve sınıflarındaki YiyecekTuru
metodları, yeniden yapılandırılma (yani overriding) örnekleridir.

2011-2012 Güz Dönemi BIL 141 Final Sınav Soruları Sayfa 7/7

You might also like