• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

matematiksel işlem ve \ işareti

  • Konbuyu başlatan Konbuyu başlatan Asri
  • Başlangıç tarihi Başlangıç tarihi
Katılım
24 Nisan 2005
Mesajlar
3,683
Excel Vers. ve Dili
Office 2016 EN 64 Bit
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.
 
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
 
Kod:
artan = sayi mod 10
 
Bu değerde sonuç ne olmalı?

sayi = 12569.75
 
Son düzenleme:
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ı.
 
Sayın Asri Hocam,
\ isareti DOS ortaminda calisan GwBasic, QBX programlarinda tanimli tamsayi boler isaretidir
Saygilarimla
 
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
 
"\" 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:
"/" 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
 
Rica ederim Asri bey. Neye ulaşmaya çalıştığınızı tam olarak belirtirseniz belki daha etkili bir çözüm geliştirilebilir.

.
 
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.
 
Peki tam sayıyı alırken birler basamağı yukarı yuvarlanırsa ne olacak? Örneğin, 123456 / 10 işlem sonucu 12346 yuvarlanmış olacaktır.
.
 
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
 
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
 
Geri
Üst