PBP 'de ondalık karşılaştırma yapamıyorum

Başlatan desperado17, 27 Şubat 2012, 14:57:48

desperado17

mesela
Basla:
    if ENTER=0 then
        while ENTER=0
        wend
        GOSUB AYAR
    ELSE
        GOSUB SENSOROKU
        LCDOUT $FE,128,"SICAKLIK:",Sign,DEC2 ISI,".",DEC1 (Float),0,"C"
        LCDOUT $FE,192,"SET:",DEC2 SET,".",DEC1 SET_V       
    endIF
GOTO BASLA

burada gördügünüz gibi ısı değeri ve virgülden sonrası ayrı değişkenlerde ben bu değerleri yan yana yazıp gene ondalıklı bir sayıyla nasıl karşılaştırırım. Karşılaştırma yapmayı biliyorum ama bu biraz karışık işin içinden çıkamadım :)

erdogan2734

Virdüllü durumlarda karşılaştırmada bazen sıkıntı çıkabilyor. Virgüllü bölümü on la yada yüzle çarpıp karşılaştıma yap daha sonra bulduğun sonu bölerek yazmayı dene....
Bildiğim tek şey henüz hiç bir şey bilmediğim...

ibrsel

Ondalıklı sayın A=3,4 olsun. Karşılaştırma yapacağın sayı B=12 olsun.
Karşılaştırma yaparken A yı tam sayıya çevirmelisin.
A=A*10. Bu işlemin sonunda A=34 olur.Tabi bu arada eşitliğin değişmemesi için B sayınıda 10 ile çarpıp o şekilde karşılaştırma yapabilirsin.B=B*10; B=120

IF A>B THEN .....

Karşılaştırma işleminin sonunda sayıları yine genişletme yaptığın değer (10) a bölerek eski değerlerine döndürmelisin.
Bu konuları ETE hocamızın Basic derslerinden çalışabilirsin.Daha iyi anlayacağına eminim..

ete

Arkadaşlar açıklamışlar nasıl yapılacağını ben yalnızca bir şey hatırlatacağım.
O sayının aslı daima virgülsüzdür. Sonradan tam sayı ve ondalık ayrılmıştır. Muhtemelen program içinde sayının elde edildiği yerde virgülsüz hali mevcuttur. Karşılaştırmanda o sayıyı kullanabilirsin.

Sayılarda genel kural şudur. Bir eşitiliğin iki tarafınıda aynı sayı ile çarparsan eşitlik bozulmaz.
Bu kuraldan programlarda şöyle yararlanırız.;
3,4 ile 12 yi karşılaştırır isek, 3,4<12 dir. Bu ifadeyi şöyle yazarsak eşitlik veya kaşılaştırma bozulmaz. (3,4*10)<12*10 yani 34<120
O halde karşılaştrıma işlemlerinde bir tarafı virgülden kurtarırken diğer tarafada aynı işlemi uygulamak gerekir. Aksi halde eşitlik veya denge bozulacaktır.

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