Skip to content

Files

Latest commit

 

History

History

JavaHomeworks

All_The_Course_And_Homework_Codes_Here_...


package csd;

class App {
	public static void main(String [] args) 
	{
	   
	    //...
	   
	}
}

class TripletPrimeNumTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("üç basamaklı TripletPrimeNumbers:");
	for(int i = 100; i < 1000; i++) {
	    if(TripletPrimeNum.isTripletPrime(i)){
		System.out.printf("%d -- %d%n",i,NumberUtil.getReverse(i));
	    	
	    }
		
	}
    }
}

class TripletPrimeNum{
    public static boolean isTripletPrime(int ival)
    {
	int reverseVal = NumberUtil.getReverse(ival);
	if (reverseVal > ival)
	    if (NumberUtil.isPrime(ival) && NumberUtil.isPrime(reverseVal))
		    if (NumberUtil.isPrime(ival % 100) && NumberUtil.isPrime(reverseVal % 100))
			    if (NumberUtil.isPrime(ival / 10) && NumberUtil.isPrime(reverseVal / 10))
				     return true;
	    return false;
    }
}

class XPrimalityTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	int ival;
	for(;;){
	    System.out.printf("Bir tam sayı giriniz:");
	    ival = Integer.parseInt(kb.nextLine());
	    if(xPrimality.xPrime(ival))
	    System.out.printf("(%d) sayısı Xprime%n",ival);
	    else
		System.out.printf("(%d) sayısı Xprime değildir%n",ival);
	    System.out.println("Çıkış için negatif bir sayı giriniz");
	    if(ival < 0)
		break;
	    
	}
	System.out.println("Çıkış yaptınız....");
    }
}

class xPrimality {
    public static boolean xPrime(int ival)
    {
	
	while ( NumberUtil.getDigitsCount(ival) > 2){
	    if (!NumberUtil.isPrime(ival))
		return false;
	    ival = NumberUtil.getDigitsSum(ival);
	}
	
	return NumberUtil.isPrime(ival);
    }
}

class IsLeapYearTest {
	public static void run()
	{
		for (int year = 1999; year <= 2105; ++year)
			if (DateUtil.isLeapYear(year))
				System.out.printf("%d ", year);
		
		System.out.println();
	}	
}

class IsValidDateTest {
	public static void run()
	{
		java.util.Scanner kb = new java.util.Scanner(System.in);
		
		for (;;) {
			System.out.print("Gün bilgisini giriniz:");
			int day = Integer.parseInt(kb.nextLine());
			
			if (day == 0)
				break;
			
			System.out.print("Ay bilgisini giriniz:");
			int month = Integer.parseInt(kb.nextLine());
			
			System.out.print("Yıl bilgisini giriniz:");
			int year = Integer.parseInt(kb.nextLine());
			
			if (DateUtil.isValidDate(day, month, year))
				System.out.printf("%02d/%02d/%04d tarihi geçerlidir%n", day, month, year);
			else
				System.out.println("Geçersiz tarih");	
			
		}
		
		System.out.println("Tekrar yapıyor musunuz?");
	}	
}

class GetDayOfYearTest {
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	
	for(;;){
	    
	    System.out.println("Gün bilgisi giriniz:");
	    int day = Integer.parseInt(kb.nextLine());
	    	if (day == 0)
	    	    break;
	    System.out.println("Ay bilgisi giriniz:");
	    int mon = Integer.parseInt(kb.nextLine());
	    
	    System.out.print("Yıl bilgisini giriniz:");
	    int year = Integer.parseInt(kb.nextLine());
	    
	    int dayOfYear = DateUtil.getDayOfYear(day, mon, year);
	    
	    if(dayOfYear != -1)
		System.out.printf("%02d/%02d/%04d tarihi yılın %d. günüdür%n",day,mon,year,DateUtil.getDayOfYear(day, mon, dayOfYear));
	    else
		System.out.printf("Geçersiz bir tarih girdiniz. Lütfen tekrar deneyiniz...");
		
	}
	
	System.out.println("Çıkış yaptınız. Program sonlandırılıyor...");
    }
    
    
}

class DateUtil {
    public static boolean isValidDate(int day, int mon, int year)
    {
	if (day < 1 || day > 31 || mon < 1 || mon > 12)
	    return false;
	int days = 31;
	switch(mon){
	case 4:
	case 6:
	case 9:
	case 11:
	    days = 30;
	    break;
	case 2: 
	    days = 28;
	    if (isLeapYear(year))
	    days++;
	}
	return day <= days;
	
    }
    public static boolean isLeapYear(int year)
    {
	return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }
    
    public static int getDayOfYear(int day, int mon, int year)
    {
	if (!isValidDate(day,mon,year))
	    return -1;
	int dayOfYear = day;
	
	switch(mon-1){
	case 11:dayOfYear += 30;
	case 10:dayOfYear += 31;
	case  9:dayOfYear += 30;
	case  8:dayOfYear += 31;
	case  7:dayOfYear += 31;
	case  6:dayOfYear += 30;
	case  5:dayOfYear += 31;
	case  4:dayOfYear += 30;
	case  3:dayOfYear += 31;
	case  2:dayOfYear += 28;
	    if (isLeapYear(year))
		dayOfYear++;
	case 1: dayOfYear += 31;
	    
	}
	return dayOfYear;
    }
}




class GoldBatchNumbersTest {
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("İkiden büyük çift bir tamsayı giriniz:");
	int ival;
	while ((ival = Integer.parseInt(kb.nextLine())) != 0)
	{
	    System.out.println("İşte altın Batch Sayıları:");
	    GoldBatchNumbers.displayGoldBatchNumbers(ival);
	    System.out.println("Çıkmak için '0' giriniz:");
	    System.out.println("Devam etmek için 2'den büyük bir çift sayı giriniz:");
	}
    }
}

class GoldBatchNumbers {
    public static void displayGoldBatchNumbers(int ival)
    {
	
	for(int i = 2; i < ival; i++ )
	    if (NumberUtil.isPrime(i) && NumberUtil.isPrime(ival-i))
		System.out.printf("(%2d) + (%2d) = (%3d)%n",i,ival-i,ival);

    }
}


class PatternTest {
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("Merdiven Çizimi: ?");
	
	
		    
	    
	   System.out.println("Yükseklik:");
	   int  height = Integer.parseInt(kb.nextLine());
	   System.out.println("Genişlik:");
	   int width = Integer.parseInt(kb.nextLine());
	   Pattern.createPattern(height, width);
	   
	   
	
    }
}

class Pattern{
    public static void createPattern (int height,int width)
    {
	
	boolean starFlag = true;
	int starPos = 1;
	for(int i = 0; i < height; i++){
	    {
		System.out.print("<");
		    if (starPos <= width && starFlag){
			    displayStarLeftToRight(starPos,width);		    
			    starPos++;
			    if (starPos > width){
				starPos -= 2;
				starFlag = false;
			    }
			}
		    else if (starPos <= width && !starFlag) {
			displayStarRightToLeft(starPos, width);
			starPos--;
			 if (starPos < 1){
			     starPos += 2;
			     starFlag = true;
			 }
			
		    }
		System.out.println(">");
		
	    }
	    
	}
    }
    public static void displayStarLeftToRight(int starPos,int width)
    {
	for (int i = 1; i <= width; i++){
	    if ((i == starPos))
		System.out.print("*");
	    else
		System.out.print("_");
	}
    }
    public static void displayStarRightToLeft(int starPos,int width)
    {
	
	for (int i = 1; i <= width; i++){
	    if ((i == starPos))
		System.out.print("*");
	    else
		System.out.print("_");
	}
    }
}

class GetPrimeFactorTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("Bir tamsayı giriniz:");
	int ival;
	while( (ival = Integer.parseInt(kb.nextLine())) > 0 ){
	    System.out.println("Asal Çarpanlar gösteriliyor:");
	    GetPrimeFactor.displayPrimeFactor(ival);
	    System.out.println("Yeni bir tamsayı giriniz:");
	    System.out.println("Çıkmak için 0'a basınız:");
	    
	}
    }
}
class GetPrimeFactor {
   
    
    public static void displayPrimeFactor(int ival)
    {
	int i = 2;
	if (ival < i){
	    System.out.printf("%d sayısının asal çarpanları yok",ival);
	    return;	    
	}
	while (i <= ival){
	    if ((NumberUtil.isPrime(i) && ival % i == 0)){
		System.out.printf("%d ",i);
		ival /= i;
		continue;
	    }
		i++;	
	}
	   
	   
	
    }
}


class DisplayDurationAppTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("Tamsayı türden bir saniye değeri giriniz:");
	long second = Long.parseLong(kb.nextLine());
	for(;;){
	    int n = 1000000000;
	    while (n-- > 0)
		;
	    DisplayDurationApp.displayDuration(second--);
	    System.out.printf("%n");
	    if(second == 0)
		break;
	}
    }
}

class DisplayDurationApp {
    public static void displayDuration(long second)
    {

	if (second / 3600 > 0)
	    System.out.printf("%d hour ",second / 3600);
	if ((second % 3600) / 60 > 0)
	    System.out.printf("%d minute ", (second % 3600) / 60);
	if (second % 60 > 0)
	    System.out.printf("%d second ", second %= 60);
    }
    
}

class DiamondShapeAppTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("Baklava çizimi için bir tamsayı giriniz:");
	int ival = Integer.parseInt(kb.nextLine());
	System.out.println("İşte Nefis Baklava:");
	DiamondShapeApp.CreateDiamondShape(ival);
    }
}

class DiamondShapeApp {
    public static void CreateDiamondShape(int n)
    {
	int maxStarNumber = 2*n - 1;
	for (int i = 0, j = 1; i < n; i++, j += 2){  
		displayStar(j, maxStarNumber);
		if (j == maxStarNumber){
		    j -=2;
		    for (int k = 1; k < n; k++,j -= 2){  
			displayStar(j, maxStarNumber);
		    }
		}
	}
    }
    
    public static void displayStar(int currentStarNumber,int maxStarNumber)
    {	
	int spaceNumber = maxStarNumber - currentStarNumber;
	for (int i = 0;i < maxStarNumber; i++){
	    if (i == spaceNumber / 2){
		while(currentStarNumber-- > 0){
		    System.out.printf("*");
		    i++;
		}
	    }
	    System.out.printf(" "); 
	}
	System.out.printf("%n");
    }
	
}


class SigNumTest {
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("Bir tamsayı sayı giriniz:");
	int ival = Integer.parseInt(kb.nextLine());
	
	Homework1.displaySigNum(ival);

    }
}

class CmpTreeNumTest{
    public static void  run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("Üç tamsayı sayı giriniz:");
	int ival1 = Integer.parseInt(kb.nextLine());

	int ival2 = Integer.parseInt(kb.nextLine());

	int ival3 = Integer.parseInt(kb.nextLine());
	
	Homework1.cmpTreeNum(ival1, ival2, ival3);
	
    }
}

class GetMidTest {
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.println("Üç tamsayı sayı giriniz:");
	int ival1 = Integer.parseInt(kb.nextLine());

	int ival2 = Integer.parseInt(kb.nextLine());

	int ival3 = Integer.parseInt(kb.nextLine());
	
	System.out.printf("mid sayısı %d%n",Homework1.getMid(ival1, ival2, ival3));
    }
}

class Homework1 {
    public static void displaySigNum(int val)
    {	
	System.out.printf("signum: %d%n",sigNum(val));
    }
    
    public static void displayComparedNum(int min,int mid,int max)
    {
	
	char sigMinMid = '=';
	char sigMidMax = '=';
	if (min != mid)
	    sigMinMid = '<';
	if(mid != max)
	    sigMidMax = '<';
	System.out.printf("[%d] %c [%d] %c [%d]%n",min,sigMinMid,mid,sigMidMax,max);
	
    }
    
    public static void cmpTreeNum(int ival1,int ival2,int ival3)
    {
	int min = Math.min(Math.min(ival1, ival2),ival3);
	int max = Math.max(Math.max(ival1,ival2),ival3);
	int mid = getMid(ival1,ival2,ival3);
	displayComparedNum(min,mid,max);
    }
    
    public static int getMid(int ival1,int ival2,int ival3)
    {
	int mid = -1;
	if (ival1 <= ival2 && ival2 <= ival3 || ival3 <= ival2 && ival2 <= ival1)
	    mid = ival2;
	else if (ival2 <= ival1 && ival1 <= ival3 || ival3 <= ival1 && ival1 <= ival2)
	    mid = ival1;
	else if (ival1 <= ival3 && ival3 <= ival2 || ival2 <= ival3 && ival3 <= ival1)
	     mid = ival3;
	    
	return mid;
    }
    
    public static int sigNum(int ival)
    {
	if(ival != 0)
	if (ival > 0)
	    ival /=ival;
	else 
	    ival /=-ival;
	
	return ival;
    }
}





class IsEvenTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	int ival;
	while ((ival =  Integer.parseInt(kb.nextLine())) !=0 ) {
	if (NumberUtil.isEven(ival))
	    System.out.printf("evet çift%n");
	else
	    System.out.printf("hayir çift değil%n");
	}
	System.out.printf("%d sayisi çift bir sayidir",ival);
    }
}

class IsOddTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	int ival;
	while ((ival =  Integer.parseInt(kb.nextLine())) !=0 ) {
	if (NumberUtil.isOdd(ival))
	    System.out.printf("evet tek%n");
	else
	    System.out.printf("hayir tek değil%n");
	}
	System.out.printf("%d sayisi tek bir sayi değildir",ival);
    }
}

class IsPrimeTest{
    public static void run()
    {
    java.util.Scanner kb = new java.util.Scanner(System.in);
    
    System.out.printf("Pozitif bir sayi giriniz:");
    
    int ival = Integer.parseInt(kb.nextLine()); 
    
    System.out.printf("%d sayisina kadar asal sayılar:%n",ival);
    int j = 0;
    for(int i = 0; i < ival; i++){
	if(NumberUtil.isPrime(i))
	    System.out.printf("%d. asal sayi = %d%n",++j,i);
    }
    if(j == 0)
	System.out.printf("Asal sayi bulunamadı");
    }
    
}

class FactorialTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	int ival = Integer.parseInt(kb.nextLine());
	for(int i = 0; i <= ival; i++){
	    System.out.printf("%d! = %d%n",i,NumberUtil.factorial(i));
	}
	
    }
}

class IsArmStrongTest{
    public static void run(){
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("Bir tam sayi giriniz:");
	int ival = Integer.parseInt(kb.nextLine());
	System.out.printf("%d sayısına kadar olan Armstrong sayilari:%n",ival);
	int j = 0;
	for(int i = 0; i < ival; i++){
	    if(NumberUtil.isArmStrong(i))
		System.out.printf("%d.Armstrong sayisi %d %n",++j,i);
	}
	if(j == 0)
	    System.out.printf("Armstrong sayısı bulunamadı...");
    }
}

class GetDigitsCountTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("Bir tam sayi giriniz:");
	int ival;
	while ((ival = Integer.parseInt(kb.nextLine())) != 0){
	    
	    System.out.printf("%d sayisinin basamak sayisi %d %n",ival,
	    NumberUtil.getDigitsCount(ival));
	}
	System.out.printf("%d sayısının basamak sayısı %d",ival,ival,
		    NumberUtil.getDigitsCount(ival));
	
	
    }
}

class GetDigitsSumTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("Bir tam sayi giriniz:");
	int ival;
	while((ival = Integer.parseInt(kb.nextLine())) != 0){
	    
	    System.out.printf("%d sayısının basamakları toplamı = %d%n",ival,
		    NumberUtil.getDigitsSum(ival));
	    
	}
	    System.out.printf("%d sayısının basamakları toplamı = %d%n",ival,
		    NumberUtil.getDigitsSum(ival));
	
    }
}

class GetReverseTest{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("Bir tam sayı giriniz:");
	int ival;
	while ((ival = Integer.parseInt(kb.nextLine())) != 0){
	    System.out.printf("Girilen sayinin tersi = %d%n",NumberUtil.getReverse(ival));
	}
	
	
    }
}


class FindPosNegSumApp{
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("Bir tamsayı giriniz:");
	int ival, posSum = 0,negSum = 0;
	while((ival = Integer.parseInt(kb.nextLine())) != 0){
	    if (ival < 0)
		negSum += ival;
	    else
		posSum += ival;
	}
	
	displayResult(posSum,negSum);
	
    }
    
    public static void displayResult(int posSum,int negSum){
	if(posSum > 0)
	System.out.printf("pozitif sayılar top: %d%n",posSum);
	else
	    System.out.printf("Hiç bir pozitif sayı girmediniz.");
	if(negSum < 0)
	System.out.printf("negatif sayılar top: %d%n",negSum);
	else
	    System.out.printf("Hiç bir negatif sayı girmediniz.");
    }
}

class EquationSolverApp {
    public static void run()
    {
	java.util.Scanner kb = new java.util.Scanner(System.in);
	System.out.printf("a:");
	double a = Double.parseDouble(kb.nextLine());
	System.out.printf("b:");
	double b = Double.parseDouble(kb.nextLine());
	System.out.printf("c:");
	double c = Double.parseDouble(kb.nextLine());
	findRoots(a,b,c);
	
    }
    
    public static void findRoots(double a,double b,double c)
    {
	double delta = b*b - 4*a*c;
	if (delta >= 0){
	    double x1 = (-b + Math.sqrt(delta)) / 2*a;
	    double x2 = (-b - Math.sqrt(delta)) / 2*a;
	    System.out.printf("x1 = %f ve x2 =%f :",x1,x2);
	}
	else {
	    
	    System.out.printf("Sistemin gerçek kökleri yoktur.");
	    }
	
    }
    
}

class GetFibonacciNumberTest {
	public static void run()
	{		
		java.util.Scanner kb = new java.util.Scanner(System.in);
		
		for (;;) {
			System.out.printf("Kaçıncı Fibonaççi sayısı?");
			int n = Integer.parseInt(kb.nextLine());
			
			if (n <= 0)
			    return;
			
			int val = NumberUtil.getFibonacciNumber(n);
			
			System.out.printf("%d. fibonacci sayısı:%d%n", n, val);
		}
	}
}

class GetNextFibonacciNextTest {
	public static void run()
	{		
		java.util.Scanner kb = new java.util.Scanner(System.in);
		
		for (;;) {
			System.out.printf("Bir sayı giriniz?");
			int n = Integer.parseInt(kb.nextLine());
			
			if (n <= -999)
				return;
			
			int val = NumberUtil.getNextFibonacciNumber(n);
			
			System.out.printf("%d. sayısından sonraki ilk fibonacci sayısı:%d%n", n, val);
		}
	}
}

class GetPrimeTest {
	public static void run()
	{		
		java.util.Scanner kb = new java.util.Scanner(System.in);
		
		for (;;) {
			System.out.printf("Kaçıncı asal sayıyı istiyorsun?");
			int n = Integer.parseInt(kb.nextLine());
			
			if (n <= 0)
				return;
			
			int val = NumberUtil.getPrime(n);
			
			System.out.printf("%d. asal sayı:%d%n", n, val);
		}
	}
}

class NumberUtil {
    
    public static int getPrime(int n)
	{
		if (n <= 0)
			return -1;
		
		int count = 0;
		int val = 2;
		
		for (int i = 2; count < n; ++i)
			if (isPrime(i)) {
				++count;
				val = i;
			}		
		
		return val;
	}
	
    
    public static int getFibonacciNumber(int n)
	{
		if (n <= 0)
			return -1;
		
		if (n <= 2)
			return n - 1;
		
		int prev1 = 1, prev2 = 0, val = 0;
		
		for (int i = 2; i < n; ++i) {
			val = prev1 + prev2;
			prev2 = prev1;
			prev1 = val;
		}
		
		return val;		
	}
    
    public static int getNextFibonacciNumber(int val)
	{
		if (val < 0)
			return 0;
		
		int prev1 = 1, prev2 = 0, result;
		
		for (;;) {
			result = prev1 + prev2;
			
			if (result > val)
				return result;
			
			prev2 = prev1;
			prev1 = result;
		}
	}
    
    	
    
    	public static boolean isEven(int ival)
    	{
    	    return ival % 2 == 0;
    	}
    	
    	public static boolean isOdd (int ival)
    	{
    	    return !isEven(ival);
    	}
    
    	public static  boolean isPrimeSlow(int ival)
    	{
    	    	if(ival <= 1)
    	    	    return false;
    	    	int halfVal = ival/2;
    	    	for(int i = 2; i <= halfVal; i++){
    	    	    if (ival % i == 0)
    	    		return false;
  	    	
    	    	}
    	    	return true;
    	}
    	
    	public static boolean isPrime(int ival)
    	{
    	    if(ival <= 1)
    		return false;
    	    if (ival % 2 == 0)
    		return ival == 2;
    	    if (ival % 3 == 0)
    		return ival == 3;
    	    if(ival % 5 == 0)
    		return ival == 5;
    	    if (ival % 7 == 0)
    		return ival == 7;
    	    
    	    for(int i = 11; i*i < ival; i+=2)
    		return !(ival % i == 0);
    	
    	    return true;
    	}
    	
    	
    	public static int factorial(int ival)
    	{
    	    if(ival < 0)
    		return -1;
    	    int result = 1;
    	    
    	    for(int i = 2; i <= ival; i++){
    		result *= i;
    	    }
    	    return result;
    	    
    	    
    	}
    	
    	public static boolean isArmStrong(int ival)
    	{
    	    if(ival < 0)
    		return false;
    	    
    	    return getDigitsPowSum(ival)==ival;
    	    
    	    
    	}
    	public static int getDigitsPowSum(int ival)
    	{
    	    int n = getDigitsCount(ival);
    	    int sum = 0;
    	    while(ival != 0){
    		sum += getPow(ival % 10,n);
    		ival /= 10;
    	    }
    	    return sum;
    	}
    	
    	public static int getDigitsCount(int ival)
    	{
    	    if(ival == 0)
    		return 1;
    	    int count = 0;
    	    while(ival != 0){
    		count ++;
    		ival /= 10;
    	    }
    	    return count;
    	}
    	
    	public static int getDigitsSum(int ival)
    	{
    	    int sum = 0;
    	    while(ival != 0){
    		sum += ival % 10;
    		ival /= 10;
    	    }
    	    return sum;
    	}
    	
    	public static int getPow(int base,int exp)
    	{
    	    if(exp <= 0)
    		return 1;
    	    int result = 1;
    	    for(int i = 0; i < exp; i++){
    		result*=base;
    	    }
    	    return result;
    	}
    	
    	public static int getReverse(int ival)
    	{
    	    int reverse = 0;
    	    
    	    while(ival != 0){
    		
    		reverse = reverse*10 + ival % 10;
    		ival /= 10;
    	    }
    	    return reverse;
    	    
    	    
    	}
    	
}