Şimdi Ara

C# 2 Sayının Geometrik Ortalaması Bulumu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
26
Cevap
0
Favori
5.459
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Arkadaşlar C#'ta 2 Sayının Geometrik Ortalamasını Nasıl buldurabilirim kodları nasıl olacak.Yardımlarınız için şimdiden sağolun..



  • Buraya baq :
    Koduda bi zahmet kendin yazarsın heralde.
  • quote:

    Orijinalden alıntı: hasan1980125

    Buraya baq : http://www.matematiktutkusu.com/forum/matematik-formulleri/1611-geometrik-ortalama-formulu-geometrik-ortalama-nedir.html
    Koduda bi zahmet kendin yazarsın heralde.

    İşlemsel olarak biliyorum..Koda dökemedim genede sağol...
  • ilk önce bir sayı dizisi tanımlamalısın;
    Ben ondalıklı sayı yaptım sen kafana göre yaparsın;

    double[] sayilar = new double[10]; //Şimdilik on adet olsun istersen değiştirirsin.

    daha sonra bu sayılara değer vermek lazım ben şöyle bir şey yapacağım;

    for(int i = 0; i < sayilar.Lenght; i++)
    {
    sayilar = i * i + 1;
    }

    Şimdi de ortalama alma;

    double GeometrikOrtalamaAl(double[] dizi)
    {
    double x, carpim;
    carpim = 1;
    for(int i = 0; i < dizi.Lenght; i++)
    {
    carpim *= dizi;
    }
    x = Math.Sqrt(carpim);
    }

    Kullanım şekli;

    double geoOrt = GeometrikOrtalamaAl(sayilar);


    Çalışır kod;

    using System; 
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace geometrikortalama
    {
    class Program
    {
    static void Main(string[] args)
    {

    List<double> girdiler = new List<double>();
    while (true)
    {
    Console.WriteLine("Sayi gir veya işlemi bitirmek için e yaz : ");
    string sayi = Console.ReadLine();
    if (sayi != "e")
    {
    try
    {
    girdiler.Add(Convert.ToDouble(sayi));
    }
    catch
    {

    }
    }
    else
    {
    break;
    }
    }
    double geoOrt = GeometrikOrtalamaAl(girdiler);
    Console.WriteLine("\nGeometrik Ortalama : " + geoOrt.ToString());
    Console.ReadKey();
    }

    static double GeometrikOrtalamaAl(List<double> Dizi)
    {
    double x, carpim;
    carpim = 1;
    foreach (double item in Dizi)
    {
    carpim *= item;
    }
    x = Math.Sqrt(carpim);
    return x;
    }

    }
    }




  • quote:

    Orijinalden alıntı: welrocken

    ilk önce bir sayı dizisi tanımlamalısın;
    Ben ondalıklı sayı yaptım sen kafana göre yaparsın;

    double[] sayilar = new double[10]; //Şimdilik on adet olsun istersen değiştirirsin.

    daha sonra bu sayılara değer vermek lazım ben şöyle bir şey yapacağım;

    for(int i = 0; i < sayilar.Lenght; i++)
    {
    sayilar = i * i + 1;
    }

    Şimdi de ortalama alma;

    double GeometrikOrtalamaAl(double[] dizi)
    {
    double x, carpim;
    carpim = 1;
    for(int i = 0; i < dizi.Lenght; i++)
    {
    carpim *= dizi;
    }
    x = Math.Sqrt(carpim);
    }

    Kullanım şekli;

    double geoOrt = GeometrikOrtalamaAl(sayilar);


    Çalışır kod;

    using System; 
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace geometrikortalama
    {
    class Program
    {
    static void Main(string[] args)
    {

    List<double> girdiler = new List<double>();
    while (true)
    {
    Console.WriteLine("Sayi gir veya işlemi bitirmek için e yaz : ");
    string sayi = Console.ReadLine();
    if (sayi != "e")
    {
    try
    {
    girdiler.Add(Convert.ToDouble(sayi));
    }
    catch
    {

    }
    }
    else
    {
    break;
    }
    }
    double geoOrt = GeometrikOrtalamaAl(girdiler);
    Console.WriteLine("\nGeometrik Ortalama : " + geoOrt.ToString());
    Console.ReadKey();
    }

    static double GeometrikOrtalamaAl(List<double> Dizi)
    {
    double x, carpim;
    carpim = 1;
    foreach (double item in Dizi)
    {
    carpim *= item;
    }
    x = Math.Sqrt(carpim);
    return x;
    }

    }
    }


    Üstad sağolasında ben klavyeden girilen 2 sayının geometrik ortalamasını hesaplatmak istiyorum(Consolda değil) onun kodu lazım



    < Bu mesaj bu kişi tarafından değiştirildi xxxfenerlixxx -- 14 Ekim 2012; 0:28:07 >




  • quote:

    Orijinalden alıntı: xxxfenerlixxx

    Arkadaşlar C#'ta 2 Sayının Geometrik Ortalamasını Nasıl buldurabilirim kodları nasıl olacak.Yardımlarınız için şimdiden sağolun..

    Geometrik ortalama hesaplama mantığım doğruysa ve hocanızda Sqrt fonksiyonu kullanmanıza izin veriyorsa, bu şekilde hesaplanabilir.

       double sayi,sayi2; 
    sayi = Convert.ToInt32(textBox1.Text);
    sayi = Math.Sqrt(sayi);
    sayi2 = Convert.ToInt32(textBox2.Text);
    sayi2 = Math.Sqrt(sayi2);
    label1.Text = Convert.ToString(sayi * sayi2);
  • Onun kodu bunun kodu diye ayrım yaparsan hiçbir şey öğrenemezsin. Form application ise çok daha basit. Koy iki tane textbox, bir button koy, buttona basıldığında benim yazdığım veya sesberk'in yazdığı fonksiyonu çağır. Bu kadar basit. Herşeyi devletten bekleme.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • quote:

    Orijinalden alıntı: welrocken

    Onun kodu bunun kodu diye ayrım yaparsan hiçbir şey öğrenemezsin. Form application ise çok daha basit. Koy iki tane textbox, bir button koy, buttona basıldığında benim yazdığım veya sesberk'in yazdığı fonksiyonu çağır. Bu kadar basit. Herşeyi devletten bekleme.

    Üstad onun kodu bunun kodu diye ayrım yaptığım yok yani consolda sorsaydım konu açmazdım zaten burada..benim istediğim C# windowsform'da olmalıydı...Bende biliyorum 2 textbox 1 buton atmayı o kadarda cahil değilim merak etme...sesberk kardeşim belirtmiş sağolsun...Sende bilip bilmeden atıp tutma...
  • quote:

    Orijinalden alıntı: sesberk

    quote:

    Orijinalden alıntı: xxxfenerlixxx

    Arkadaşlar C#'ta 2 Sayının Geometrik Ortalamasını Nasıl buldurabilirim kodları nasıl olacak.Yardımlarınız için şimdiden sağolun..

    Geometrik ortalama hesaplama mantığım doğruysa ve hocanızda Sqrt fonksiyonu kullanmanıza izin veriyorsa, bu şekilde hesaplanabilir.

       double sayi,sayi2; 
    sayi = Convert.ToInt32(textBox1.Text);
    sayi = Math.Sqrt(sayi);
    sayi2 = Convert.ToInt32(textBox2.Text);
    sayi2 = Math.Sqrt(sayi2);
    label1.Text = Convert.ToString(sayi * sayi2);


    Allah razı olsun kardeşim mantığın doğru peki bunu sqrt kodu olmadan nasıl yapabiliriz yani yapma şansımız var mı?Seni uğraştırıyorum kusura bakma..




  • quote:

    Orijinalden alıntı: xxxfenerlixxx

    quote:

    Orijinalden alıntı: sesberk

    quote:

    Orijinalden alıntı: xxxfenerlixxx

    Arkadaşlar C#'ta 2 Sayının Geometrik Ortalamasını Nasıl buldurabilirim kodları nasıl olacak.Yardımlarınız için şimdiden sağolun..

    Geometrik ortalama hesaplama mantığım doğruysa ve hocanızda Sqrt fonksiyonu kullanmanıza izin veriyorsa, bu şekilde hesaplanabilir.

       double sayi,sayi2; 
    sayi = Convert.ToInt32(textBox1.Text);
    sayi = Math.Sqrt(sayi);
    sayi2 = Convert.ToInt32(textBox2.Text);
    sayi2 = Math.Sqrt(sayi2);
    label1.Text = Convert.ToString(sayi * sayi2);


    Allah razı olsun kardeşim mantığın doğru peki bunu sqrt kodu olmadan nasıl yapabiliriz yani yapma şansımız var mı?Seni uğraştırıyorum kusura bakma..

    Karekök algoritmasının yapılması çok zordur. Ben bir ara aramıştım nette; ama bulamadım. İşin içerisine integral falan girer sanırım. Geometrik ortalama sadece iki sayı ise yapılır; ama geometrik ortalama hesaplanacak sayısı belli değilse, zor. Yani sayıların adeti biliniyorsa durum kolay.




  • Ya şimdi iki adet sayı ise, ya da sayı belli ise Math.Pow fonksiyonunu kullanmadan da yapalım diyeceğim üst alma işlemini; ama bir döngü nasıl dönecek ki 0,5 kere?
  • quote:

    Orijinalden alıntı: Gereqsiz

    Ya şimdi iki adet sayı ise, ya da sayı belli ise Math.Pow fonksiyonunu kullanmadan da yapalım diyeceğim üst alma işlemini; ama bir döngü nasıl dönecek ki 0,5 kere?




    Öyle olmaz zaten, girilen sayı n olsun. ve n'nin asal çarpanları -> 2, 3, 5 olsun. 2'nin 3'ün ve 5'in logaritması gerekir bulmak için. Veya dediğin gibi integralle yaklaşık değerini hesaplarsın. Sonuçta yapılabilir birşey ama hoca kabul eder bence Sqrt kullanmasını temel bir sınıf ve temel bir fonksiyon sonuçta.
  • Yani şunu anlatmak istiyorum:

    √¯4 demek 4^(1/2) demek ya... Bunu Math.Pow ile hemen yapabilirsin. Ama muhtemelen hocanız Sqrt'yi kabul etmdiği gibi, Pow'u da kabul etmeyecektir. O yüzden de üst alma işlemini Pow fonksiyonu olmadan yapan bir program lazım. Bunu yapmak basit.

    double s1, s2, gort = 1;

    Console.Write("1. Sayıy giriniz = ");
    s1 = double.Parse(Console.ReadLine());

    Console.Write("2. Sayıy giriniz = ");
    s2 = int.Parse(Console.ReadLine());

    for (int i = 1; i <= s2; i++)
    gort = gort * s1;

    //gort = Math.Sqrt((s1 * s2));

    Console.Write(gort);

    Console.ReadLine();

    Ama işte önemli olan döngüyü 0,5 kere döndürmek.




  • quote:

    Orijinalden alıntı: Gereqsiz

    Yani şunu anlatmak istiyorum:

    √¯4 demek 4^(1/2) demek ya... Bunu Math.Pow ile hemen yapabilirsin. Ama muhtemelen hocanız Sqrt'yi kabul etmdiği gibi, Pow'u da kabul etmeyecektir. O yüzden de üst alma işlemini Pow fonksiyonu olmadan yapan bir program lazım. Bunu yapmak basit.

    double s1, s2, gort = 1;

    Console.Write("1. Sayıy giriniz = ");
    s1 = double.Parse(Console.ReadLine());

    Console.Write("2. Sayıy giriniz = ");
    s2 = int.Parse(Console.ReadLine());

    for (int i = 1; i <= s2; i++)
    gort = gort * s1;

    //gort = Math.Sqrt((s1 * s2));

    Console.Write(gort);

    Console.ReadLine();

    Ama işte önemli olan döngüyü 0,5 kere döndürmek.

    Döngüyü yarım kere döndürmekte birşey yok. int i değil, double i yap, i++ değil i+= 0.5 yap.
    Sorun orda değil, çarpme işleminde. gort = gort * s1; dediğin zaman bunun döngüyle bir ilgisi kalmıyor, anlatabildim mi?




  • quote:

    Orijinalden alıntı: welrocken

    quote:

    Orijinalden alıntı: Gereqsiz

    Yani şunu anlatmak istiyorum:

    √¯4 demek 4^(1/2) demek ya... Bunu Math.Pow ile hemen yapabilirsin. Ama muhtemelen hocanız Sqrt'yi kabul etmdiği gibi, Pow'u da kabul etmeyecektir. O yüzden de üst alma işlemini Pow fonksiyonu olmadan yapan bir program lazım. Bunu yapmak basit.

    double s1, s2, gort = 1;

    Console.Write("1. Sayıy giriniz = ");
    s1 = double.Parse(Console.ReadLine());

    Console.Write("2. Sayıy giriniz = ");
    s2 = int.Parse(Console.ReadLine());

    for (int i = 1; i <= s2; i++)
    gort = gort * s1;

    //gort = Math.Sqrt((s1 * s2));

    Console.Write(gort);

    Console.ReadLine();

    Ama işte önemli olan döngüyü 0,5 kere döndürmek.

    Döngüyü yarım kere döndürmekte birşey yok. int i değil, double i yap, i++ değil i+= 0.5 yap.
    Sorun orda değil, çarpme işleminde. gort = gort * s1; dediğin zaman bunun döngüyle bir ilgisi kalmıyor, anlatabildim mi?

    Double ile olsa keşke... Olmuyor işte öyle zaten. Olay 0.5 olunca döngü ile alakası kalmıyor.




  • quote:

    Orijinalden alıntı: Gereqsiz

    quote:

    Orijinalden alıntı: welrocken

    quote:

    Orijinalden alıntı: Gereqsiz

    Yani şunu anlatmak istiyorum:

    √¯4 demek 4^(1/2) demek ya... Bunu Math.Pow ile hemen yapabilirsin. Ama muhtemelen hocanız Sqrt'yi kabul etmdiği gibi, Pow'u da kabul etmeyecektir. O yüzden de üst alma işlemini Pow fonksiyonu olmadan yapan bir program lazım. Bunu yapmak basit.

    double s1, s2, gort = 1;

    Console.Write("1. Sayıy giriniz = ");
    s1 = double.Parse(Console.ReadLine());

    Console.Write("2. Sayıy giriniz = ");
    s2 = int.Parse(Console.ReadLine());

    for (int i = 1; i <= s2; i++)
    gort = gort * s1;

    //gort = Math.Sqrt((s1 * s2));

    Console.Write(gort);

    Console.ReadLine();

    Ama işte önemli olan döngüyü 0,5 kere döndürmek.

    Döngüyü yarım kere döndürmekte birşey yok. int i değil, double i yap, i++ değil i+= 0.5 yap.
    Sorun orda değil, çarpme işleminde. gort = gort * s1; dediğin zaman bunun döngüyle bir ilgisi kalmıyor, anlatabildim mi?

    Double ile olsa keşke... Olmuyor işte öyle zaten. Olay 0.5 olunca döngü ile alakası kalmıyor.

    Ben de onu diyorun işte. Bu işin döngüyle falan ilgisi yok. En mantıklısı ilk dediğin integral ile yakın değerini bulmak. Ama nasıl bir hoca Sqrt kabul etmiyor anlamadım.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Sqrt kabul etmemesinin mantığı programlamyı öğrenmesi. Ama Sqrt kabul etmiyorsa, Pow ile bu soru çözülür ki. :) Ama Pow'da kabul olmaz o zaman.



    < Bu mesaj bu kişi tarafından değiştirildi Gereqsiz -- 14 Ekim 2012; 21:30:33 >
  • Valla hocana git de ki; madem kullanamıyoruz Sqrt fonksiyonunu, al sana Pow fonksiyonu.

     

    {
    double s1, s2, gort;
    Console.Write("1. Sayıy giriniz = ");
    s1 = double.Parse(Console.ReadLine());
    Console.Write("2. Sayıy giriniz = ");
    s2 = int.Parse(Console.ReadLine());
    gort = Math.Pow(s1 * s2, 0.5);
    Console.Write(gort);
    Console.ReadLine();
    }



    < Bu mesaj bu kişi tarafından değiştirildi Gereqsiz -- 14 Ekim 2012; 21:34:57 >
  • quote:

    Orijinalden alıntı: Gereqsiz

    Sqrt kabul etmemesinin mantığı programlamyı öğrenmesi. Ama Sqrt kabul etmiyorsa, Pow ile bu soru çözülür ki. :) Ama Pow'da kabul olmaz o zaman.

    Onu anladım da gerek yok bence. Ödev zaten matematiksel bir ödev, boşu boşuna farklı farklı şeyleri sıfırdan yapmaya gerek yok. Baştan ödevi verirken dese ki kendi Kuvvet fonksiyonunuzu yazın, veya Karekök fonksiyonunuzu yazın tamam, ama şimdi çok basit bir işlem için komplike bir şey yapmaya çalışacak zor yani.
  • quote:

    Orijinalden alıntı: welrocken

    quote:

    Orijinalden alıntı: Gereqsiz

    Sqrt kabul etmemesinin mantığı programlamyı öğrenmesi. Ama Sqrt kabul etmiyorsa, Pow ile bu soru çözülür ki. :) Ama Pow'da kabul olmaz o zaman.

    Onu anladım da gerek yok bence. Ödev zaten matematiksel bir ödev, boşu boşuna farklı farklı şeyleri sıfırdan yapmaya gerek yok. Baştan ödevi verirken dese ki kendi Kuvvet fonksiyonunuzu yazın, veya Karekök fonksiyonunuzu yazın tamam, ama şimdi çok basit bir işlem için komplike bir şey yapmaya çalışacak zor yani.

    Önemli olan burada karekök fonksiyonu benim için. Bir mantık buldum gibi; deniyorum sürekli. Olursa paylaşırım. Ama vakit ayırmak gerek.




  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.