İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
Mustafa Kemal Atatürk

Cumhuriyetimizin kurucusu Gazi Mustafa Kemal Atatürk'ü vefatının 88. yılında saygı ve özlemle anıyoruz.Gazi Mustafa Kemal Atatürk'ü saygı ve özlemle anıyoruz.Atatürk'ü saygı ve özlemle anıyoruz.

  1. Ana sayfa
  2. SDN Forum
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# da ortanca bulma yardım !!!

Konu bilgisi

15cevap
15 bingörüntüleme
06.01.2013açıldı
21.10.2015son cevap

#1
Merhaba arkadaşlar bana C# da klavyeden girilen 10 sayının ortancasını bulan programı yazabilecek varmı cok denedim ama bir türlü yapamadım yardım edin lütfenn....(for döngüsü)
Cevaplar
#3

float m;
int[] numbers = new int[10] { 5, 7, 3, 8, 10, 1, 2, 4, 6, 9 };
for (int i=0;i<10;i++){
   Console.WriteLine("Sayı giriniz:");
  if (!int.TryParse(Console.ReadLine(), out numbers[i])) {break;}
}
Array.Sort(numbers);
m = (float)(numbers[10 / 2] + numbers[10 / 2 + 1]) / 2;
#4
Dostum çift sayı söylediğinde ortanca kavramı değişebilir. Yani 10 tane sayının ortancası demek küçükten büyüğe sıraladıgında 5. mi 6. mı olur ? ama sen 9 sayıdan ortancası desen sayıları kücükten büyüğe ya da büyükten küçüğe sıralayıp tam ortadakini alabilirsin yani 5. yi.
donanimci07 Konuyu açan
#5
erdiiinc dedi: ↑
Dostum çift sayı söylediğinde ortanca kavramı değişebilir. Yani 10 tane sayının ortancası demek küçükten büyüğe sıraladıgında 5. mi 6. mı olur ? ama sen 9 sayıdan ortancası desen sayıları kücükten büyüğe ya da büyükten küçüğe sıralayıp tam ortadakini alabilirsin yani 5. yi.
Benim amacım ortadaki sayıy bulmak deil zaten "klavyeden girilen 10 'sayıdan' ortancasını bulmak" yani girilen 'sayıların' ortancasını bulmak...
algea dedi: ↑
Ortanca bulmak için,
http://www.tualimforum.com/genel-kultur/69286-medyan-nasil-hesaplanir-medyan-hesaplama-yontemleri-medyan-hesaplama.html
 float m;[/FONT]
[FONT=Verdana] int[] numbers=new int[10]{5,7,3,8,10,1,2,4,6,9};[/FONT]
[FONT=Verdana] Array.Sort(numbers);[/FONT]
[FONT=Verdana] m = (float)(numbers[10 / 2] + numbers[10 / 2 + 1])/2;
[/QUOTE]

Bu kod da sadece i'nin ortasındaki yani 5. sırasındakı sayıyı buluyor yanılmıyosam?
#6
ortanca dediğin sayıların ortalaması ise toplayıp 10 a bölersin ??
#7
Ortanca ortalama değil medyan diye geçer. Sayıların küçüktün büyüğe sıralanmış halinde ortadaki terim ortanca değer adını alır. Eğer (çift)10 sayı varsa ortanca değer serinin küçükten büyüğe sıralandıktan sonraki 5. ve 6. değerlerinin ortalaması olarak alınır.
algea dedi: ↑

float m;
int[] numbers = new int[10] { 5, 7, 3, 8, 10, 1, 2, 4, 6, 9 };
for (int i=0;i<10;i++){
   Console.WriteLine("Sayı giriniz:");
  if (!int.TryParse(Console.ReadLine(), out numbers[i])) {break;}
}
Array.Sort(numbers);
m = (float)(numbers[10 / 2] + numbers[[B]10 / 2 + 1[/B]]) / 2;
numbers[10 / 2 + 1]
Burayı 6 olarak mı alacak yoksa 10/3 olarak mı? 6 olarak almazsa bozuk çıkar.
#8
donanimci07 ilk önce klavyeden gireceğin sayıları küçükten büyüğe sıralayacaksın. Daha sonra kaç adet sayı girdin ona bakacaksın ya da kaç adet sayı girleceğini başta belirleyeceksin.

Girdiğin sayıların adeti tek ise;

n+1/2 formülü ile hesaplayacksın. Yani 11 sayı girdiysen 11+1/2 = 6 6. sayı senin ortancan.

Girdiğin sayıların adeti çift ise;

(n/2) + (n/2+1) formülü ile hesaplayacksın. Yani 12 sayı girdin. 12/2 = 6 , 12/2 +1 = 7 6. sayı 10 olsun 7. sayı 12 olsun. Bunların toplamının yarısı (10 + 12)/2 = 11 senin ortanca sayındır.

Bu kurala göre yapabilirsin.
🙌
#9
dgncn dedi: ↑
Ortanca ortalama değil medyan diye geçer. Sayıların küçüktün büyüğe sıralanmış halinde ortadaki terim ortanca değer adını alır. Eğer (çift)10 sayı varsa ortanca değer serinin küçükten büyüğe sıralandıktan sonraki 5. ve 6. değerlerinin ortalaması olarak alınır.

Burayı 6 olarak mı alacak yoksa 10/3 olarak mı? 6 olarak almazsa bozuk çıkar.
(10/2)+1 yada 10/2+1. Bölmenin toplama işaretine göre üstünlüğü olduğuna göre sonuç değişmeyecektir.
#10
Abi siz hala tutturmusunuz ortanca sayı diye. Adam klavyeden girilen 10 sayının ortancasını bulup yazdırsın diyor.
Sen burda hangi sayıları girdirticeksin ona göre kolay yada zor mantık yürütelim yani onu söyle bence.
Öyle sayının ortalaması ortancayı da vermez. Ama sen 5-6-7 diye 15 kadar giren 10 sayı girdim ortancası ne diye soruyorsan Enb = En büyük sayı olsun diyelim , Enb/2 yeterli olucaktır senin için. Ama düzensiz sıra ile giricem dersen daha ayrı bir yol deneriz.
#11
sino dedi: ↑
Abi siz hala tutturmusunuz ortanca sayı diye. Adam klavyeden girilen 10 sayının ortancasını bulup yazdırsın diyor.
Sen burda hangi sayıları girdirticeksin ona göre kolay yada zor mantık yürütelim yani onu söyle bence.
Öyle sayının ortalaması ortancayı da vermez. Ama sen 5-6-7 diye 15 kadar giren 10 sayı girdim ortancası ne diye soruyorsan Enb = En büyük sayı olsun diyelim , Enb/2 yeterli olucaktır senin için. Ama düzensiz sıra ile giricem dersen daha ayrı bir yol deneriz.
Bir kerede şu konunun açılma tarihine baksan ne güzel olurdu. 2010 tarihli konulara bile mesaj yazıyorsun. + Ortanca sayı (mod) bulmanın matematiksel kuralı varken niye deneme yanılma yöntemi ile soruyu çözmeye çalışıyoruz ki :)
🙌
#12
desperado64 dedi: ↑
Bir kerede şu konunun açılma tarihine baksan ne güzel olurdu. 2010 tarihli konulara bile mesaj yazıyorsun. + Ortanca sayı (mod) bulmanın matematiksel kuralı varken niye deneme yanılma yöntemi ile soruyu çözmeye çalışıyoruz ki :)
Cevaplar 2013 ama dostum. Deneme yanılma yöntemi kullanmıyorum ki Aradığın sayı terim sayısı. Yani orta sayı. Oda ilkTerim+sonTerim/artisMiktari olur. Lakin klavyeden girilen diyor. Kullanıcının ne giriceğini bilemezsin ki ;) Ama düz mantıkla soruyu algea'nın yaptığı gibi yapılabilir.
#13
http://www.tualimforum.com/genel-kultur/69286-medyan-nasil-hesaplanir-medyan-hesaplama-yontemleri-medyan-hesaplama.html da algoritmanın tamamı verilmiş. Algoritmayı oldu olacak tam yazalım akılarda soru kalmasın...

            List<double> numbers = new List<double>();
            double n = 0;
            double m = 0;
            string text = "";

            do{
                Console.WriteLine("Sayı giriniz? Çıkış için Q'ya basınız");
                text = Console.ReadLine();
                if (String.Equals(text.ToUpper(), "Q", StringComparison.CurrentCulture)) { break; };
                try
                {
                    n = double.Parse(text);
                    numbers.Add(n);
                }
                catch { Console.WriteLine("Lütfen sayı giriniz!"); }
            } while (true);
            numbers.Sort();
            if (numbers.Count % 2 == 0){
                m = (double)(numbers[(numbers.Count / 2)-1] + numbers[(numbers.Count / 2 + 1)-1])/2;
            }
            else{
                m = (double)numbers[((numbers.Count + 1) / 2)-1];
            }
            Console.WriteLine("Sayılar:");
            for (int i = 0; i < numbers.Count; i++) {
                Console.Write("{0},",numbers[i]);
            }
            Console.WriteLine("Median:{0}", m);
            Console.ReadKey();
            
#14
sino dedi: ↑
Cevaplar 2013 ama dostum. Deneme yanılma yöntemi kullanmıyorum ki Aradığın sayı terim sayısı. Yani orta sayı. Oda ilkTerim+sonTerim/artisMiktari olur. Lakin klavyeden girilen diyor. Kullanıcının ne giriceğini bilemezsin ki ;) Ama düz mantıkla soruyu @algea'nın yaptığı gibi yapılabilir.
Hocam söylediğim bu konu için değil bundan başka olan konular için geçerli. Ortanca sayıya yanlışlıkla mod demişim diğer adı medyan olacak. Bunu bir düzelteyim. Ortanca sayı(medyan) direk ortadaki sayı değildir. Eğer o on sayı sıralı değilse ilk önce küçükten büyüğe sıralaman gerekir. Daha sonra sayı adedi(n) tek ise (n+1)/2 formülüne göre bulunur.
Eğer girilen sayı çift ise
(n/2) + (n/2+1) formülü ile hesaplayacksın. Yani 12 sayı girdin. 12/2 = 6 , 12/2 +1 = 7 6. sayı 10 olsun 7. sayı 12 olsun. Bunların toplamının yarısı (10 + 12)/2 = 11 senin ortanca sayındır.
Yani Arkadaş 10 adet sayıdan bahsediyor. İlk önce sayıları küçükten büyüğe sıralayacak. Daha sonra 10/2 = 5. sayıyı bulacak (x olsun) ve 10/2 + 1 = 6. sayıyı bulacak (y olsun) ve en sonunda bu iki sayının ortalamasını alacak (x+y)/2 = z z'de ortanca sayıdır.
🙌
Misafir
#15
Kullanıcı tarafından girilen 5 sayıyı bir diziye atayarak, bunlardan ortancasını döngü ve hazır sıralama komutu kullanmadan gerçekleştiren C# konsol programını yazınız. çok acil yardım gerekli
#16
Bunu c# dizi şeklinde olan program hakkında yardımcı olabilir misiniz ?

- - - Mesaj Güncellendi - - -
algea dedi: ↑
http://www.tualimforum.com/genel-kultur/69286-medyan-nasil-hesaplanir-medyan-hesaplama-yontemleri-medyan-hesaplama.html da algoritmanın tamamı verilmiş. Algoritmayı oldu olacak tam yazalım akılarda soru kalmasın...

            List<double> numbers = new List<double>();
            double n = 0;
            double m = 0;
            string text = "";

            do{
                Console.WriteLine("Sayı giriniz? Çıkış için Q'ya basınız");
                text = Console.ReadLine();
                if (String.Equals(text.ToUpper(), "Q", StringComparison.CurrentCulture)) { break; };
                try
                {
                    n = double.Parse(text);
                    numbers.Add(n);
                }
                catch { Console.WriteLine("Lütfen sayı giriniz!"); }
            } while (true);
            numbers.Sort();
            if (numbers.Count % 2 == 0){
                m = (double)(numbers[(numbers.Count / 2)-1] + numbers[(numbers.Count / 2 + 1)-1])/2;
            }
            else{
                m = (double)numbers[((numbers.Count + 1) / 2)-1];
            }
            Console.WriteLine("Sayılar:");
            for (int i = 0; i < numbers.Count; i++) {
                Console.Write("{0},",numbers[i]);
            }
            Console.WriteLine("Median:{0}", m);
            Console.ReadKey();
            
Bunu c# dizi şeklinde olan program hakkında yardımcı olabilir misiniz ? ?

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.

Reklam