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ü)
C# da ortanca bulma yardım !!!
Konu bilgisi
15cevap
15 bingörüntüleme
06.01.2013açıldı
21.10.2015son cevap
Cevaplar
Ortanca bulmak için, http://www.tualimforum.com/genel-kultur/69286-medyan-nasil-hesaplanir-medyan-hesaplama-yontemleri-medyan-hesaplama.html
float m;
int[] numbers=new int[10]{5,7,3,8,10,1,2,4,6,9};
Array.Sort(numbers);
m = (float)(numbers[10 / 2] + numbers[10 / 2 + 1])/2;
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;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...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.
http://www.tualimforum.com/genel-kultur/69286-medyan-nasil-hesaplanir-medyan-hesaplama-yontemleri-medyan-hesaplama.htmlalgea dedi: ↑Ortanca bulmak için,
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?
ortanca dediğin sayıların ortalaması ise toplayıp 10 a bölersin ??
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;
Burayı 6 olarak mı alacak yoksa 10/3 olarak mı? 6 olarak almazsa bozuk çıkar.numbers[10 / 2 + 1]
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.
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.
🙌
(10/2)+1 yada 10/2+1. Bölmenin toplama işaretine göre üstünlüğü olduğuna göre sonuç değişmeyecektir.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.
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.
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 :)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.
🙌
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.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 :)
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();
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.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.
Eğer girilen sayı çift ise
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.(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.
🙌
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
Bunu c# dizi şeklinde olan program hakkında yardımcı olabilir misiniz ?
- - - Mesaj Güncellendi - - -
- - - Mesaj Güncellendi - - -
Bunu c# dizi şeklinde olan program hakkında yardımcı olabilir misiniz ? ?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();
Cevabını yaz
Şu an okuyanlar