Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: Selçuk Şimşek - 26 Mayıs 2003, 01:29:20

Başlık: Dig komutu hk.
Gönderen: Selçuk Şimşek - 26 Mayıs 2003, 01:29:20
Sevgili arkadaşlar ilk yazımdan önce herkese selam.

Benim dig komutu ile başım dertte.

Sorun komutun anlatıldığı gibi çalışmaması.

sayi=245
sonuc=sayi DIG 1

sonuc=4 olmalı
ama olmuyor alakasız sonuclar veriyor.
Bunun kullanımı help te ve kitaplarda bu şekilde olmasına rağmen neden çalışmaz
benim onlar yüzler ya da birler basamağını rakam olarak seçme şansım başka ne şekilde olabilir.

Yardımcı olursanız sevinirim.

Selam sevgi ve saygıyla...
Başlık: Dig komutu hk.
Gönderen: birumher - 26 Mayıs 2003, 15:17:53
DIG komutunu denemedim ama daha uzun bir yöntem istersen şöyle yapabilirsin
Sayi = 254

1ler basmagı -> Sayı mod 10
10 lar basmagı -> (Sayı mod 100) div 10
100 ler basmağı (sayı mod 1000) div 100
1000 ler basmağı (sayı mod 10000) div 1000


diye gidiyor...
Aslında parantezlere de ihtiyacın yok kolay okunması açısından koyarsan iyi olur.
Picbasic te mod ve div komutları aynımıydı hatırlamıyorum ona göre değiştirebilirsin...
Başlık: Dig komutu hk.
Gönderen: Selçuk Şimşek - 26 Mayıs 2003, 21:34:13
mod ve div komutları hakkında picbasic pro komutları içinde hiçbir bilgi bulamadım.
Sanırım farklı bir programlama dilinden bahsediyoruz.
Bunları picbasic pro ile halletmeliyim.

İlginizden dolayı teşekküreder , yardımlarınızı beklerim..
Başlık: Dig komutu hk.
Gönderen: mhk - 27 Mayıs 2003, 00:10:56
Pic basicde arkadaşın yazdığı mod aritmetiği. Kısaca şöyle anlatayım. Örneğin 254 sayısında 2.digit olan 5 i bulmak istiyorsun. İlk önce 254 sayısını 10' böl.
değişken1=254/10 sonuç tam sayı cinsinden 25 çıkacaktır. değişken1=25 , Bu değerin 10 a bölümünden kalan sonuç 2.digit olan 5 sayısıdır. Yani; değişken2=değişken1//10 umarım yardımcı olmuşumdur. Hepinize iyi çalışmalar.
Başlık: Dig komutu hk.
Gönderen: birumher - 27 Mayıs 2003, 13:55:27
mhk arkadaşa teşekkürler
yani div yerine /  
mod yerine // kullanacaksın...

div : tamsayı bölme
mod : bölme sonucu kalanı bulma

örneğin 89 div 10 veya picbasicte 89 / 10  : 8 e eşittir

örneğin 89 mod 10 veya picbasicte 89 // 10  : 9 a eşittir
Başlık: Dig komutu hk.
Gönderen: Selçuk Şimşek - 28 Mayıs 2003, 07:56:13
Yardımlarınız için teşekkür.
Dig komutu editorden 16f877 seçildiğinde çalışıyor.
(ama 84a da çalışmıyor )
LCD ye yazdırıyorum.
İlginç tarafı lcd 16f84 e bağlı.
877 için yazılan kod proteusta simüle edildiğinde çalışıyor.
gerçekte deneme şansım olmadı (lcd çok pahalı)
böyle bir kod gerçekte çalışırmı?
Başlık: Dig komutu hk.
Gönderen: mhk - 28 Mayıs 2003, 22:16:40
Zaten sana yazdıklarımız bir şekilde uygulamış olduğumuz sonuçlardır. Çalışacağından emin olabilirsin. Pic basic pro da sana daha önce yazmış olduğum açıklamayı bir daha bak istersen. Kolay gelsin.
Başlık: SELAM ARKADASLAR
Gönderen: asm_Coder - 23 Eylül 2003, 10:41:07
picbasicplus 1.24 kullanıyorum.16f877a ile grafik lcd uygulaması yapıyorum.ancak kod boutu yeterli olmadığı için 18f452 ya geçtim.dig komutunu 16f877 için kullanıyorum iyi çalışıyor ama aynı programı 18f452 için kullandığımda

örneğin 27458 sayısı  ekranda 88888 olarak görünüyor.sayının son hanesini değiştirdiğimde yani 8 i 6 yaptığımda bu sefer 66666 görünüyor. yani sayını birler basamağı ne ise ekrana onu yazıyor.aynı programı 16f877için derlediğimde ekranda doğru sonuç yani 27458 sayısı görünüyor.

neden olabilir arkadaşlar :(
Başlık: Dig komutu hk.
Gönderen: mhk - 24 Eylül 2003, 20:45:11
Sevgili btiger programda sorun olabilir. Birde yukarda yazdığımız mod aritmetiğini kullan.
Başlık: Ynt: Dig komutu hk.
Gönderen: tekniker_murat - 02 Kasım 2019, 02:24:19
Alıntı yapılan: birumher - 26 Mayıs 2003, 15:17:53DIG komutunu denemedim ama daha uzun bir yöntem istersen şöyle yapabilirsin
Sayi = 254

1ler basmagı -> Sayı mod 10
10 lar basmagı -> (Sayı mod 100) div 10
100 ler basmağı (sayı mod 1000) div 100
1000 ler basmağı (sayı mod 10000) div 1000


diye gidiyor...
Aslında parantezlere de ihtiyacın yok kolay okunması açısından koyarsan iyi olur.
Picbasic te mod ve div komutları aynımıydı hatırlamıyorum ona göre değiştirebilirsin...

ben bu işlemi mikroc de nasıl yapabilirim acaba ve 8 haneli bir ekranda görmek istiyorum
Başlık: Ynt: Dig komutu hk.
Gönderen: ete - 02 Kasım 2019, 07:15:35
En kolay yolu şöyle,
254/100=2  Bu yüzler basamağı "Sayı/100=yuzler basamağı"
(254-(2*100))/10=5 buda onlar basamağı "(Sayı-(yuzler*100))/10=onlar basamağı"
(254-(2*100)-(5*10))=4 buda birler basamağı  "Sayı-(yuzler*100)-(onlar*10)=birler basamağı"

Mod alma hemen her derleyicide mevcut aslında  Mod işlemi ile yapılmak istenirse;
Birler=254 Mod 10
Onlar =(254 Mod 100)/10
Yuzler=254/100
Değişkenler unsigned ve INT cinsinden olmalı.

Ete
Başlık: Ynt: Dig komutu hk.
Gönderen: mehmet - 02 Kasım 2019, 13:50:52
binler = (sayi % 10000) / 1000;
yuzler = (sayi % 1000)  / 100;
onlar  = (sayi % 100)   / 10;
birler = (sayi % 10)    / 1;