0% found this document useful (0 votes)
8 views3 pages

Assignment 1

Uploaded by

mcsurmeli39
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
0% found this document useful (0 votes)
8 views3 pages

Assignment 1

Uploaded by

mcsurmeli39
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

Ödev 1

Veriliş 12/04/2020 - Teslim 22/04/2020 BBS 515 - Nesne Yönelimli Programlama

Soru 1 - İki Yönlü Asal Sayı Bulma


Asal sayılar sadece kendisine ve 1’e kalansız bölünebilen doğal sayılardır. İki yönlü asal sayılar ise
hem basamakları sırasıyla okunduğunda hem de basamakları tersten okunduğunda asal sayı olan
sayılara denir. Bu tip sayıları bulan bir program yazmanız istenmektedir. Program 3 metoddan
oluşacaktır, çözümünüzü Solution1 sınıfına ekleyiniz ve paket kullanmayınız.

1 public class Solution1 {


2 public static boolean isPrime (int number ) {
3 ...
4 }
5
6 public static int reverse (int number ) {
7 ...
8 }
9
10 public static void printEprimes (int start , int end) {
11 ...
12 }
13 }

Her fonksiyon ayrı ayrı test edilecektir, bu yüzden metod imzalarının yukarıdaki tanımlarla aynı
olması beklenmektedir. Aşağıda her fonksiyonun örnek girdiler için ürettiği sonuçlar verilmiştir.
Not: printEprimes fonksiyonu o sayı aralığındaki iki yönlü okunduğunda da asal olan sayıları her biri
bir satırda olacak şekilde ekrana yazdırır (start ve end sayıları da dahil (inclusive)). Örnek olarak
aşağıda 300 ile 320 arasındaki iki yönden okuduğunda da asal olan sayılar 311 ve 313 gösterilmiştir
(313, 311 ve 113 asal sayılardır).

1 isPrime (11); // true


2 isPrime (15); // false
3
4 reverse (112); // 211
5 reverse (1225) // 5221
6
7 printEprimes (300 , 320); // 311 313

Soru 2 - Ve, veya sorguları


Sıralı bir listenin birleştirilmesi veri tabanlarından, arama motorlarına kadar birçok sistemin önemli
bir alt parçasıdır. Örnek olarak ortalaması 3.0’den fazla olan ve yaşı 30’dan büyük olan öğrencilerin

1
listesini çıkartmak istesek, her kritere göre birer liste oluşturup bu iki listenin kesişimini (ortak ele-
manlarını hesaplarız.) Bu ödevde tek boyutlu diziler ile bu işi yapan bir sistem gerçekleştireceksiniz.
Çözümünüzü Solution2 sınıfında iki metod olarak yazmanız gerekmektedir, aşağıda bu iki metodun
imzasını görebilirsiniz.

1 public class Solution2 {


2 public static int [] veya(int [] liste1 , int [] liste2 ) {
3 ...
4 }
5 public static int [] ve(int [] liste1 , int [] liste2 ) {
6 ...
7 }
8 }

Yazdığınız ”ve” ve ”veya” metodlarının iki tane sıralı dizi anlıp, bunlardan bir dizi oluşturması
istenmektedir. Tam sayıların 0’dan büyük olduğu var sayılmaktadır. Metodların dizide bu kritere
uymayan sayıları atlaması ve işlememesi beklenmektedir. Programın aşağıdaki gibi çalışması isten-
mektedir. Son örnekte olduğu gibi, iki fonksiyonun birlikte kullanılmasıyla daha karmaşık sorgular
desteklenebilmelidir.

1 int [] liste1 = {1, 2, 5, 10, 12, 15, 16, 200};


2 int [] liste2 = {1, 3, 6, 7, 8, 10, 12, 13, 15, 16};
3
4 int [] liste3 = {1, 2, 10, 12, 13, 200 , 201 , 202, 203};
5
6 int [] cikti = Solution2 .veya(liste1 , liste3 );
7 // [1, 2, 5, 10, 12, 13, 15, 16, 200 , 201 , 202, 203, 0, 0, 0, 0, 0]
8 cikti = Solution2 .ve(liste2 , liste1 );
9 // [1, 10, 12, 15, 16, 0, 0, 0, 0, 0]
10 cikti = Solution2 .veya( Solution2 .ve(liste1 , liste3 ), Solution2 .ve(liste2 ,
liste1 ))
11 // [1, 2, 10, 12, 15, 16, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Soru 3 - En uzun dizi


Verilen matrisde bir sayının satır, sutün veya çapraz olarak en uzun tekrarını bulan bir metod
yazmanız istenmektedir. Örnek olarak, aşağıdaki matriksde 1 sayısının en uzun dizisi diyagonaldaki
4 uzunluğundaki dizidir, 2 sayısı için en uzun dizi yukarıdan aşağıya üç tane 2, 3 için sağdan sola
2 tane 3’dür. Verilen herhangi bir matris için, sayının ardaşık olarak en fazla kaç kere geçtiğini
hesaplaması istenmektedir.
1 1 1 2 2
2 1 3 3 2
2 2 1 4 1
2 5 4 1 1

2
Çözümün aşağıdaki gibi bir metod içine yazılması istenmektedir. Örnek çalışma ve ürettiği çıktı
aşağıda gösterilmiştir.

1 public class Solution3 {


2 public static int checkMatrix (int [][] matrix , int val) {
3 ...
4 }
5 }

1 int [][] matrix = {{1 , 2, 3, 4, 5, 6},


2 {2, 1, 3, 4, 5, 6},
3 {1, 2, 4, 4, 5, 6},
4 {4, 2, 3, 1, 5, 6},
5 {1, 2, 3, 4, 1, 6},
6 {1, 2, 3, 4, 5, 1}};
7
8 checkMatrix (matrix , 1);
9 // 3
10 checkMatrix (matrix , 2);
11 // 4
12 checkMatrix (matrix , 3);
13 // 3
14 checkMatrix (matrix , 5);
15 // 5
16 checkMatrix (matrix , 10);
17 // 10

You might also like