*Sitemize Üye Olunca Elinize Ne Geçer?

<--- 1. Üye Olarak Linkleri Görebilirsiniz... --->

<--- 2. İstediğiniz Kadar Paylaşım Yapabilirsiniz... --->

<--- 3. Güzel Bir Forum Hayatı Yaşayabilirsiniz... --->


Join the forum, it's quick and easy


*Sitemize Üye Olunca Elinize Ne Geçer?

<--- 1. Üye Olarak Linkleri Görebilirsiniz... --->

<--- 2. İstediğiniz Kadar Paylaşım Yapabilirsiniz... --->

<--- 3. Güzel Bir Forum Hayatı Yaşayabilirsiniz... --->

Would you like to react to this message? Create an account in a few clicks or log in to continue.

● En Güncel Paylaşım Platformu ●

---Misafir--- Hos Geldiniz Daha iyi Bir Hizmet İçin Üye olunuz.ÜyeLer Link GörebiLir

    c++ sayı ...

    MnyTirith
    MnyTirith
    ● Admin ●
    ● Admin ●


    <b>Doğum tarihi</b> Doğum tarihi : 20/06/90

    c++ sayı ... Empty c++ sayı ...

    Mesaj tarafından MnyTirith Salı Mart 09, 2010 11:29 am

    Kodun çalışma mantığı şöyledir.
    oku
    fonksiyonuna gönderilen string başına "0" eklemek suretiyle önce 15
    haneye tamamlanır, sonra yeni string 3 erli kümeler halinde 5 eşit
    parçaya bölünür ve her bir üçlü küme tek tek dizisine yüklenir. Böylece 5
    elemanlı rakam dizisinin her bir elemanında 3 karakterli bir string
    yüklü olur.

    1.Aşama
    sayımız 32313234 olsun. ilk olarak sayımızın hane sayısını
    başına 0 eklemek sureti ile 15 e çıkarırız.
    Böylece yeni stringimiz
    000000032313234 şeklini alır.

    2.Aşama
    Stringimiz 3 erli kümeler halinde 5 eşit parçaya bölünür.
    1. küme : 000
    2. küme : 000
    3. küme : 032
    4. küme
    : 313
    5. küme : 234

    3.aşama
    her bir küme 5 elemanlı rakam isimli araya yüklenir ve
    sonuçta

    rakam[0] = "000"
    rakam[5] = "234"

    olur
    rakam[5][0]="2"
    5. kümenin yüzler basamağı;
    rakam[5][1]= "3" 5. kümenin onlar
    basamağı;
    rakam[5][2]= "4" 5. kümenin birler basamağı;

    olur.
    4.aşama
    10 elemanlı yüzler,onlar ,birler string dizileri
    tanımlanır ve içleri doludur

    örn:
    yuzler.SetValue("ikiyuz",2);
    onlar.SetValue("otuz",3);
    birler.SetValue("dört",4);

    yani yuzler[2]+onlar[3]+birler[4] = ikiyüzotuzdört olur.
    int x
    =Convert.ToInt16(rakam[5][0].ToString()); yüzler

    int y
    =Convert.ToInt16(rakam[5][1].ToString()); onlar

    int z
    =Convert.ToInt16(rakam[5][2].ToString()); birler

    yuzler[x]+onlar[y]+birler[z] = ikiyüzotuzdört
    bir döngü ile her bir kümeye bu işlemi uygularsanız, 1 ve
    ikinci kümlerin bütün elemanları sıfır olduğu için sonuçta

    otuzdört
    üçyüzonuç
    ikiyüzotuzdört

    ü elde edersiniz
    5.Aşama
    hane isimli 5 li array tanımlanır ve elemanları trilyon,
    milyar, milyon, bin ve sonuncusu da boş olacak şekilde ayarlanır. aynı
    döngü içerisinde her bir kümenin sonuna eklenir

    string sonuc = "";
    for(int
    i = 0 ; i < 5;i++)

    {
    sonuc =
    sonuc +

    yuzler[Convert.ToInt16(rakam[0].ToString())]+
    onlar[Convert.ToInt16(rakam[1].ToString())]+
    birler[Convert.ToInt16(rakam[i][2].ToString())]+

    hane[i];

    }
    Burada ayarlanması
    gereken durum eğer bir kümenin bütün elemanları sıfırsa (yukarıdaki
    gibi) hanenin gözükmemesi gerekir. Yani

    000 = yuzler[0]+onlar[0]+birler[0]+hane[0] dersek sonuç
    trilyon olur bu durumda

    if(rakam[0].ToString()!=
    "000")

    hane.SetValue("trilyon ",0);
    if(rakam[1].ToString()!= "000")
    hane.SetValue("milyar ",1);
    if(rakam[2].ToString()!= "000")
    hane.SetValue("milyon ",2);
    if(rakam[3].ToString()!= "000")
    hane.SetValue("bin ",3);
    yani rakam[0] (trilyon kümesi) "000" değilse hane[0] =
    "trilyon" olsun demeliyiz.

    Yanlız
    bir sorun daha var. eğer sayı 1000 ise fonksiyon bize haklı olarak
    "birbin" i döndürür. Bir milyar var, Bir Milyon var ama bir bin ve bir
    yüz yok. Ben bu sorunu BirSorunu isimli fonksiyonla hallettim.

    Aşağıdaki kodu inceleyebilirsiniz.

    using System;
    namespace
    numbereader

    {
    public
    class

    SayiOkuma
    {

    privatestring[ ] yuzler =newstring
    [10];
    private string[ ] onlar =new string
    [10];
    private string[ ] birler =new string
    [10];
    private string[ ] hane = new string
    [5];
    private string[ ] rakam =newstring
    [5];
    // arrayları tanımlıyoruz

    public
    SayiOkuma()

    {
    // içlerini dolduruyoruz
    yuzler.SetValue("dokuzyüz",9);
    yuzler.SetValue("sekizyüz",Cool;
    yuzler.SetValue("yediyüz",7);
    yuzler.SetValue("altıyüz",6);
    yuzler.SetValue("beşyüz",5);
    yuzler.SetValue("dörtyüz",4);
    yuzler.SetValue("üçyüz",3);
    yuzler.SetValue("ikiyüz",2);
    yuzler.SetValue("yüz",1);
    yuzler.SetValue("",0);

    onlar.SetValue("doksan",9);
    onlar.SetValue("seksen",Cool;
    onlar.SetValue("yetmiş",7);
    onlar.SetValue("altmış",6);
    onlar.SetValue("elli",5);
    onlar.SetValue("kırk",4);
    onlar.SetValue("otuz",3);
    onlar.SetValue("yirmi",2);
    onlar.SetValue("on",1);
    onlar.SetValue("",0);

    birler.SetValue("dokuz",9);
    birler.SetValue("sekiz",Cool;
    birler.SetValue("yedi",7);
    birler.SetValue("altı",6);
    birler.SetValue("beş",5);
    birler.SetValue("dört",4);
    birler.SetValue("üç",3);
    birler.SetValue("iki",2);
    birler.SetValue("bir",1);
    birler.SetValue("",0);

    hane.SetValue("",0);
    hane.SetValue("",1);
    hane.SetValue("",2);
    hane.SetValue("",3);
    hane.SetValue("",4);
    /* ilk olarak bu arrayın elemanlarını
    boş olarak ayarlıyoruz eğer küme elemanları
    000 değilse
    trilyon,milyar,milyon bin değerleri ile dolduruyoruz
    */

    }
    public string oku(string sayi)
    {
    int uzunluk = sayi.Length;
    if(uzunluk
    > 15)

    return "Hata girilen değerin uzunluğu en fazla 15 olmalı";
    // uzunluk 15 karakterden fazla olmamalı. si

    try
    {

    long k =
    Convert.ToInt64(sayi);

    }
    catch(Exception
    ex)

    {
    return
    ex.Message.ToString();

    }
    sayi = "000000000000000"+sayi;
    sayi =
    sayi.Substring(uzunluk,15);

    rakam.SetValue(sayi.Substring(0,3),0);
    rakam.SetValue(sayi.Substring(3,3),1);
    rakam.SetValue(sayi.Substring(6,3),2);
    rakam.SetValue(sayi.Substring(9,3),3);
    rakam.SetValue(sayi.Substring(12,3),4);

    if(rakam[0].ToString()!=
    "000")
    hane.SetValue("trilyon ",0);
    if
    (rakam[1].ToString()!= "000")
    hane.SetValue("milyar
    ",1);
    if
    (rakam[2].ToString()!=
    "000")
    hane.SetValue("milyon ",2);
    if
    (rakam[3].ToString()!= "000")
    hane.SetValue("bin ",3);

    string
    sonuc = "";

    for(int
    i = 0 ; i < 5;i++)

    {
    sonuc = sonuc + yuzler[Convert.ToInt16(rakam[i][0].ToString())]+
    birsorunu(onlar[Convert.ToInt16(rakam[i][1].ToString())]+birler[Convert.ToInt16(rakam[i][2].ToString())]+hane[i]);
    [/i][/i][i][/i][i][i]
    }
    return sonuc;
    }
    privatestring
    birsorunu (string sorun)

    {
    string cozum = "";
    if
    (sorun == "birbin ")
    cozum = "bin ";

    else
    cozum = sorun;

    return
    cozum;

    }
    }
    }
    [/i][/i][/i][/i][/i][/i]

      Similar topics

      -

      Forum Saati Perş. Mayıs 16, 2024 8:25 am