avatar_inventor

proton-float ve eprom

Başlatan inventor, 20 Ocak 2013, 15:08:33

ete

O zaman Else den sonra yer alan formülü direk yaz ve if satırlarını endif e kadar sil

Ete

Hattuşa

slm ete hocam;
yazmış olduğunuz BAK=(BAK/10)*10+((BAK//10)/5)*10 işleminin açılımını anlayamadım, anladığım kadarıyla;
elimdeki bak değeri adc ortalamasının 100 le çarpımı sonucu virgülden kurtulmuş hali bu değere göre (BAK/10)*10
kısım virgülden önceki değer, ((BAK//10)/5)*10 kısım ise de virgülden sonraki değer ama bu kısmı 5 e bölüp 10 la çarpıyoruz sanırım. tam anlayamadım.
ayrıca hocam bahsettiğiniz şekilde denedim hassasiyet 100 gram çıktı. yani 67,75 ise sonuc 67,80 olarak veriyor. bense 67,75 örneğinde virgülden sonraki 2. hane 5 ten küçükse 0, 5 e eşitse 5, 5 ten büyükse 1. haneyi bir artırarak 0 göstermesini kısaca 5 lik dilim olmasını istiyordum. bunun olabilirliği varmıdır?

ete

#32
Hem verdiğin örneği yapalım hemde formülün ne iş yaptığını açıklayayım.
BAK=6775 bunu BAK=(BAK/10)*10+((BAK//10)/5)*10  formülüne uygulayalım.
BAK=(BAK/10)*10=(6775/10)*10=6770  Burada sayıyı 10 a bölüp tekrar 10 ile çarpınca küsüratını atmış olduk.
(6775//5)/5*10= 10  6775 sayısına Mod 5 işlemi uyguladık (5 e bölüp kalanı bulduk) onu 5 e bölüp 5in katı olup olmadığını tespit ettik. Bunu adım adım şöyle yapalım. 6775//5=5,  5/5=1   , 1*10=10
Sonuç 6770+10=6780 5 ve üzerini tam sayıya tamamlamış oldu. Şayet 5 ler olduğu gibi kalsın diyorsan, 1*10 yerine 1*5 yapmak gerekir. Bu durumda Sonuç 6770+5=6775 olarak kendini bulmuş olur. Ancak 5 den büyüklerde yine sorun çıkar sanırım.
If kullanmadan yine olmayacak herhalde.

Ete

Hattuşa

ete hocam verdiğiniz bilgiler için tşk ederim. sizden aldığım bilgiler neticesi yazılımın son hali;
BaK =oLcUm *100
OnDa =BaK /100
bIr =BaK //100
BaK=(BaK/10)*10+((bIr//10)/5)*5
]

yaparak çözdüm. çözümüm sonucu 50 grama kadar olan hassasiyet elde edilmiş oldu. aslında kodda 50 gramdan yukarısını üste doğru yuvarlaması lazımdı ama o şekilde benim işime yaramadığı için bu şekildeki çözüm tam istediğim gibi oldu. yani 50 gramın altını 0, üstünü de 50 olarak gösteriyor.

Powered by EzPortal