Java Girilen Sayı Tek mi Çift mi ve Ortalaması

Merhaba dostlar.

Geçenlerde bir üniversite öğrencisi bana e-mail atmış, yardımımı rica etmiş. Bende hazır Java programlama diline yeni başladım, yardımcı olmak istedim. İstediği şey oldukça basitti.

Benden istediği şeyi senaryo olarak anlatayım, sizler tarafından daha kolay anlaşılır.
Senaryo: Kullanıcı kaç tane sayının tek veya çift olarak hesaplanacağının bilgisini giriyor (Örneğin 5 tane sayıyı hesaplamak istiyor). Kullanıcı, bu işleminden sonra ekrana 5 tane sayı giriyor (Örneğin 1-3-4-6-7 girmiş olsun). Girilen sayıların, toplamda kaç tanesinin tek veya çift sayı olduğunun ve bunların tek ve çift sayı ortalamasını hesaplayan bir program olsun.

Peki, bu senaryoya göre sonuç kaç çıkmalıdır?
 
Tek sayıların toplamı : 11 (1+3+7)
Çift sayıları toplamı : 10 (4+6)
Tek sayıların ortalaması : 3,66 (11 / 3)
Çift sayıların ortalaması : 5 (10 / 2) sonucu çıkmalıdır.

Senaryoyu kafamızda canlandırdığımıza göre, gelelim bu işin programlamadaki mantık kısmına.
Matematiksel olarak düşünürsek, matematikte bir sayı çift ise her zaman “2” sayısına tam bölünür ve kalan doğal olarak sıfır olur (Örneğin, 10 / “2” = 5 kalan 0). Tek sayılarda ise her zaman kalan sıfırdan farklı olur. Bir sayının kalanına da MOD denir. Biz de MOD yöntemini kullanacağız.

Aşağıdaki kodların yorum satırlarında açıklamaları göreceksiniz.

package javaapplication3;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaApplication3 {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader( System.in );
BufferedReader stdin = new BufferedReader(isr);
System.out.print("Kaç sayı gireceksiniz: ");
//Aşağıdaki kodda kullanıcının kaç sayı gireceğini tespit ediyoruz
int dongu_sayisi = Integer.parseInt(stdin.readLine());
int tek_sayi_toplami = 0;
int girilen_tek_sayisi = 0;
int cift_sayi_toplami = 0;
int girilen_cift_sayisi = 0;
//Kaç tane sayı girecekse, o kadar defa döngü dönmesi gerekir.
//Örneğin 5 girildiyse, 5 defa kullanıcıdan sayı girmesini istemeliyiz.

for(int i=1; i<=dongu_sayisi; i++)
{
int sayi;
System.out.print(Integer.toString(i) + ". sayıyı giriniz: ");
String deger = stdin.readLine();
sayi = Integer.parseInt(deger);
//Girilen sayının tek mi çift mi olduğuna bakıyoruz.
//Sayı çift ise, 2’te tam bölünür ve kalanı olmaz. Kalanını “%” ifadesiyle buluyoruz.

if( sayi %2 == 0 )
{
cift_sayi_toplami += sayi;
girilen_cift_sayisi = girilen_cift_sayisi + 1;
}
else
{
tek_sayi_toplami += sayi;
girilen_tek_sayisi = girilen_tek_sayisi + 1;
}
}
if(girilen_tek_sayisi != 0)
System.out.println("Girilen Tek sayiların ortalaması: " + (tek_sayi_toplami / girilen_tek_sayisi));
else
System.out.println("Hiç tek sayı girilmedi!");
if(girilen_cift_sayisi !=0)
System.out.println("Girilen Çift sayıların ortalaması: "+ (cift_sayi_toplami / girilen_cift_sayisi));
else
System.out.println("Hiç çift sayı girilmedi!");
}
}

 


Başka bir makalede görüşmek üzere, sağlıcakla kalın.

Enis Kurtay YILMAZ