Forum: Ders Arası RSS
fabs() ile abs() arasındaki fark nedir?
Avatar
Salih Dinçer #1
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: fabs() ile abs() arasındaki fark nedir?
Merhaba,

Biraz önce int türü değişkenlerde denedim ama fabs() işlevi de tıpkı abs() gibi çalışmakta. Acaba fark ne olabilir?

Teşekkürler...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
Salih Dinçer #2
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Sanırım biri float türü değişkenler için ama hata almayınca sorayım dedim. Kodum şöyle:
void main() {
  foreach(i; 0..10) i.write();
  writeln();
  foreach_reverse(i; 0..10) i.write();
  writeln("\nAşağısı tersDüz() işlevinin sonucudur:\n");
  
  void tersDüz(bool ters_mi=false) {
    int _i;
    if(ters_mi) _i = 10-1;
    for(int i; i < 10; i++) write(fabs(_i-i));
    writeln();
  }
  tersDüz();
  tersDüz(true);
}
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Benim tahminim, abs() tamsayılar, fabs() da kesirli sayılar içinmiş ama sonradan abs()'ı şablona dönüştürmüşler ve fabs()'a gerek kalmamış. Tahmin. :)

Ali
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Hocam fabs() için şunlar yazıyor:
/*******************************
 * Returns |x|
 *
 *      $(TABLE_SV
 *      $(TR $(TH x)                 $(TH fabs(x)))
 *      $(TR $(TD $(PLUSMN)0.0)      $(TD +0.0) )
 *      $(TR $(TD $(PLUSMN)$(INFIN)) $(TD +$(INFIN)) )
 *      )
 */
real fabs(real x) @safe pure nothrow;      /* intrinsic */

Haa keza abs() işlevinden görüldüğü üzere seçimli bir yönlendirme varmış:
Num abs(Num)(Num x) @safe pure nothrow
    if (is(typeof(Num.init >= 0)) && is(typeof(-Num.init)) &&
            !(is(Num* : const(ifloat*)) || is(Num* : const(idouble*))
                    || is(Num* : const(ireal*))))
{
    static if (isFloatingPoint!(Num))
        return fabs(x);
    else
        return x>=0 ? x : -x;
}
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 08:07:59 (UTC -08:00)