pbp'de ondalıklı sayı?

Başlatan mech, 25 Mart 2007, 23:05:12

mech

pbp ile bir değişkenin 3.4 veya 17/5 gibi değerler almasını nasıl sağlayabiliriz. Yani 3.4'ü 3 gibi bir tamsayı olarak algılamaması için ne yapabiliriz.Eğer pbp'de böyle birşey olmuyor ise proton veya diğer dillerde böyle olur mu? Teşekkürler...
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

sitenindelisi

Basic tabanlı diller için, proton ve microbasic direkt destek verir. PBP içinse yazılımla yapabilirsiniz. Pbp bölümünde örnek kod verilmişti hatırladığım kadarı ile.

teknikelektronikci

hocam sanirim ete hocanin ders notlarinda böle bir sey vardi hatta mod alma miydi neydi isterseniz bi bakin derim ama emin değilim bahsetiginiz olaymi diye kolay gelsin
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

ete

Pic Basic Proda 3,4 rakamını kullanmak yada gösterebilmek çin rakamı 34 olarak kullanmak yani 10 ile çarpılmış halini kullanmak durumundasınız.
Bu sayıyı PBP da 10 a bölerseniz elinize 3 kalır. Ancak ondalık 4'ü elde edebilmek için mod işlemini uygulamak gerekir. şöyle yapabilirsiniz;
ONDALIK= SAYI//10   (sayı değişkeninde 34 rakamı olduğunu varsayın)
Matematikte Mod işlemi bir sayının başka bir sayıya bölünmesinden sonra kalan miktarı hesaplamak için kullanılır. İşte size de tam bu lazım.
Dolayısıyla 34 MOD 10 = 4 rakamını bulursunuz. Bu komutun PBP karşılığı ise 34//10  dur. "//" işareti Mod alma işaretidir.

Virgülden sonra tek haneler için rakamınızı 10 ile çarpılmış halini , virgülden sonra 2 hane için rakamınızın 100 ile çarpılmış halini kullanın.
345 sayısını 3,45 olarak gösterebilmek için;
345/10 = Tam sayı olarak 3 rakamını verecektir.
345//100 = ondalık olarak 45 sayısını verecektir.
Gösterirken;
LCDOUT $fe,1,dec tamsayı,",",dec ondalık
şeklinde gösterebilirsiniz.

KOlay Gelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

mech

Çok teşekkürler ete hocam. Ancak ben bu ondalıklı sayıyı lcd'de göstermek değil de programımdaki fonksiyonlar içinde kullanmak istiyorum . Bunu nasıl yapabilirim...
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

sitenindelisi

Düzeltme yapmam geerkiyor bu durumda. Önyargı ile, LCD de kullanacağınız düşünerek cevap vermiştim.
İşlemlere sokmak için, PBP da kullanabilirsiniz ama sınırlı olarak ve kod sarfiyatı ile. Hatta bazı durumlarda değere bağlı olarak yapamayabilrsiniz. Sevgili ETE' ninde belirttiği gibi, noktadan sonraki basamak kadar üst haneye çıkmanız gerekir, fakat bazı durumlarda bu değer değişken büyüklüğünü aşar. Ör;
17,562*50 yapmak isterseniz, bunu 17562*50/1000 şeklinde işleme sokmanız gerekir.

Bunun yerine, sözdizilim ve komut desteği olarak büyük uyumluluk gösteren ve adapte olmanızın bir kaç saatinizi alacağı protona geçmenizi öneririm.
Float desteğinin yanında;
DWORD
GLCD( Grafik LCD)
Donanımsal kesme( PBP sadece komut işemi bitiikten sonra kesme kontrolü yaparken, proton gerçek zamanlı kontrol yapar)

vb bir çok hazır komut/özellik desteği sunar.
Optimizasyon içinde proton lehine ciddi fark vardır.

mech

teşekkürler. O zaman protona geçmenin zamanı geldi sanırım...
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır