P

Pic Basic(Pro) Hesap Makinesi takıldığım yerler

Başlatan ptna, 28 Temmuz 2014, 11:58:14

ptna

Uzun zamandır forumda konu açıp yorum yapmıyorum kendimi geliştirdim ete abi öyle demişti ben bir saat yapmak için kolları sıvadım :D.SMD pic kullanacağım kol saati çünkü dijital.Ve saatte hesap makinesi var.Hesap makinesini normal olarak şöyle kodladık:
HESAPM:
CLEAR
LCDOUT $FE,$80,"Bir sayı ve islem seciniz"
IF TUS4=0 THEN
SAYI1=3
LCDOUT $FE,1,$80,#SAYI1
IF TUS5=0 THEN
SAYI1=6
LCDOUT $FE,1,$80,#SAYI1
IF TUS6=0 THEN
SAYI1=9
LCDOUT $FE,1,$80,#SAYI1
ENDIF
ENDIF
ENDIF
GOTO HESAPM2

HESAPM2:
IF TUS2=0 THEN
ISLEM=$10
LCDOUT $FE,$80,#SAYI1,#ISLEM
IF TUS3=0 THEN
ISLEM=$20
LCDOUT $FE,$80,#SAYI1,#ISLEM
IF TUS4=0 THEN
ISLEM=$40
LCDOUT $FE,$80,#SAYI1,#ISLEM
IF TUS5=0 THEN
ISLEM=$80
LCDOUT $FE,$80,#SAYI1,#ISLEM
ENDIF
ENDIF
ENDIF
ENDIF
GOTO SAYI3
END

SAYI3:
IF TUS4=0 THEN
SAYI2=3
LCDOUT $FE,1,$80,#SAYI1,#SAYI2
IF TUS5=0 THEN
SAYI2=6
LCDOUT $FE,1,$80,#SAYI1,#SAYI2
IF TUS6=0 THEN
SAYI2=9
LCDOUT $FE,1,$80,#SAYI1,#SAYI2
ENDIF
ENDIF
ENDIF
GOTO SONUC2
END

SONUC2:
IF ISLEM=$10 THEN
SONUC=SAYI1+SAYI2
IF ISLEM=$20 THEN
SONUC=SAYI1-SAYI2
IF ISLEM=$40 THEN
SONUC=SAYI1*SAYI2
IF ISLEM=$80 THEN
SONUC=SAYI1/SAYI2
ENDIF
ENDIF
ENDIF
ENDIF
LCDOUT $FE,1,$80,#SAYI1,#ISLEM,#SAYI2,#SONUC
IF TUS1=0 OR TUS2=0 THEN BASLA


şimdi şöyle 3-6-9 rakamları var(deneme amaçlı) kodlarda şöyle bir ibare var:IF TUS2=0 THEN ISLEM=$10 burada şöyle yaptım eğer işlem = $10 ise toplama yapacak.20 ise çıkarma vs... neyse sorun bu değil.sorun:
3+6 gibi toplamaları yapıyor.ama ben 3 ve ardından 6 ya basınca sayı 36 olsun istiyorum bu mantıken and ve if komutlarıyla yapılır ama 0'dan 9'a 10 rakam her biri için 10 rakam?100 rakam?hepsinin kodu kod sınırını aşıyor.pic basic ile yapılabilir mİ?yapılamıyorsa c ve assembly araştırmak zorunda kalacağım?yardım etmenizi bekliyorum herkesten?nasıl 2 basamaklı sayı dizisi oluşturabilirim?pic basic pro..

ete

10 tabanına göre sayı nasıl oluşuyor hiç düşündünmü?.
Adım adım incelemek çözüme yardımcı olacaktır. 36 sayısı için 30+6 diyebilirmiyiz? Elbette diyebiliriz.
Bu sayı önce 3 sonra 6 tuşlarına basılarak elde ediliyor. Bu durumda SAYI=SAYI*10+TUS dersek istediğimizi kolaylıkla elde edebiliriz. Her basılan tus için formülü çalıştırmak gerekecektir.
Başlangıçta SAYI=0 dır. İlk tusa basıldığında Tus=3 olacaktır. SAYI=0*10+3=3 yani sayı=3 oldu.
İkinci tus olarak tus=6 ya basıldı ve sayı ise , SAYI=3*10+6=30+6=36 olacaktır.
İşte bu kadar bir formül ile iş çözülmüş oluyor böylece.

Ete

ptna

Mesajınızı internet problmi sebebiyle geç aldım mantı için sağolun.Kodda sadece tekli sayı yazma hatası var.yani sayıx10 dersem normal rakamları tek başına kullanamam ama bunu düşünürsem aşabileceğimi düşünüyorum :D.saolun.

ete

Yine mantık hatası yapıyorsun.
Başlangıçta sayı değeri sıfırdır. Bu durumda ilk girdiğin rakamla birlikte sayı değeri de değişir.
İlk tus 5 olsun.
Sayı=0*10+5=0+5=5 olur. Bu da senin teorini çürütütor öyle değilmi.

Ete

Powered by EzPortal