Çözüldü Java’da Girilen Sayıların Ortalamasını Alan Program

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
13 Ağustos 2019
Mesajlar
9.017
Makaleler
18
Çözümler
44
Daha fazla  
Cinsiyet
Erkek
Merhaba. Şöyle bir kod yazdım:

Java:
package lern.Exercises;

import java.util.Scanner;

public class Aa {
    public static void main(String[] args) {
        // GIRILEN UC SAYININ ORTALAMASINI ALAN PROGRAM
        Scanner tarama = new Scanner(System.in) ;
        System.out.println("Lutfen ilk sayinizi giriniz.");
        double sayi1 = tarama.nextDouble();
        System.out.println("Lutfen ikinci sayinizi giriniz.");
        double sayi2 = tarama.nextDouble();
        System.out.println("Lutfen ucuncu sayinizi giriniz.");
        double sayi3 = tarama.nextDouble();

        System.out.println("Sirasiyla girdiginiz sayilar: "+ sayi1 + ", " + sayi2 + ", "+ sayi3) ;
        double ortalama = (sayi1 + sayi2 + sayi3)/3 ;
        System.out.println("Girdiginiz sayilarin ortalamasi: " + ortalama) ;


    }
}
Sormak istediğim şey de şu:
İlk başta kaç sayının aritmetik ortalamasını hesaplamak istediğini kullanıcıya sorup o şekilde kullanıcıdan bir veri alma yoluna gitmek istiyorum. Bunu nasıl yapabilirim?
Cevaplarınız için şimdiden teşekkür ediyorum.
 
Çözüm
Liste'ler ve döngüler kullanılabilir.

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main
{

    public static void main(String[] args)
    {
        ArrayList<Double> numbers = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        System.out.print("Kaç tane sayının ortalamasını hesaplamak istiyorsunuz: ");
        int limit = scanner.nextInt();
        for (int i = 0; i < limit; i++)
        {
            System.out.printf("%d. sayıyı girin->", i + 1);
            numbers.add(scanner.nextDouble());
        }
        System.out.println("Sirasiyla girdiginiz sayilar: " + Arrays.toString(numbers.toArray()));
        double mean = 0;
        for(double num : numbers)
        {
            mean += num;
        }
        System.out.println("Girdiginiz sayilarin ortalamasi: " + mean/numbers.size());
    }
}
Liste'ler ve döngüler kullanılabilir.

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main
{

    public static void main(String[] args)
    {
        ArrayList<Double> numbers = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        System.out.print("Kaç tane sayının ortalamasını hesaplamak istiyorsunuz: ");
        int limit = scanner.nextInt();
        for (int i = 0; i < limit; i++)
        {
            System.out.printf("%d. sayıyı girin->", i + 1);
            numbers.add(scanner.nextDouble());
        }
        System.out.println("Sirasiyla girdiginiz sayilar: " + Arrays.toString(numbers.toArray()));
        double mean = 0;
        for(double num : numbers)
        {
            mean += num;
        }
        System.out.println("Girdiginiz sayilarin ortalamasi: " + mean/numbers.size());
    }
}
 
Çözüm
Java dili bilmiyorum fakat C# dilinde nasıl yapılacağını biliyorum ve mantığını anlatabilirsem seninde yapabileceğini düşünüyorum.
C#'da yapılmış hali burada: Ubuntu Pastebin

Mantığını anlatıcak olursam; Kaç tane sayı girileceğinin değerini ilk başta alıcaksın, For döngüsü ile o sayı değeri kadar ekrana veri girilmesi gerektiğini bildiriceksin, verileri Dizi içine almayı tercih ettim ben daha sonrası senin bildiğin gibi...
 
Liste'ler ve döngüler kullanılabilir.
Array'leri henüz öğrenmedim, öğrendikten sonra buraya kendi yazdığım kodu da koyarım, fikir edinmek amaçlı açmıştım konumu, teşekkür ederim.
Mantığını anlatıcak olursam; Kaç tane sayı girileceğinin değerini ilk başta alıcaksın, For döngüsü ile o sayı değeri kadar ekrana veri girilmesi gerektiğini bildiriceksin, verileri Dizi içine almayı tercih ettim ben daha sonrası senin bildiğin gibi...
Size de teşekkür ederim.
 
Dinamik ve Statik boyutlu dizilere geldiğiniz daha fazla anlamlı olacak ama;
ArrayList dinamik boyutlu olduğu için; örneğin kullanıcı 0 girene kadar tüm sayıların ortalaması, toplamı, medyanı, standart sapması vs sabit bir sayı belirtilmeden hesaplanabilir.

Ayrıca; next() methodlarını try-catch içerisinde kullanmak çok daha mantıklı olacaktır. Olası bir format hatası veya geçersiz değer girişinde RunTimeException alabilirsiniz.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı