Textboxa girilen 11 haneli sayının son basamağındaki sayıyı alıp kontrol etme ?

Bu konuyu okuyanlar

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
textboxa girilen sayıının son basmagındakı sayıyı alıp nasıl kontrol edebilirim sayıya gore arttırma yapıcam yardımcı olursanız sevinirim
 

Winter Nights

Asistan
Katılım
31 Ocak 2012
Mesajlar
139
Reaksiyon puanı
13
Puanları
18
Günaydınlar bunun kolay bir yolu var aslında. Herhangi bir sayının mod10 u o sayının son basamağını verir.

Hangi dil ile yapıyorsunuz bilemiyorum ama C# da göstermek gerekir ise:

int sayi = 11111111112; // 11 Basamaklı sayın
int sonBasamak;

sonBasamak = sayi % 10 // Bu işlem sana 2 değerini döndürecek.

sonra da nerede arttırma yapmak istiyorsan degiskenIsmi += sonBasamak; tarzı kullanırsın.
 

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
Hayirli cumalar tamamdir usta tesekkurler deniyeyim ben
 

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
Usta hemen hemen yazdim sayilir aksama kodlari atiyim bi bak calismiyo cunku
 

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
long say1;
say1 = Convert.ToInt32(textBox1);
long toplam;

long sayi = 11111111112;
long sonBasamak;
sonBasamak = sayi % 10;
if (sonBasamak == 0)
{



sayi++;
sayi++;
toplam = say1 + sayi;
MessageBox.Show("TC den sonra gelen asal sayı" + toplam);



}
 

Winter Nights

Asistan
Katılım
31 Ocak 2012
Mesajlar
139
Reaksiyon puanı
13
Puanları
18
Kodun ne hata verdiğini yazmamışsın ama gözüme çarpan iki hata var:
  • say1 değişkenini long tanımlayıp içine 32 bit integer'a çevrilmiş değer atamaya çalışıyorsun. Convert.ToInt64 yapman lazım aksi taktirde hata alırsın.
  • Ayrıca içinden veri çekebilmek için sadece textBox1 değil textBox1.Text yazman gerekir.
Data Type Ranges bu linkten değişken tiplerinin limitlerini inceleyebilirsin.

Düzeltilmiş hali -> say1 = Convert.ToInt64(textBox1.Text);

Ek olarak:
  • sayi 2 defa neden arttırılıyor anlamış değilim. Burada amacın 11 haneli sayının son basamağı kadar attırmak ise sayi = sayi + sonBasamak yapabilirsin.
  • Programın işlevini bilmediğimden çok yorum yapamıyorum ama üstte yazdığım kodu kullanabilirsin.
Edit: Fark ettim de ben de ilk mesajımda int diyip 11 basamaklı numara yazmışım, dikkatsizlik :)
 
Son düzenleme:

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
usta olay şu şöyle anlatıyım tc kimlik numarasından sonra gelen asal sayıyı ekrana yazdırma yani atıyorum senin tc kimlik numaranı programa yazdıgımızda ondan sonra gelen asal sayıyı ekrana yazdırıcak ben kendime son rakamı kontrol edip onu asal sayı yapma peşindeyim
 

Winter Nights

Asistan
Katılım
31 Ocak 2012
Mesajlar
139
Reaksiyon puanı
13
Puanları
18
Tamamdır. O zaman benim sayi dediğim değişken senin Tc numaran. Yani benim sayi değişkenini silip direk textboxtan çektiğin değeri kullanman lazım. Sonra o değerin mod %10 unu alıp son basamağını bulacaksın. Sonrası sende bir şey olursa gene yardımcı olurum, iyi çalışmalar :)
 

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
başkan burda nasıl bi hata var if else değimini unutmusum ufak bişi var ama anlamadım
 

Ekli dosyalar

  • Adsız.png
    Adsız.png
    155.9 KB · Görüntüleme: 606

Winter Nights

Asistan
Katılım
31 Ocak 2012
Mesajlar
139
Reaksiyon puanı
13
Puanları
18
Her if - else ve else if koşuluna başlarken süslü parantez açıp kapaman lazım.
if (____)
{
KOD
}
else
{
KOD
}
else if (____)
{
KOD
}

Detaylı bilgi için buraya bakabilirsin.
 

takabilisim

Öğrenci
Katılım
27 Kasım 2015
Mesajlar
46
Reaksiyon puanı
0
Puanları
6
usta program çalısıyo fakat mesela bırıncı tcyı gırdıgınde sorun yok asal sayıyı buluyo 2. ye gırdıgınde calısmıyo programı kapatıp acmak gerekıyo neden acaba
 

Winter Nights

Asistan
Katılım
31 Ocak 2012
Mesajlar
139
Reaksiyon puanı
13
Puanları
18
Bunun birkaç nedeni olabilir kodu görsem daha yararlı olur. Aklıma gelen ilk neden ise program ilk çalıştığında textbox boş sen değeri girince doluyor ve ikinciyi üzerine yazmaya çalışıyor. Yeni bir tc aramadan önce textbox.Clear() yaptın mı ? Ya da kodun resmini yolla öyle bakalım.
 
Üst