Skip to main content

Java Programlama : İki Basamaklı bir Sayının Rakamlarını Bulma

Bugünkü uygulamızda da basit bir öğretici oyun yapacağız.  Program  iki basamaklı bir sayı üretecek  ve kullanıcıya bu iki basamaklı sayının rakamları toplamının kac olduğunu soracak . Ve program sonlandığında tahmin edilen toplam ile   olması gereken toplam karşılaştırılacak ve sonucun doğru olup olmadığı ekrana mesaj edilecek.

Programı yazmaya başlamadan önce bilmemiz gereken bir iki nokta var.  Java ‘da  rastgele sayılar üretebilmek için  birden çok yöntem var  biz bu programda Math kütüphanesinin Random isimli methodunu kullanacağız. Math.Random() metodu    0 ile 1 arasında rasgele  değerler üretir. Dikkat edilmesi gereken nokta bu  üretilen değerin bir tam sayı değil   virgüllü bir sayı olduğudur. Bu nedenle üretilen değeri tam sayı tipine cevirmemiz gerekmektedir.   Bu işi en kolay biçimde type casting (tip dönüşümü) ile yapabiliriz. Tip dönüşümüne örnek vermek gerekirse :

double pi = 3 . 15;

int yeni_pi = (int) pi ;   dediğimiz de  yeni_pi isimli değişken artık bünyesinde bir  virgüllü sayı değil tam sayı tutar ve tuttuğu değer belirtilen örnekte 3 ‘ tür.

Bilinmesi gereken diğer nokta ise rasgele üretilen 2 basamaklı sayının rakamlarını bulmak için nasıl bir algoritma kullanacağımızdır.
İki basamaklı bir sayının birler basamağını bulmak için Java operatörlerinden % ‘yi kullanırız. üretilenSayi %10 diyerek sayının birler basamağını bulabiliriz. Bir örnek ile açıklamak gerekirse üretilen sayımız 52 olsun. 52 % 10 –> bize 2 sonucunu verecektir. Çünkü sayının ona bolumunden kalan 2 dir.
İki basamaklı sayının onlar basamağını bulmak içinse sayıyı 10 ‘a bölmek yeterlidir.
Program ile ilgili gerekli açıklamalar  kod satırları içersinde yorum olarak belirtilmiştir. Dikkatli bir biçimde inceleyerek programı anlayabiliriz.

 

 

 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package learningaddition;
 
import java.util.Scanner;
 
 
 
/**
 *
 * @author AYTAC CİCİ
 * 20 Agustos 2012 
 * Bu program iki basamaklı rasgele bir sayı üretir ve kullanıcıya bu sayının
 * rakamları toplamını tahmin ettirir. Kullanıcının verdiği sonuca göre TRUE 
 * yada FALSE  durumunu bildirir.
 */
public class LearningAddition {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 
        int uretilenSayi =  (int )(Math.random()*100);
        /* Bu sekilde iki basamaklı ratgele sayı üretmiş olduk.
         * Şimdi Üretilen iki basamaklı sayının rakamlarını bulalım ?**/
        int birlerBasamagi = uretilenSayi % 10 ;
        /* iki basamaklı bir sayının birler basamagini bulmak için
          sayının 10 ile bölümünden kalanı bulmamız gerekir mod operatörü % ile
          bu islemi kolayca yapabiliriz.  Örneğin üretilen sayı 53 olsun
          53 % 10 =  sonucu  3 olacaktır ve birler basamagi bulunmus olacaktır**/
        int onlarBasamagi =  uretilenSayi / 10 ;
     /* İki bamamaklı bir sayının onlar basamagında ki rakamını  bulmak için sayıyı
      10'a bolmemiz gerekir . Örneğin 52 sayısı için 52 /10 işlemini yaptıgımızda
       sonuc = 5 gelecektir. **/
       System.out.println("Üretilen Sayi-->" +
               uretilenSayi);
       /* Rastgele Üretilen İki basamaklı sayıyı ekrana yazdırdık.**/
       System.out.println(birlerBasamagi  + " + " 
               + onlarBasamagi + " işleminin sonucu nedir ? "); 
 
       Scanner girdi = new Scanner(System.in);
       int sonuc = girdi.nextInt();
       System.out.println("Olması Gereken Sonuc " + (birlerBasamagi + onlarBasamagi) +
               "--> Sizin Sonucunuz : " + sonuc  + "   " +
               (sonuc==(birlerBasamagi+onlarBasamagi)));
    }
}

Başka bir örnek uygulamada görüşmek dileğiyle 🙂

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Aytaç Cici

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunu bir Yazılım Geliştirici. Çeşitli zamanlarda Java, PHP, C# ve Delphi gibi diller kullanarak yazılım geliştirmiştir. Bir dönem SEO alanında da çalışmalar yapmıştır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Email
Print