ARKADAŞLAR C# CONSOLE İLE KULLANICIDAN VİRGÜL İLE AYRILMIŞ SAYILAR İSTENİKCEK ÖRNEGİN/ 1,2,5,4,7,8,3,6,9 GİBİ SAYILAR GİRECEK ÇIKTISI/ 987654321

BU SAYILARI BÜYÜKTEN KÜÇÜGE DOGRU SIRALAYACAK SPLİT FONKSİYONU KULLANARAK NASIL YAPABİLİRİM

ŞİMDİDEN YARDIMLARINIZ İÇİN TEŞEKKÜR EDERİM…

YAPABİLEN KİŞİ ANLATARAK /* YAPABİLİRSE MİNETTAR OLURUM…

soruldu: 17 Ara '15, 13:35

kankalar019's gravatar image

kankalar019
0224
cevap kabul oranı: 0%


Merhaba Aşağıdaki kod umarım işini görür;

string rakamlar = "15,6,9,32,28,59,74,68,45";
  ArrayList list = new ArrayList();
  //Rakamları elde etmek için şu şekilde kodlama yapabiliriz.
  for (int i = 0; i < rakamlar.Split(',').Length; i++)
  {
    //aşağıdaki kodlama ile de herbir değer elde ediliyor.
   list.add(rakamlar.Split(',')[i]));
  }

  //Arraylist Sıralama işlemi
 list.sort();
  for (int i = 0; i < dizi.Length; i++)
  {
    Console.WriteLine(list[i]);
  }
permanent link

cevaplandı: 17 Ara '15, 14:50

tamercan's gravatar image

tamercan
3945
cevap kabul oranı: 4%

Bari compile edilebilen bir kod yazsaydin. "add", "sort", nedir? Sanirim "Add", "Sort" olamali. "dizi" ne? ArrayList'in Count diye bir property'si var ama "Length" yok. Ayrica "list.add" de fazla ')' var.

(17 Ara '15, 16:04) eser eser's gravatar image

Ayrica, tum bu hatalari duzeltsen bile yine de yanlis calisacak, cunku kodun "string" karsilastirmasi yapiyor. Yani "9" > "12".... :)

(17 Ara '15, 16:10) eser eser's gravatar image

Bu arada "ArrayList" .Net 1.1'den kalma kimse onu artik kullanmiyor, Daha modern generic tipler, ornegin List<t> kullaniliyor.

(17 Ara '15, 16:15) eser eser's gravatar image

Burada istenen şey zaten işin mantığını kavramak. ArrayList le yapmak daha mantıklı. Soruyu soran kişi belki generic in ne olduğunu bile bilmiyor. Burada önemli olan ArrayList in Sort metodu nasıl çalışıyor onu anlamak.

(18 Ara '15, 03:27) huseying huseying's gravatar image

Biraz Linq kullanarak kolayca yapabilirsin.

string rakamlar = "15,6,9,32,28,59,74,68,45";
var cikti = string.Join(",", Regex.Matches(rakamlar, "\\d+").Cast<Match>()
                            .Select(x => int.Parse(x.Value))
                            .OrderByDescending(x => x)
                       );

Console.WriteLine(cikti);

OUTPUT: 74,68,59,45,32,28,15,9,6


Eger, benim girdilerim icinde <space> vs, baska karakter olmayacagindan eminim dersen, Regex kullanmadan da yapabilirsin

var cikti = string.Join(",", rakamlar.Split(',')
                            .Select(int.Parse)
                            .OrderByDescending(x => x)
                        );

NOT: Gerekli namespaces

using System.Linq;
using System.Text.RegularExpressions;
permanent link

cevaplandı: 17 Ara '15, 16:01

eser's gravatar image

eser
(üyeliği donduruldu)
cevap kabul oranı: 0%

değiştirildi: 17 Ara '15, 17:22

1

Şimdi siz cevabı buraya yazdınız her şey tamam öyle mi? Belli ki soran kişi bu işi daha yeni öğreniyor. Anlatarak cevaplar mısınız diye de rica etmiş. Siz bu şekilde hazır function larla cevabı keşke hiç yazmasaydınız.

(18 Ara '15, 03:23) huseying huseying's gravatar image

huseying, "Siz bu şekilde hazır function larla cevabı keşke hiç yazmasaydınız." neden? belki ileride soruyu soran disinda bazi insanlarda okuyacak ve belki de "aha.. bu is boyle de yapilabiliyormus diyecek". Bilgiyi paylasmak ne zamandan beri kotu bir sey oldu? Bu arada, ben soruyu hic bir arastirma yapmamis birisinin hocasina "al sana cevap" diye veremeyecek sekilde cevaplamistim. Sanirim niyetimi anlatamamisim...

(19 Ara '15, 19:18) eser eser's gravatar image

HEPİNİZİN YAZDIKLARI İÇİN TEŞEKKÜR EDERİM AMA BANA EN SADECE EN KOLAY YÖNTEM LAZIM YANI UZUN OLMASI ÖNEMLİ DEGİL EN KOLAY VE ANLASILABİLİR YOLDAN YAPABİLİRSENİZ COK SEVİNİRİM... MİNNETTARIM...

permanent link

cevaplandı: 18 Ara '15, 03:08

kankalar019's gravatar image

kankalar019
0224
cevap kabul oranı: 0%

Siz bence yukarıdaki cevapları boş verin. Ben size yöntemi anlatayım. Koda dökme işini kendiniz yapmaya çalışın.

Öncelikle string split in nasıl çalıştığını anlayın. Virgülle ayırdığınız değerleri bir yerde tutun. Sonra for döngüsü ile bu elemanlar arasında gezin. Yapmanız gereken şey bir önceki değerle bir sonraki değeri karşılaştırmanız lazım. Bu karşılaştırmada (büyükten küçüğe mi, küçükten büyüğe mi burda belli oluyor, onu da siz bulun artık :)) karşılaştırdığınız ve büyük yada küçük olduğuna karar verdiğiniz elemanı başka bir yere atacaksınız. En sonda da bu bulduğunuz elemanları listeleyeceksiniz.

Burada kullanacağınızı 3 ana şey var hepsi bunlarda bitiyor. ArrayList(ilk cevapta bahsedilmiş), döngü (for) ve karşılaştırma (if)

permanent link

cevaplandı: 18 Ara '15, 03:50

huseying's gravatar image

huseying
301128
cevap kabul oranı: 30%

Sıralama algoritmasını kendisinin yazması lazım. konuyla ilgili olarak googledan arama yapabilirsiniz. CSharp ile sıralama algoritması diye aratın bulursunuz.

permanent link

cevaplandı: 18 Ara '15, 13:22

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

huseying kardeşim bir tane beni sen anlamışsın gibi görnüyor burda bana sadece kod olazım degil neyin nasıl oldugunuda şu kodun nasıl oldugunu ne işe yaradıgını istiyordum ama sadece kodlar geldi ben burdaki kodların çogunu bilmiyorum bile bilg. prog. 1 sınıftayım biraz bilgim var ama oda html-css lerde c# da kullanmadım hiç

hüseying in söyledi tam istedigim gibi acıklama çok güzel teşekkür ederim

bunu koda dökebilcek olan var mı en kolay yönden ? yardımlarınız için çok teşekkkür ederim

permanent link

cevaplandı: 18 Ara '15, 13:23

kankalar019's gravatar image

kankalar019
0224
cevap kabul oranı: 0%

         int gecici;
        int[] sayilar = new int[10] { 7,6,4,3,2,2,1,3,9,12 };
        Console.Write("Dizinin ilk hali: ");
        foreach (int deger in sayilar)
        {
            Console.Write(deger + " ");
        }
        for (int i = 0; i < sayilar.Length - 1; i++)
        {
            for (int j = i; j < sayilar.Length; j++)
            {
                // >(büyük) işareti <(küçük ) olarak değiştirilirse büyükten küçüğe sıralanır
                if (sayilar[i] > sayilar[j])
                {
                    gecici = sayilar[j];
                    sayilar[j] = sayilar[i];
                    sayilar[i] = gecici;
                }

            }

        }
        Console.WriteLine();
        Console.Write("Dizinin son hali: ");
        foreach (int deger in sayilar)
        {
            Console.Write(deger + " ");
        }
        Console.ReadKey();

ARKADAŞLAR BU PROGRAMIN NASIL DİZİNİN İLK HALİ Nİ KULLANICIDAN İSTEYECEK. İNT[] OLDUGU İÇİN İNT[] SAYİLAR = CONSOLE.READLİNE(); && İNT[] SAYİLAR = CONVERT.TOİNT32(CONSOLE.READLİNE()); VE BENZERİLERİ HATA VERİYOR.

permanent link

cevaplandı: 18 Ara '15, 17:01

kankalar019's gravatar image

kankalar019
0224
cevap kabul oranı: 0%

değiştirildi: 18 Ara '15, 17:02

BÖYLE CEVAPLAR VERMEYİN!!! UĞRAŞTIĞINI GÖRÜN ONDAN SONRA!!

permanent link

cevaplandı: 21 Ara '15, 10:53

scorf's gravatar image

scorf
965610
cevap kabul oranı: 0%

Boyle cevap olmayan cevaplar da yazmayin. "Yorum"lar bu is icin, degil mi?

(21 Ara '15, 15:16) eser eser's gravatar image

Sizin için bir video buldum. Bu videoda quicksort algoritması anlatılmış. Kanalın videolarında diğer algoritmalarda var. Bir bakın bence. Çok eğlenceli bir şekilde anlatmışlar :)

https://www.youtube.com/watch?v=ywWBy6J5gz8

permanent link

cevaplandı: 06 Oca, 02:25

huseying's gravatar image

huseying
301128
cevap kabul oranı: 30%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×238

Soruldu: 17 Ara '15, 13:35

Görüntüleme: 575 kez

Son güncelleme: 06 Oca, 02:25

powered by BitNami OSQA