You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sınıf çalışması: getDigitsInThrees metodunu NumberUtil sınıfı içerisinde yazınız yazınız ve test ediniz.
/*---------------------------------------------------------------------------------------------------------------------- 15.08.2020 Sınıf çalışması: Parametresi ile aldığı long türden bir sayının en fazla 3 basamaklı ayrılmış sayılarından oluşan diziyi döndüren getDigitsInThrees metodunu NumberUtil sınıfı içerisinde yazınız yazınız ve test ediniz. Örnek: 1234567 -> 1 234 567----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
importorg.csystem.util.NumberUtil;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
GetDigitsInThreesTest.run();
}
}
classGetDigitsInThreesTest {
publicstaticvoidrun()
{
Scannerkb = newScanner(System.in);
for (;;) {
System.out.print("Bir sayı giriniz:");
longval = Long.parseLong(kb.nextLine());
int [] a = NumberUtil.getDigitsInThrees(val);
ArrayUtil.display(a);
if (val == 0)
break;
}
}
}
String sınıfının split metodu ve çeşitli örnekler
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte split metodu space karakterini ayraç kabul ederek yazıyı ayrıştırmıştır. Ancak split metodu regex kullanıldığında bu şekildeki kullanım her karakter için mümkün değildir. Ayraç tek bir karakterden oluşsa bile bu kullanım tavsiye edilmez----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
Stringtext = "Bugün,hava çok güzel";
String [] strings = text.split(" ");
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
}
split metodu ile kullanılacak ayraç(lar) [] arasında yazılmalıdır
/*---------------------------------------------------------------------------------------------------------------------- split metodu ile kullanılacak ayraç(lar) [] arasında yazılmalıdır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
Stringtext = "Bugün hava çok güzel";
String [] strings = text.split("[ ]");
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
}
/*---------------------------------------------------------------------------------------------------------------------- split metodu ile kullanılacak ayraç(lar) [] arasında yazılmalıdır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
Stringtext = "Bugün hava çok,güzel";
String [] strings = text.split("[ ,]");
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
}
split'in aşağıdaki biçimde kullanımında iki ayraç arasındaki boş string'ler de geri döndürülen diziye dahil edilir
/*---------------------------------------------------------------------------------------------------------------------- split'in aşağıdaki biçimde kullanımında iki ayraç arasındaki boş string'ler de geri döndürülen diziye dahil edilir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
Stringtext = "Bugün hava çok, güzel";
String [] strings = text.split("[ ,]");
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
}
Boş string'in diziye dahil edilmemesi için ] sonuna + konmalıdır
/*---------------------------------------------------------------------------------------------------------------------- Boş string'in diziye dahil edilmemesi için ] sonuna + konmalıdır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
Stringtext = "Bugün hava çok, güzel";
String [] strings = text.split("[ ,]+");
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
}
[ ve ] karakterlerinin ayraç olarak verilebilmesi için ters bölü ile yazılması gerekir.
/*---------------------------------------------------------------------------------------------------------------------- [ ve ] karakterlerinin ayraç olarak verilebilmesi için ters bölü ile yazılması gerekir. Hatırlanacağı gibi bir stirn sabiti içerisinde ters bölü yazıda olacaksa iki tane ters bölü konmalıdır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
Stringtext = "Bugün [hava] çok, güzel";
String [] strings = text.split("[ ,\\[\\]]+");
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Yukarıdaki kalıplar dışında başka kalıplar da gerekebilir. Bu durum ileride ele alınacaktır----------------------------------------------------------------------------------------------------------------------*/
Sınıf çalışması: Klavyeden aşağıdaki formatta girilen bilgiyi ayrıştırarak ekrana yazdıran programı yazınız.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf çalışması: Klavyeden aşağıdaki formatta girilen bilgiyi ayrıştırarak ekrana yazdıran programı yazınız. Not: Geçerlilik kontrolü yapılmayacaktır. <isim>:<gg/aa/yyyy>:<ders adı>:<vize>:<final> Oğuz karan:10/09/1976:Matematik:90:100 Bu formatta kişinin vize final notlarına vize * %40 + final * %60 formulüne göre geçme notunu hesaplayan ve doğum tarihinin hangi güne geldiğini yazdıran programı yazınız----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.app.samples.studentinfoparserapp.StudentInfoParserApp;
classApp {
publicstaticvoidmain(String [] args)
{
StudentInfoParserApp.run();
}
}
packageorg.csystem.app.samples.commandpromptapp;
importorg.csystem.util.StringUtil;
importjava.util.Scanner;
publicclassCommandPrompt {
publicstaticString [] commandsStr = {"length", "reverse", "upper", "lower", "change", "clear"};
publicStringprompt;
publicScannerkb;
publicstaticStringgetCommandByText(Stringtext)
{
if (text.length() < 3)
return"";
for (inti = 0; i < commandsStr.length; ++i)
if (commandsStr[i].startsWith(text))
returncommandsStr[i];
return"";
}
publicvoidlengthProc(String [] commandsStr)
{
if (commandsStr.length != 2) {
System.out.println("length bir tane argüman almalıdır");
return;
}
System.out.println(commandsStr[1].length());
}
publicvoidreverseProc(String [] commandsStr)
{
if (commandsStr.length != 2) {
System.out.println("revere bir tane argüman almalıdır");
return;
}
System.out.println(StringUtil.reverse(commandsStr[1]));
}
publicvoidupperProc(String [] commandsStr)
{
if (commandsStr.length != 2) {
System.out.println("upper bir tane argüman almalıdır");
return;
}
System.out.println(commandsStr[1].toUpperCase());
}
publicvoidlowerProc(String [] commandsStr)
{
if (commandsStr.length != 2) {
System.out.println("lower bir tane argüman almalıdır");
return;
}
System.out.println(commandsStr[1].toLowerCase());
}
publicvoidchangeProc(String [] commandsStr)
{
if (commandsStr.length != 2) {
System.out.println("change bir tane argüman almalıdır");
return;
}
prompt = commandsStr[1];
}
publicvoidclearProc(String [] commandsStr)
{
for (inti = 0; i < 30; ++i)
System.out.println();
}
publicvoiddoWorkForCommand(String [] commandInfoStr)
{
switch (commandInfoStr[0]) {
case"length":
lengthProc(commandInfoStr);
break;
case"reverse":
reverseProc(commandInfoStr);
break;
case"upper":
upperProc(commandInfoStr);
break;
case"lower":
lowerProc(commandInfoStr);
break;
case"change":
changeProc(commandInfoStr);
break;
case"clear":
clearProc(commandInfoStr);
break;
}
}
publicvoidparseCommand(String [] commandInfoStr)
{
Stringcmd = getCommandByText(commandInfoStr[0]);
if (!cmd.isEmpty()) {
commandInfoStr[0] = cmd;
doWorkForCommand(commandInfoStr);
}
elseSystem.out.println("Geçersiz komut");
}
publicCommandPrompt(Stringp)
{
prompt = p;
kb = newScanner(System.in);
}
publicvoidrun()
{
System.out.println("C ve Sistem Programcıları Derneği");
System.out.println("Homework-013 sorusuna ilişkin bir iskelet");
for (;;) {
System.out.print(prompt + ">");
Stringcmd = kb.nextLine().trim();
if (cmd.equals("quit"))
break;
parseCommand(cmd.split("[ \t]+"));
}
System.out.println("C ve Sistem Programcıları Derneği");
System.out.println("Tekrar yapıyor musunuz?");
}
}
Dizi Dizileri
/*---------------------------------------------------------------------------------------------------------------------- 16.08.2020 T [] a ifadesinde T dizinin herbir elemanının tür bilgisi olduğuna göre örneğin: int [][] a ifadesi "her bir elemanı bir dizi referansı olan bir dizi referansı bildirimidir". Yani, a'nın türü int[][] dir. a referansı herbir elemanı bir dizi referansı olan bir dizinin adresini tutar----------------------------------------------------------------------------------------------------------------------*//*---------------------------------------------------------------------------------------------------------------------- Dizi dizisi bildiriminde new işlemi sırasında tür isminde sonra referans bildiriminde kullanılan [] kadar [] olmalıdır. Bu [] 'lerin ilki dizinin uzunluğunu temsil ettiği için boş bırakılamaz. Diğer []'ler boş bırakılabilir. int [][] türünden bir dizinin her bir elemanı olan dizi referanslarının gösterdiği dizilerin uzunlukları aynı ise buna mantıksal olarak matris denir. Çünkü bir matrisi temsil eder. Eğer en az bir dizinin uzunluğu diğerlerinden faklı ise bu aryık matris belitrmez. Java' da bazı programlama dillerinde olduğu gibi çok boyutlu dizi kavramı yoktur. Örneğin iki boyutlu bişr dizi matris belirtir cümlesi Java için yanlış bir cümledir. Yani aslında matrisler de Java' da dizi dizileridir.----------------------------------------------------------------------------------------------------------------------*/
Aşağıdaki m * n'lik bir matris yaratılmış ve elemanlarına rasgele değerler atanmıştır
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki m * n'lik bir matris yaratılmış ve elemanlarına rasgele değerler atanmıştır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
Randomr = newRandom();
Scannerkb = newScanner(System.in);
System.out.print("Satır sayısını giriniz:");
intm = Integer.parseInt(kb.nextLine());
System.out.print("Sütun sayısını giriniz:");
intn = Integer.parseInt(kb.nextLine());
int [][] a;
a = newint[m][];
for (inti = 0; i < a.length; ++i)
a[i] = newint[n];
for (inti = 0; i < m; ++i)
for (intj = 0; j < n; ++j)
a[i][j] = r.nextInt(100);
for (inti = 0; i < m; ++i) {
for (intj = 0; j < n; ++j)
System.out.printf("%02d ", a[i][j]);
System.out.println();
}
}
}
Java 5 ile birlikte aşağıdaki gibi ikinci [] içerisinde yazılan uzunluk matrisin satır sayısı anlamına gelir.
/*---------------------------------------------------------------------------------------------------------------------- Java 5 ile birlikte aşağıdaki gibi ikinci [] içerisinde yazılan uzunluk matrisin satır sayısı anlamına gelir. Yani dizinin gösterdiği diziler otomatik olarak aynı uzunlukta yarılmış olur----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
Randomr = newRandom();
Scannerkb = newScanner(System.in);
System.out.print("Satır sayısını giriniz:");
intm = Integer.parseInt(kb.nextLine());
System.out.print("Sütun sayısını giriniz:");
intn = Integer.parseInt(kb.nextLine());
int [][] a;
a = newint[m][n];
for (inti = 0; i < m; ++i)
for (intj = 0; j < n; ++j)
a[i][j] = r.nextInt(100);
for (inti = 0; i < m; ++i) {
for (intj = 0; j < n; ++j)
System.out.printf("%02d ", a[i][j]);
System.out.println();
}
}
}
Dizi dizileri de metotlara geçirilebilir, dizi dizisi (referansı) döndüren metotlar da yazılabilir
/*---------------------------------------------------------------------------------------------------------------------- Dizi dizileri de metotlara geçirilebilir, dizi dizisi (referansı) döndüren metotlar da yazılabilir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
Randomr = newRandom();
Scannerkb = newScanner(System.in);
System.out.print("Satır sayısını giriniz:");
intm = Integer.parseInt(kb.nextLine());
System.out.print("Sütun sayısını giriniz:");
intn = Integer.parseInt(kb.nextLine());
int [][] a;
a = ArrayUtil.getRandomMatrix(r, m, n, 0, 100);
ArrayUtil.display(2, a);
}
}
Dizi dizilerine ilk değer verilmesi
/*---------------------------------------------------------------------------------------------------------------------- Dizi dizilerine ilk değer verilmesi----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
classApp {
publicstaticvoidmain(String [] args)
{
int [][] a = {{1, 2, 3,}, {4, 5, 6}, {7, 8, 9}};
ArrayUtil.display(a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Dizi dizilerine ilk değer verilmesi----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
classApp {
publicstaticvoidmain(String [] args)
{
int [][] a;
a = newint[][]{{1, 2, 3,}, {4, 5, 6}, {7, 8, 9}};
ArrayUtil.display(a);
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir dizi dizisinin elemanlarının toplamını döndüren sum isimli metodu ArrayUtil sınıfı içerisinde yazınız ve test ediniz
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir dizi dizisinin elemanlarının toplamını döndüren sum isimli metodu ArrayUtil sınıfı içerisinde yazınız ve test ediniz----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
SumTest.run();
}
}
classSumTest {
publicstaticvoidrun()
{
Scannerkb = newScanner(System.in);
Randomr = newRandom();
for (;;) {
System.out.print("Satır sayısını giriniz:");
intm = Integer.parseInt(kb.nextLine());
if (m <= 0)
break;
System.out.print("Sütun sayısını giriniz:");
intn = Integer.parseInt(kb.nextLine());
int [][] a = ArrayUtil.getRandomMatrix(r, m, n, 0, 100);
ArrayUtil.display(2, a);
System.out.printf("Toplam:%d%n", ArrayUtil.sum(a));
}
}
}
Sınıf Çalışması: Parametresi ile aldığı bir matrisin devriğini (transpose) döndüren transpose isimli metodu yazınız.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı bir matrisin devriğini (transpose) döndüren transpose isimli metodu yazınız. Metot şüphesiz yeni bir dizi dizisi referansı döndürecektir. Not: Matris kontrolü yapılmayacaktır 1 2 3 4 5 6 1 4 2 5 3 6----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
TransposeTest.run();
}
}
classTransposeTest {
publicstaticvoidrun()
{
Scannerkb = newScanner(System.in);
Randomr = newRandom();
for (;;) {
System.out.print("Satır sayısını giriniz:");
intm = Integer.parseInt(kb.nextLine());
if (m <= 0)
break;
System.out.print("Sütun sayısını giriniz:");
intn = Integer.parseInt(kb.nextLine());
int [][] a = ArrayUtil.getRandomMatrix(r, m, n, 0, 100);
ArrayUtil.display(2, a);
System.out.println("///////////////////////");
ArrayUtil.display(2, ArrayUtil.transpose(a));
}
}
}
Sınıf Çalışması: isMatrix ve isSquareMatrix metodlarını yazınız
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden dizi dizisinin matris olup olmadığını test eden isMatrix metodu ile kare matris olup olmadığını test eden isSquareMatrix metodunu yazınız ve test ediniz----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
classApp {
publicstaticvoidmain(String [] args)
{
int [][] a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
System.out.println(ArrayUtil.isMatrix(a) ? "Matris" : "Matris değil");
System.out.println(ArrayUtil.isSquareMatrix(a) ? "Kare matris" : "Kare matris değil");
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir kare matrisin esas köşegeni üzerindeki elemanlarının toplamını bulan programı yazınız.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir kare matrisin esas köşegeni üzerindeki elemanlarının toplamını bulan programı yazınız. Açıklamalar: 1. Metot matris veya kare matris kontrolü yapmayacaktır 2. Metodun testini elemanları rasgele üretilmiş matrisler ile yapınız 3. Esas köşegen elemanları örneğin: 1 2 3 4 5 6 7 8 9 matrisi için 1, 5 ve 9 sayılarıdır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
SumDiagonalTest.run();
}
}
classSumDiagonalTest {
publicstaticvoidrun()
{
Scannerkb = newScanner(System.in);
Randomr = newRandom();
for (;;) {
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
if (n <= 0)
break;
int [][] a = ArrayUtil.getRandomSquareMatrix(r, n, 0, 100);
ArrayUtil.display(2, a);
System.out.printf("Esas kşegen elemanlar toplamı:%d%n", ArrayUtil.sumDiagonal(a));
}
}
}
Sınıf Çalışması: addMtrices isimli metodu ArrayUtil sınıfı içerisinde yazınız ve test ediniz.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı elemanları int türden olan iki matrisin toplamından oluşan matrisi döndüren addMtrices isimli metodu ArrayUtil sınıfı içerisinde yazınız ve test ediniz. Açıklamalar: 1. Metot iki matrisin toplanamaması durumunda ekrana bir mesaj yazdıracak ve programı sonlandıracaktır 2. Programı sonlandırmak için System.exit(-1) çağrısı yapılabilir 3. İki matrisin toplanabilmesi için satır sayılarının ve sütun sayıların aynı olması gerekir. 4. Toplama işlemi için karşılıklı elemanların toplamından yine aynı satır ve sütün sayısına sahip matris elde edilir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.ArrayUtil;
importjava.util.Random;
importjava.util.Scanner;
classApp {
publicstaticvoidmain(String [] args)
{
AddMatricesTest.run();
}
}
classAddMatricesTest {
publicstaticvoidrun()
{
Scannerkb = newScanner(System.in);
Randomr = newRandom();
for (;;) {
System.out.print("Satır sayısını giriniz:");
intm = Integer.parseInt(kb.nextLine());
if (m <= 0)
break;
System.out.print("Sütün sayısını giriniz:");
intn = Integer.parseInt(kb.nextLine());
int [][] a = ArrayUtil.getRandomMatrix(r, m, n, 0, 100);
int [][] b = ArrayUtil.getRandomMatrix(r, m, n, 0, 100);
int [][] total = ArrayUtil.addMatrices(a, b);
ArrayUtil.display(2, a);
System.out.println("+");
ArrayUtil.display(2, b);
System.out.println("=");
ArrayUtil.display(3, total);
}
}
}
Dizi dizilerine yönelik karmaşık bildirimler
/*---------------------------------------------------------------------------------------------------------------------- Dizi dizilerine yönelik karmaşık bildirimler----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
int [][][] a;
a = newint[3][4][5];
for (inti = 0; i < a.length; ++i)
for (intj = 0; j < a[i].length; ++j)
for (intk = 0; k < a[i][j].length; ++k)
a[i][j][k] = i + j + k;
//...
}
}
/*---------------------------------------------------------------------------------------------------------------------- Dizi dizilerine yönelik karmaşık bildirimler----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
int [][][] a = {{{1, 2, 3}, {4, 5, 6}}, {{1, 2,3}, {4, 5, 6}}};
//...
}
}
packageorg.csystem.app.samples.lottary;
importjava.util.Random;
publicclassLottary {
publicRandomrandom;
publicboolean [] getFlags()
{
boolean [] flags = newboolean[50];
intval;
for (inti = 0; i < 6; ++i) {
for (;;) {
val = random.nextInt(49) + 1;
if (!flags[val])
break;
}
flags[val] = true;
}
returnflags;
}
publicint [] getNumbers(boolean [] flags)
{
int [] a = newint[6];
intindex = 0;
for (inti = 1; i < 50; ++i)
if (flags[i])
a[index++] = i;
returna;
}
publicLottary()
{
random = newRandom();
}
publicint [] getNumbers()
{
returngetNumbers(getFlags());
}
publicint [][] getNumbers(intn)
{
int [][] numbers = newint[n][];
for (inti = 0; i < n; ++i)
numbers[i] = getNumbers();
returnnumbers;
}
}
Sınıf Çalışması: Şubelere göre matematik sınav sonuçlarını bulup yazdıran programı yazınız
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Bir okulda Matematik sınavı ortak olarak yapılıyor olsun. Kaç şube olduğu ve her bir şubenin öğrenci sayısı klavyeden girilmek üzere şubelerin notları programda rasgele belirlenecektir. Bu işlemlerden sonra Matematik sınavı için her bir şubenin ayrı ayrı not ortalamaları ile okulun not ortalamasını bulan programı yazınız----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.app.samples.examsimulationapp.ExamSimulationApp;
classApp {
publicstaticvoidmain(String [] args)
{
ExamSimulationApp.run();
}
}
/*---------------------------------------------------------------------------------------------------------------------- ArrayUtil sınıfı----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.util;
importjava.util.Random;
publicclassArrayUtil {
publicstaticvoidbubbleSortAscending(int [] a)
{
for (inti = 0; i < a.length - 1; ++i)
for (intk = 0; k < a.length - 1 - i; ++k)
if (a[k + 1] < a[k])
swap(a, k, k + 1);
}
publicstaticvoidbubbleSortDescending(int [] a)
{
for (inti = 0; i < a.length - 1; ++i)
for (intk = 0; k < a.length - 1 - i; ++k)
if (a[k + 1] > a[k])
swap(a, k, k + 1);
}
publicstaticvoidselectionSortAscending(int [] a)
{
intmin, minIndex;
for (inti = 0; i < a.length - 1; ++i) {
min = a[i];
minIndex = i;
for (intk = i + 1; k < a.length; ++k) {
if (a[k] < min) {
min = a[k];
minIndex = k;
}
}
a[minIndex] = a[i];
a[i] = min;
}
}
publicstaticvoidselectionSortDescending(int [] a)
{
intmax, maxIndex;
for (inti = 0; i < a.length - 1; ++i) {
max = a[i];
maxIndex = i;
for (intk = i + 1; k < a.length; ++k) {
if (a[k] > max) {
max = a[k];
maxIndex = k;
}
}
a[maxIndex] = a[i];
a[i] = max;
}
}
publicstaticint [][] addMatrices(int [][] a, int [][] b)
{
if (isNotMatrix(a) || isNotMatrix(b) || a.length != b.length || a[0].length != b[0].length) {
System.out.println("Invalid matrices for add operation");
System.exit(-1); //exception işlemlerine kadar sabredin
}
int [][] total = newint[a.length][a[0].length];
for (inti = 0; i < total.length; ++i)
for (intj = 0; j < total[i].length; ++j)
total[i][j] = a[i][j] + b[i][j];
returntotal;
}
publicstaticvoidbubbleSort(int [] a, booleandescending)
{
if (descending)
bubbleSortDescending(a);
elsebubbleSortAscending(a);
}
publicstaticvoidbubbleSort(int [] a)
{
bubbleSort(a, false);
}
publicstaticvoiddisplay(int [] a)
{
display(1, a);
}
publicstaticvoiddisplay(intk, int [] a)
{
display(k, a.length, a);
}
publicstaticvoiddisplay(intk, intcount, int [] a)
{
Stringfmt = String.format("%%0%dd ", k); //"%02d " -> k = 2for (inti = 0; i < count; ++i)
System.out.printf(fmt, a[i]);
System.out.println();
}
publicstaticvoiddisplay(String [] strings)
{
for (inti = 0; i < strings.length; ++i)
System.out.println(strings[i]);
}
publicstaticvoiddisplay(int [][] a)
{
display(1, a);
}
publicstaticvoiddisplay(intk, int [][] a)
{
for (inti = 0; i < a.length; ++i)
display(k, a[i]);
}
publicstaticvoiddrawHistogram(int [] data, intn, charch)
{
intmaxVal = max(data);
for (inti = 0; i < data.length; ++i) {
intcount = (int)Math.floor(data[i] * n / (double)maxVal);
while (count-- > 0)
System.out.print(ch);
System.out.println();
}
}
publicstaticvoidfillRandomArray(int [] a, intmin, intmax)
{
fillRandomArray(newRandom(), a, min, max);
}
publicstaticvoidfillRandomArray(Randomr, int [] a, intmin, intmax)
{
for (inti = 0; i < a.length; ++i)
a[i] = r.nextInt(max - min) + min;
}
publicstaticint[] getHistogramData(int [] a, intn) //[0, n]
{
int [] histData = newint[n + 1];
for (inti = 0; i < a.length; ++i)
++histData[a[i]];
returnhistData;
}
publicstaticint [] getRandomArray(intn, intmin, intmax) //[min, max)
{
returngetRandomArray(newRandom(), n, min, max);
}
publicstaticint [] getRandomArray(Randomr, intn, intmin, intmax) //[min, max)
{
int [] a = newint[n];
fillRandomArray(r, a, min, max);
returna;
}
publicstaticint[][] getRandomMatrix(intm, intn, intmin, intmax) //[min, max)
{
returngetRandomMatrix(newRandom(), m, n, min, max);
}
publicstaticint[][] getRandomMatrix(Randomr, intm, intn, intmin, intmax) //[min, max)
{
int [][] a = newint[m][];
for (inti = 0; i < m; ++i)
a[i] = getRandomArray(r, n, min, max);
returna;
}
publicstaticint [][] getRandomSquareMatrix(intn, intmin, intmax)
{
returngetRandomSquareMatrix(newRandom(), n, min, max);
}
publicstaticint [][] getRandomSquareMatrix(Randomr, intn, intmin, intmax)
{
returngetRandomMatrix(r, n, n, min, max);
}
publicstaticbooleanisMatrix(int [][] a)
{
intcount = a[0].length;
for (inti = 1; i < a.length; ++i)
if (a[i].length != count)
returnfalse;
returntrue;
}
publicstaticbooleanisNotMatrix(int [][]a)
{
return !isMatrix(a);
}
publicstaticbooleanisSquareMatrix(int [][] a)
{
returnisMatrix(a) && a[0].length == a.length;
}
publicstaticbooleanisNotSquareMatrix(int [][] a)
{
return !isSquareMatrix(a);
}
publicstaticStringjoin(String [] strings, chardelimiter)
{
returnjoin(strings, delimiter + "");
}
publicstaticStringjoin(String [] strings, Stringdelimiter)
{
Stringstr = "";
for (inti = 0; i < strings.length; ++i)
str += strings[i] + delimiter;
returnstr.substring(0, str.length() - delimiter.length());
}
publicstaticintmax(int [] a)
{
intmaxVal = a[0];
for (inti = 1; i < a.length; ++i)
if (a[i] > maxVal)
maxVal = a[i];
returnmaxVal;
}
publicstaticintmin(int [] a)
{
intminVal = a[0];
for (inti = 1; i < a.length; ++i)
if (a[i] < minVal)
minVal = a[i];
returnminVal;
}
publicstaticintpartition(int [] a, intthreshold)
{
intpartitionIndex = 0;
while (partitionIndex != a.length && a[partitionIndex] < threshold)
++partitionIndex;
if (partitionIndex == a.length)
returnpartitionIndex;
for (inti = partitionIndex + 1; i < a.length; ++i)
if (a[i] < threshold)
swap(a, i, partitionIndex++);
returnpartitionIndex;
}
publicstaticvoidreverse(int [] a)
{
inthalfLen = a.length / 2;
for (inti = 0; i < halfLen; ++i)
swap(a, i, a.length - 1 - i);
}
publicstaticvoidreverse(char [] a)
{
inthalfLen = a.length / 2;
for (inti = 0; i < halfLen; ++i)
swap(a, i, a.length - 1 - i);
}
publicstaticvoidselectionSort(int [] a)
{
selectionSort(a, false);
}
publicstaticvoidselectionSort(int [] a, booleandescending)
{
if (descending)
selectionSortDescending(a);
elseselectionSortAscending(a);
}
publicstaticintsum(int [] a)
{
inttotal = 0;
for (inti = 0; i < a.length; ++i)
total += a[i];
returntotal;
}
publicstaticintsum(int [][] a)
{
inttotal = 0;
for (inti = 0; i < a.length; ++i)
for (intk = 0; k < a[i].length; ++k)
total += a[i][k];
returntotal;
}
publicstaticintsumDiagonal(int [][] a)
{
inttotal = 0;
for (inti = 0; i < a.length; ++i)
total += a[i][i];
returntotal;
}
publicstaticvoidswap(int [] a, inti, intk)
{
inttemp;
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
publicstaticvoidswap(char [] a, inti, intk)
{
chartemp;
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
publicstaticint [][] transpose(int [][] a)
{
int [][] t = newint[a[0].length][a.length];
for (inti = 0; i < t.length; ++i)
for (intj = 0; j < t[i].length; ++j)
t[i][j] = a[j][i];
returnt;
}
}
NumberUtil sınıfı
/*---------------------------------------------------------------------------------------------------------------------- NumberUtil sınıfı----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.util;
importstaticjava.lang.Math.*;
publicclassNumberUtil {
publicstaticString [] onesTR = {"", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"};
publicstaticString [] tensTR = {"", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan"};
publicstaticint[] getDigits(longval, intn)
{
longvalue = Math.abs(val);
intcount = value == 0 ? 1 : (int)Math.log10(value) / n + 1;
int [] digits = newint[count];
intpowerOfTen = (int)Math.pow(10, n);
for (inti = count - 1; i >= 0; digits[i] = (int)(value % powerOfTen), value /= powerOfTen, --i)
;
returndigits;
}
publicstaticStringnumberToText3DigitsTR(intval)
{
if(val == 0)
return"sıfır";
Stringtext = val < 0 ? "eksi" : "";
intvalue = Math.abs(val);
inta = value / 100;
intb = value / 10 % 10;
intc = value % 10;
if (a != 0) {
if (a != 1)
text += onesTR[a];
text += "yüz";
}
if (b != 0)
text += tensTR[b];
if (c != 0)
text += onesTR[c];
returntext;
}
publicstaticintfactorial(intn)
{
if (n < 0)
return -1;
intresult = 1;
for (inti = 2; i <= n; ++i)
result *= i;
returnresult;
}
publicstaticint[] getDigits(intval)
{
returngetDigits((long)val);
}
publicstaticint[] getDigits(longval)
{
returngetDigits(val, 1);
}
publicstaticint[] getDigitsInTwos(longval)
{
returngetDigits(val, 2);
}
publicstaticint[] getDigitsInThrees(longval)
{
returngetDigits(val, 3);
}
publicstaticintgetDigitsCount(longval)
{
returnval == 0 ? 1 : (int)log10(abs(val)) + 1;
}
publicstaticintgetDigitsPowSum(intval)
{
intcount = getDigitsCount(val);
intsum = 0;
while (val != 0) {
sum += pow(val % 10, count);
val /= 10;
}
returnsum;
}
publicstaticintgetDigitsSum(intval)
{
val = abs(val);
intsum = 0;
while (val != 0) {
sum += val % 10;
val /= 10;
}
returnsum;
}
publicstaticintgetFibonacciNumber(intn)
{
if (n <= 0)
return -1;
if (n <= 2)
returnn - 1;
intprev1 = 1, prev2 = 0, val = 0;
for (inti = 2; i < n; ++i) {
val = prev1 + prev2;
prev2 = prev1;
prev1 = val;
}
returnval;
}
publicstaticintgetNextFibonacciNumber(intval)
{
if (val < 0)
return0;
intprev1 = 1, prev2 = 0, result;
for (;;) {
result = prev1 + prev2;
if (result > val)
returnresult;
prev2 = prev1;
prev1 = result;
}
}
publicstaticintgetPrime(intn)
{
if (n <= 0)
return -1;
intcount = 0;
intval = 2;
for (inti = 2; count < n; ++i)
if (isPrime(i)) {
++count;
val = i;
}
returnval;
}
publicstaticintgetReverse(intval)
{
intreverse = 0;
while (val != 0) {
reverse = reverse * 10 + val % 10;
val /= 10;
}
returnreverse;
}
publicstaticbooleanisArmstrong(intval)
{
if (val < 0)
returnfalse;
returngetDigitsPowSum(val) == val;
}
publicstaticbooleanisEven(intval)
{
returnval % 2 == 0;
}
publicstaticbooleanisOdd(intval)
{
return !isEven(val);
}
publicstaticbooleanisPrime(intval)
{
if (val <= 1)
returnfalse;
if (val % 2 == 0)
returnval == 2;
if (val % 3 == 0)
returnval == 3;
if (val % 5 == 0)
returnval == 5;
if (val % 7 == 0)
returnval == 7;
intsqrtVal = (int)sqrt(val);
for (inti = 11; i <= sqrtVal; i += 2)
if (val % i == 0)
returnfalse;
returntrue;
}
publicstaticbooleanisNotPrime(intval)
{
return !isPrime(val);
}
publicstaticintmax(inta, intb, intc)
{
returnMath.max(Math.max(a, b), c);
}
publicstaticintmin(inta, intb, intc)
{
returnMath.min(Math.min(a, b), c);
}
publicstaticStringnumberToTextTR(longval)
{
Stringtext;
//TODO: Homework-012-3. sorutext = numberToText3DigitsTR((int)val);
returntext;
}
publicstaticintpow(inta, intb)
{
if (b <= 0)
return1;
intresult = 1;
while (b-- > 0)
result *= a;
returnresult;
}
}
/*---------------------------------------------------------------------------------------------------------------------- StringUtil sınıfı----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.util;
importjava.util.Random;
importstaticjava.lang.Character.*;
publicclassStringUtil {
publicstaticStringcapitalize(Strings)
{
if (s.isEmpty())
returns;
returntoUpperCase(s.charAt(0)) + s.substring(1).toLowerCase();
}
publicstaticintcountString(Strings1, Strings2)
{
intcount = 0;
for (inti = -1; (i = s1.indexOf(s2, i + 1)) != -1; ++count)
;
returncount;
}
publicstaticStringgetLetters(Strings)
{
Stringstr = "";
intlength = s.length();
for (inti = 0; i < length; ++i) {
charch = s.charAt(i);
if (isLetter(ch))
str += ch;
}
returnstr;
}
publicstaticStringgetLongestPalindrome(Strings)
{
Stringtext = "";
intendIndex = s.length();
while (endIndex != 0) {
intbeginIndex = 0;
while (beginIndex != endIndex) {
Stringstr = s.substring(beginIndex++, endIndex);
if (str.length() > 1 && StringUtil.isPalindrome(str) && str.length() > text.length())
text = str;
}
--endIndex;
}
returntext;
}
publicstaticStringgetRandomText(Randomr, intn, Stringalphabet)
{
char [] c = newchar[n];
for (inti = 0; i < n; ++i) {
charch = alphabet.charAt(r.nextInt(alphabet.length()));
if (r.nextBoolean())
ch = toUpperCase(ch);
c[i] = ch;
}
returnString.valueOf(c);
}
publicstaticStringgetRandomTextEN(intn)
{
returngetRandomTextEN(newRandom(), n);
}
publicstaticStringgetRandomTextEN(Randomr, intn)
{
returngetRandomText(r, n, "abcdefghijklmnopqrstuwxvyz");
}
publicstaticStringgetRandomTextTR(intn)
{
returngetRandomTextTR(newRandom(), n);
}
publicstaticStringgetRandomTextTR(Randomr, intn)
{
returngetRandomText(r, n, "abcçdefgğhıijklmnoöprsştuüvyz");
}
publicstaticbooleanisPalindrome(Strings)
{
intleft = 0;
intright = s.length() - 1;
while (left < right) {
charchLeft = toLowerCase(s.charAt(left));
if (!isLetter(chLeft)) {
++left;
continue;
}
charchRight = toLowerCase(s.charAt(right));
if (!isLetter(chRight)) {
--right;
continue;
}
if (chLeft != chRight)
returnfalse;
++left;
--right;
}
returntrue;
}
publicstaticbooleanisPangram(Stringtext, Stringalphabet)
{
intlength = alphabet.length();
for (inti = 0; i < length; ++i)
if (!text.contains(alphabet.charAt(i) + ""))
returnfalse;
returntrue;
}
publicstaticbooleanisPangramEN(Stringtext)
{
returnisPangram(text.toLowerCase(), "abcdefghijklmnopqrstuwxvyz");
}
publicstaticbooleanisPangramTR(Stringtext)
{
returnisPangram(text.toLowerCase(), "abcçdefgğhıijklmnoöprsştuüvyz");
}
publicstaticStringpadLeft(Strings, intlength)
{
returnpadLeft(s, length, ' ');
}
publicstaticStringpadLeft(Strings, intlength, charch)
{
length -= s.length();
if (length <= 0)
returns;
returnrepeat(length, ch) + s;
}
publicstaticStringpadRight(Strings, intlength)
{
returnpadRight(s, length, ' ');
}
publicstaticStringpadRight(Strings, intlength, charch)
{
length -= s.length();
if (length <= 0)
returns;
returns + repeat(length, ch);
}
publicstaticStringremoveWhitespaces(Strings)
{
intlength = s.length();
Stringstr = "";
for (inti = 0; i < length; ++i) {
charch = s.charAt(i);
if (!isWhitespace(ch))
str += ch;
}
returnstr;
}
publicstaticStringrepeat(intn, charch)
{
char [] c = newchar[n];
while (n-- > 0)
c[n] = ch;
returnString.valueOf(c);
}
publicstaticStringreverse(Stringstr)
{
char [] c = str.toCharArray();
ArrayUtil.reverse(c);
returnString.valueOf(c);
}
publicstaticStringtrimLeft(Strings)
{
inti;
intlen = s.length();
for (i = 0; i < len && isWhitespace(s.charAt(i)); ++i)
;
returns.substring(i);
}
publicstaticStringtrimRight(Strings)
{
inti;
for (i = s.length() - 1; i >= 0 && isWhitespace(s.charAt(i)); --i)
;
returns.substring(0, i + 1);
}
}
for-each döngü deyiminin genel biçimi
/*---------------------------------------------------------------------------------------------------------------------- for-each döngü deyiminin genel biçimi: for (<tür> <değişken> : <dolaşaılabilir (iterable) bir türe ilişkin referans>) <deyim> Burada dolaşılabilir kavramı uygulama kursunda ele alınacaktır. Diziler dolaşılabilir türler olduğundan for-each döngü deyimi ile kullanılabilir.----------------------------------------------------------------------------------------------------------------------*//*---------------------------------------------------------------------------------------------------------------------- for-each döngü deyiminin dizi ile kullanımında döngü değişkenine döngünün her adımında o anki elemanın değeri atanır. Bu işlem dizinin başından sonuna kadar tekrarlanır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
classApp {
publicstaticvoidmain(String [] args)
{
int [] a = {1, 2, 3, 4, 5};
for (intval : a)
System.out.printf("%d ", val);
System.out.println();
}
}
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/