Java Eğitimi 36-Algoritma Örnekleri

Herkese merhabalar,

Bu yazıda önceki konu anlatımlarına yönelik birkaç örnek sorular çözmek istedim. Ama bu sorular algoritma mantığınızı geliştirecek nitelikteler. Cevaplarını görmeden önce soruları kendiniz düşünüp yapmaya çalışırsanız size yararı daha fazla olacaktır. O halde başlayalım.

  1. Palindrom Sayı Bulma

Palindrom sayı ne demektir? Önce bu soruyla başlayalım. İki taraftan okunduğu zaman okunuş yönü ile aynı olan sayılar palindrom veya palindromik sayı olarak tanımlanırlar. Yani simetrik sayılardır. Soldan sağa yazılışı, sağdan sola yazılışına eşit sayılardır. Örneğin 123321 sayısını ele alalım. Tersten yazdığımızda da 123321 sayısını elde ederiz değil mi? Ya da 101 sayısı da aynı şekilde palindromdur. Basit olarak düşünürsek tek basamaklı sayılar da bu kuralın içine girer. Peki şimdi bu sayıları bulan kodları yazmaya ne dersiniz?

Yapmamız gereken ilk şey nelere ihtiyacımız olduğunu bulmaktır. Karşı taraftan bir sayı girmesini isteyeceğiz ve onun istediğimiz sayı olup olmadığını kontrol edeceğiz. Bu kısım bildiğimiz Scanner sınıfı işlemleridir.

import java.util.Scanner;
public class palindrom_sayı_bulma {
   public static void main(String args[]) {
      Scanner klavye = new Scanner(System.in);
      System.out.print("Bir sayı giriniz: ");
      int palindrom = klavye.nextInt();
   }
}

Yukarıdaki kodlarımızla klavyeden bir sayı girilmesini sağladık. Sırada palindrom sayının ilk değerini kendisine eşitlemek ve uzunluğunu bulmak var. 

int ilkdeger = palindrom; 
int length = String.valueOf(palindrom).length();

Çift ya da tek sayı bulmayı nasıl yapıyorduk hatırlıyor musunuz? 2 ile bölümünden kalana bakıyorduk. İşte burada da sayının 10 ile bölümünden kalanı kontrol etmemiz gerekecek. Çünkü 10 ile bölümünden kalan bizim son basamağımıza dair bilgiler verebilir. 

int kalan,deger=0;
for (int i = 0; i<length; i++){

kalan = palindrom % 10;
deger = deger * 10 + kalan;
palindrom = palindrom /10;
}

Son olarak bu ifadelerin if-else koşul yapısı ile durumu sağlayıp sağlamadığını kontrol edelim ve kodumuzu tamamlayalım.

if(deger == ilkdeger) {
System.out.println(deger + " palindrom sayıdır.");
}
else {
System.out.println(deger + " palindrom sayı değildir.");
}

Kodların bütünü aşağıdaki gibidir:

Şimdi kodumuzun doğru çalışıp çalışmadığını inceleyelim.

2. Dereceyi Fahrenheit’e Dönüştürme

Bu algoritmada önce dönüştürme formülünü hatırlamamız gerekir. Formül; 

olarak karşımıza çıkar. Kuracağımız algoritmanın da bu formüllere uygun olması gerekir. Onun dışında diğer işlemler bildiğimiz şekilde kullanıcıdan veri alma olduğu için çok fazla bir zorluğu yok. 

import java.util.Scanner;

public class donusturme {
public static void main(String[] args) {

double celcius,fahrenheit;
Scanner oku=new Scanner(System.in);

System.out.print("Derece cinsinden sıcaklık değerini giriniz: ");
celcius = oku.nextInt();
fahrenheit = celcius * 1.8 + 32;
System.out.println("Sıcaklık değeri " +fahrenheit + " fahrenheittir.");
}
}

Ve sistemin çıktısı da şu şekildedir:  

3. 0 Sayısı Girilene Kadar Sayıların Toplamını Veren Program

Diyelim ki kullanıcının girdiği sayıların toplamını ekran çıktısında vereceksiniz. Ama bu işlemi 0 sayısının girişi yapıldığında görmek istiyorsunuz. O zaman bu kodlar tam size göre. Peki nasıl yaparız?

import java.util.Scanner;
public class sayı {
public static void main(String[] args) {
int toplam=0;
int sayı;

Yukarıdaki kodlarla toplamın ilk değerini 0’a eşitledik ve sayı adı ile integer bir değişken tanımladık. Şimdi bir döngü ile kullanıcıdan birden fazla giriş almamız gerekmekte. Bu döngüyü while ile yaparsak;

while(true)
{
Scanner scan = new Scanner(System.in);
System.out.print("Lütfen bir sayı giriniz: ");
sayı = scan.nextInt();

Bu işlemi de tamamlamış olduk. Peki 0 sayısının girişini nasıl tanımlamamız gerekir? “Eğer sayı 0 olarak girilirse döngüden çıksın ve sayıların toplamını yazdırsın” istiyoruz. Buna göre if ile bir yapı kurmamız gerektiğini fark ettiniz değil mi? 

if(sayı==0){
System.out.println("0 sayısını girdiniz. Girilen sayıların toplamı hesaplanıyor...");
break;
}

Son olarak sayıların toplamı da 

toplam=toplam + sayı;

ile yapılarak kod ekrana yazdırılır. 

import java.util.Scanner;
public class sayı {
public static void main(String[] args) {
int toplam=0;
int sayı;

while(true)
{
Scanner scan = new Scanner(System.in);
System.out.print("Lütfen bir sayı giriniz: ");
sayı = scan.nextInt();

if(sayı==0){
System.out.println("0 sayısını girdiniz. Girilen sayıların toplamı hesaplanıyor...");
break;
}

toplam=toplam + sayı;
}
System.out.println("Sayıların Toplamı: " + toplam);
}
}

Bir sonraki yazımda daha farklı algoritmalar ile karşınızda olacağım. Tekrar görüşmek üzere. Hoşça kalın. 

“Java Eğitimi 36-Algoritma Örnekleri” için 2 cevap

  1. palindorm sayi string ile de yapilabilir

    Liked by 1 kişi

    1. Evet metinsel ifadeleri de bu şekilde kullanabiliriz string ile yazdığımız kodlar da polindrom kelimeleri ya da karakterleri bulan bir program olarak karşımıza çıkar.

      Beğen

Yorum bırakın