Java’da Sınıflarla Palindromik Sayı Bulmak Java
Palindromik sayımızın ne olduğunu Girilen Sayının Palindromik Olup Olmadığını Bulmak ( C ) yazısında açıklamıştım. Bu yazımızda ise Palindromik sayımızı Java dilinde nasıl bulacağımızı “Sınıf ve Nesne” kullanarak yapacağız.
*
Sınıf ve Nesne konusuna daha sonra değineceğim ama kısca özet geçmek istersek. Programımızın içerisinde ayrı bir programcık yaparak ana programımızda kullanabiliceğimiz kullanılışlı bir yapı. Yaptığımız programcığı başka programlara ekleyerek aynı kodları tekrar yazma derdinden kurtulmuş oluyoruz.
Şimdi programımıza geçecelim. Palindromik sayımızı bulma işlemini ayrı bir Sınıf’ta yani programcıkta yapacağız. Ana programdan sadece kullanıcıdan değer girilmesini isteyip o değeri programcığımıza göndereceğiz.
Bu “programcığımız” ana programımıza tekrar bir değer gönderecek. Ana programımızdan kullanıcı tarafından girilen sayıyı programcığımıza göndereceğiz ve işlemler bu sınıf’ta olduktan sonra son değer ana programımıza gidecek. Şimdi bu sınıf yazalım.
package sinifpalindrom; /** * * @author BurakKutbay.com */ public class Palindrom { public int Palindrom(int x) { int sayi=0,i=0,b=0,c=x; double j=0; while (c>0) { c=c/10; b++; } int[] dizi=new int[b]; while(x>0) { dizi[i]=x%10; x=x/10; i++; } while(i>0) { sayi=(int)(dizi[i-1]*Math.pow(10.0, j))+sayi; j++; i--; } System.out.println("Sayinin Tersi : "+sayi); return sayi; } }
Bu sınıfımızda yapılan iş, ana programımızdan alınan sayının rakam rakam bir diziye atılması ile başlıyor.
Örnek olarak kullanıcı 321 sayısı girdiğini düşünelim.
Dizi[0]=1; Dizi[1]=2; Dizi[2]=3 atanmış olacak.
Böyle yapmamızda ki amaç iste 321 sayısını ters çevirmek yani 123 yaparak ilk girilen sayı ile karşılaştırmak .
Sayımızı dizimize attık. İkinci while döngüsüyle beraber . Pow komutu ile (yani üzeri alma) komutuyla 100+20+3 diye toplattırarak bir sayı elde etmek.
Ve o elde ettiğimiz sayıyı ana programımıza göndererek ilk girilen sayı ile karşılaştırıp Palindromik Sayı mı değil mi öğrenmiş olacağız.
Ana programımızı yazalım.
package sinifpalindrom; import java.util.Scanner; /** * * @author BurakKutbay.com */ public class SinifPalindrom { public static void main(String[] args) { int deger;Scanner oku=new Scanner(System.in); System.out.println("Bir Sayi Giriniz"); int a=oku.nextInt(); Palindrom p=new Palindrom(); deger=p.Palindrom(a); if (a==deger) { System.out.println("Bu Sayı Polindrom"); } else if(a!=deger){ System.out.println("Polindrom değil"); } } }
Ana programımızda bir sayı aldık fonksiyonumuza göndererek işlem yaptırdık ve ardından ise sayının tersini alarak karşılaştırma yaptık.
Sorunuz varsa yorum yaparsanız cevap vermeye çalışırım.
No Comment! Be the first one.