Ad Soyad: 10 Mart 2014 Pazartesi TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisliği Bölümü 2013 – 2014 Yılı Bahar Dönemi Lab Sınavı Sınav süresi 120 dakikadır. Sınavda size üç soru sorulmaktadır. Bu sorulardan 1. soruyu çözmeniz, 2. ve 3. sorulardan ise istediğiniz 1 tanesini seçerek sadece onu çözmeniz istenmektedir. Soruların toplam değeri 100 puandır ve puan değerleri köşeli ayraç ile belirtilmiştir. Sınavda defter, kitap, slayt ve bilgisayarınızda bulunan kodları kullanabilirsiniz. Sınavda yardımlaşmak, cep telefonu veya internet kullanmak, başkalarıyla kaynak paylaşmak kesinlikle yasaktır. Sınıf veya metot isimleri belirtilmiş olan sorularda bu isimlere birebir uymanız beklenmektedir. Kodunuzu teslim etmeden önce mutlaka test ediniz. Derleme hatası olan, yani çalıştırılamayan kodlar, daha az iş yapmasına rağmen derleme hatası olmayan kodlardan daha az puan alabilirler. Hazırlamış olduğunuz kodları teslim etmek için öğrenci numaranız isimli ana klasörün içerisine hazırladığınız .java uzantılı dosyaları koymanız gerekmektedir. Klasörün içerisine .java uzantılı program dosyaları dışında herhangi bir dosya koymayınız. #etubil131 1. [60 puan] Aşağıda tanımlanmış özel bir matematiksel işlemin sonucunu hesaplayan Java programını yazmanız istenmektedir. Programınız klavyeden 4 basamaklı bir tam sayı değeri okumalı ve sonrasında her basamaktaki rakam için o rakamın 10'a tümleyeni kadar kuvvetini hesaplamalı ve hesaplanan kuvvet değerlerini toplayarak ekrana yazdırmalıdır. Bunu yaparken aşağıdaki metot kurallarına uymanız istenmektedir: klavyedenOku() metodu klavyeden 4 basamaklı bir tam sayı değeri okumalıdır. Eğer okuduğu tam sayı değeri 4 basamaklı bir sayı değilse kullanıcıya hata mesajı vererek programı sonlandırmalıdır. Eğer okuduğu tam sayı değeri 4 basamaklı bir sayı ise bu değeri çağrıldığı yere döndürmelidir. ozelHesapla(int) metodu parametre olarak 4 basamaklı bir tam sayı değeri almalıdır. Parametre olarak aldığı 4 basamaklı tam sayıyı basamaklarına ayrıştırmalı ve her bir basamağı kuvvetHesapla(int) metoduna parametre olarak yollamalıdır. kuvvetHesapla(int) metodunun geri döndürdüğü değerlerin toplamını hesaplayarak bu değeri çağrıldığı yere geri döndürmelidir. kuvvetHesapla(int) metodu parametre olarak bir rakam ([0, 9] aralığında bir tam sayı) değeri almalıdır. Parametre olarak aldığı tam sayı değerinin 10'a tümleyen kuvvetini hesaplamalı ve hesapladığı değeri geri döndürmelidir. Örneğin parametre olarak 3 tam sayısını aldıysa 37 değerini hesaplamalı ve geriye 2187 sonucunu, parametre olarak 8 tam sayını aldıysa 82 değerini hesaplamalı ve geriye 64 sonucunu döndürmelidir. Diğer bütün değerler benzer şekilde hesaplanmalıdır. BİL 131 – Bilişim Teknolojileri ve Programlama Programın ana metodunda sadece klavyedenOku() metodu çağrılmalı, bu metottan geri dönen değer ozelHesapla(int) metoduna parametre olarak verilmeli, ozelHesapla(int) metodundan geri dönen değer ise sonuc isimli bir tam sayı değişkenine değer olarak atanmalı ve sonrasında ekrana yazdırılmalıdır. Programın örnek çıktıları aşağıda verilmiştir: Lutfen 4 basamakli bir tam sayi giriniz: 123 Hata!! Girdiginiz tam sayi 4 basamakli olmalidir. iyi gunler.. Lutfen 4 basamakli bir tam sayi giriniz: 12345 Hata!! Girdiginiz tam sayi 4 basamakli olmalidir. iyi gunler.. Lutfen 4 basamakli bir tam sayi giriniz: 1234 sonuc = 6540 iyi gunler.. Lutfen 4 basamakli bir tam sayi giriniz: 6789 sonuc = 1712 iyi gunler.. 2. [40 puan – Seçmeli Soru] Bir döngü içerisinde kullanıcından 10 tane tam sayı girmesini isteyen ve bu tam sayılardan çift olanlar ile tek olanların ortalamasını ayrı ayrı hesaplayarak ekrana yazdıran Java programını yazınız. Programın iki örnek çıktısı aşağıda verilmiştir: Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen bir bir bir bir bir bir bir bir bir bir tam tam tam tam tam tam tam tam tam tam sayi sayi sayi sayi sayi sayi sayi sayi sayi sayi giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: 1 2 3 4 5 6 7 8 9 10 Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen Lutfen bir bir bir bir bir bir bir bir bir bir tam tam tam tam tam tam tam tam tam tam sayi sayi sayi sayi sayi sayi sayi sayi sayi sayi giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: giriniz: 1 3 5 7 9 11 13 15 17 19 Girmis oldugunuz sayilardan: tek sayilarin ortalamasi = 5.0 cift sayilarin ortalamasi = 6.0 Girmis oldugunuz sayilardan: tek sayilarin ortalamasi = 10.0 cift sayilarin ortalamasi = 0.0 iyi gunler.. iyi gunler.. BİL 131 – Bilişim Teknolojileri ve Programlama 3. [40 puan – Seçmeli Soru] Klavyeden girilen bir cümle içerisinde yine klavyeden girilen bir kelimeyi sansürlemek istiyoruz. Programınız klavyeden cümle olarak girilen ilk String değeri içerisinde klavyeden kelime olarak girilen ikinci String değerini aramalı ve her bulduğu kelimenin yerine, o kelimenin uzunluğu kadar * karakteri yazmalıdır. Programın örnek çıktıları aşağıda verilmiştir: Lutfen bir cumle giriniz: bir berber bir berbere bre berber gel beraber bir berber dukkani acalim demis. Lutfen bir kelime giriniz: berber Girdilerinize gore sonuc: bir ****** bir ******e bre ****** gel beraber bir ****** dukkani acalim demis. iyi gunler.. Lutfen bir cumle giriniz: bir berber bir berbere bre berber gel beraber bir berber dukkani acalim demis. Lutfen bir kelime giriniz: ber Girdilerinize gore sonuc: bir ****** bir ******e bre ****** gel ***a*** bir ****** dukkani acalim demis. iyi gunler.. Lutfen bir cumle giriniz: kartal kalkar dal sarkar, dal sarkar kartal kalkar. Lutfen bir kelime giriniz: berber Girdilerinize gore sonuc: kartal kalkar dal sarkar, dal sarkar kartal kalkar. iyi gunler..