matematiksel işlem ve \ işareti

Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Merhaba,

Bu gün ilk defa karşılaştığım bir operatör. Bunun anlamı nedir. Tam sayı bölmemi? Evet öyleymiş :)

sonrakam = sayi - (sayi \ 10) * 10

Hazır bunu paylaşmışken hiç bir fonksiyon kullanmadan sadece matematiksel işlemle son rakamı nasıl buluruz.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Uzun yollu olsun ama sonuç olsun :)

C#:
Sub sonrakam()
sayi = 12569
adet = sayi / 10
For i = 1 To adet
    sayi = sayi - 10
Next i

End Sub
 

antonio

Destek Ekibi
Destek Ekibi
Katılım
13 Şubat 2011
Mesajlar
1,161
Excel Vers. ve Dili
Microsoft Office Professional Plus 2013 Türkçe
Kod:
artan = sayi mod 10
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,238
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu değerde sonuç ne olmalı?

sayi = 12569.75
 

antonio

Destek Ekibi
Destek Ekibi
Katılım
13 Şubat 2011
Mesajlar
1,161
Excel Vers. ve Dili
Microsoft Office Professional Plus 2013 Türkçe
Son düzenleme:
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Teşekkür ederim. Ancak bu da her programda geçerli olmuyor.
\ tam sayı bölme işlemi özel tanımlı bir işlem sanırım.

Kuka robot yönetim yazılımında gerekli bir işlemdi. Bir arkadaş için araştırıyordum.
Kuka yazılım bu \ operatörü tanımlayamadı.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,787
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Asri Hocam,
\ isareti DOS ortaminda calisan GwBasic, QBX programlarinda tanimli tamsayi boler isaretidir
Saygilarimla
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın Asri Hocam,
\ isareti DOS ortaminda calisan GwBasic, QBX programlarinda tanimli tamsayi boler isaretidir
Saygilarimla
Hocam ben aşağıdaki şekilde 10 çıkararak yaptım ama bunun 4 işlem ile yapılması mümkün mü?

Kod:
Sub sonrakam()
sayi = 12569
adet = sayi / 10
For i = 1 To adet
   sayi = sayi - 10
Next i
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
"\" bölme işlemi yapar. Ancak tamsayı kısmını verir.

Tam sayı almanın diğer bir yolu da,
C#:
Dim l As Long
l = 1071 / 10
ve bu yöntem daha hızlıdır.
 
Son düzenleme:
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
"/" bölme işlemi yapar. Ancak tamsayı kısmını verir.

Tam sayı almanın diğer bir yolu da,
C#:
Dim l As Long
l = 1071 / 10
ve bu yöntem daha hızlıdır.
Üstad bu şekilde daha hızlı oldu.
Değişken tanımlaması yapma ile yapmama arasındaki fark.

Teşekkür.

C#:
Sub sonrakam()
    Dim sayi As Long, birler As Long, bolum As Long, carpim As Long
    sayi = 12324
    bolum = sayi / 10
    carpim = bolum * 10
    birler = sayi - carpim
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Rica ederim Asri bey. Neye ulaşmaya çalıştığınızı tam olarak belirtirseniz belki daha etkili bir çözüm geliştirilebilir.

.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Bir projede, tam sayının son rakamına ihtiyac vardı.
Kuka robot yazılımında mod, trunc gibi fonsiyonlar kullanılamıyor. Yada ben help inde böyle birşey bulamadım.
Bu nedenle fonksiyon kullanmadan tespiti için yazmıştım.
iki yöntemde iş görür durumda.

Amacımıza ulaştık diyelim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Peki tam sayıyı alırken birler basamağı yukarı yuvarlanırsa ne olacak? Örneğin, 123456 / 10 işlem sonucu 12346 yuvarlanmış olacaktır.
.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Peki tam sayıyı alırken birler basamağı yukarı yuvarlanırsa ne olacak? Örneğin, 123456 / 10 işlem sonucu 12346 yuvarlanmış olacaktır.
.
Evet bunu atlamışım.,
Bu durumda benim bulduğum yöntem 10 çıkarma daha doğru olacak gibi.
Sayı en fazla 4 hane olacağı için süre problemi olmayacak.

Yok bu da olmadı :)))
Bunda da değişken tanımları yapıldığında sorun oluyor. Uygun değişken tanımlarına bakayım :))

Kod:
Sub sonrakam()
sayi = 12569
adet = sayi / 10
For i = 1 To adet
   sayi = sayi - 10
Next i
End Sub
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Peki tam sayıyı alırken birler basamağı yukarı yuvarlanırsa ne olacak? Örneğin, 123456 / 10 işlem sonucu 12346 yuvarlanmış olacaktır.
.
Bu durumda aşağıdaki kod çalışır gibi duruyor

C#:
Sub sonrakam()
Dim birler As Integer, fark As Integer, sayi As Integer, adet As Integer
sayi = 1266
adet = sayi / 10
fark = sayi - (adet * 10)
If fark = 0 Then
  birler = 0
ElseIf fark > 0 Then
  birler = sayi - (adet * 10)
ElseIf fark < 0 Then
  birler = 10 - ((sayi - (adet * 10)) * -1)
End If

End Sub
 
Üst