Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

algoritma sorusu

Başlatan bulut_01, 09 Mayıs 2018, 10:40:53

bulut_01

iyi günler picproje ailesi küçük bir sorum olacaktı sizlere algoritmamda karşılaştırma yapıyorum ve dogru ise flag aktif ediyorum benim sorum bu karşılastırmaya hata oranı vermek istiyorum bunu nasıl yapabilirim?

örnek verecek olursam konumbilgisi değişkeni 1000 ile 1010 arası degerde olunca flag=1 yapmak istesem nasıl bir kod yazmam gerekecek?

if(konumbilgisi==1000){
flag=1;}
YENİLMEZ..

Murat Mert

S.A.

if((konumbilgisi>=1000)&&(konumbilgisi<=1010)) {flag=1;err=0;} else {err=1;}
gibi
Kolay gelsin.
mert07

bulut_01

eyw üstad çok makbule geçti saol 👍
YENİLMEZ..

Murat Mert

 Rica ederin Sn Kardeşim.
mert07

bulut_01

Alıntı yapılan: Murat Mert - 09 Mayıs 2018, 10:59:50S.A.

if((konumbilgisi>=1000)&&(konumbilgisi<=1010)) {flag=1;err=0;} else {err=1;}
gibi
Kolay gelsin.


burda 1000 ile 1010 arası dedim farklı bir durum var 1000 yerine değişken varsa yani anlık olarak değişiyorsa ne yapmam lazım?

if((konumbilgisi>=anlıkdeğişken)&&(konumbilgisi<=anlıkdeğişken))
YENİLMEZ..

devrecii

int esneklik=10;

if(((konumbilgisi+esneklik)>=anlıkdeğişken)&&((konumbilgisi-esneklik)<=anlıkdeğişken))

yada

if(((konumbilgisi+10)>=anlıkdeğişken)&&((konumbilgisi-10)<=anlıkdeğişken))



bulut_01

Alıntı yapılan: iboibo - 09 Mayıs 2018, 21:46:52int esneklik=10;

if(((konumbilgisi+esneklik)>=anlıkdeğişken)&&((konumbilgisi-esneklik)<=anlıkdeğişken))

yada

if(((konumbilgisi+10)>=anlıkdeğişken)&&((konumbilgisi-10)<=anlıkdeğişken))


burda anlıkdeğişken i 0 ile 65535 arasında değişiyor konumbilgisi örnek 100 diyelim anlıkdegisken 0 baslayıp 100 gelince calısıyor ama 0 altına inince 65535 oldugunda 100 büyük oldugu için yine kod calısıyor burda mantık hatası oluşuyor olmuyor kısacası.
YENİLMEZ..

devrecii

#7
int deger;

if(konumbilgisi>anlıkdeğişken) { deger=konumbilgisi-anlıkdeğişken; } else  { deger=anlıkdeğişken-konumbilgisi; }

if(deger<10 ) {   ok }

bulut_01

Alıntı yapılan: iboibo - 09 Mayıs 2018, 22:17:16int deger;

if(konumbilgisi>anlıkdeğişken) { deger=konumbilgisi-anlıkdeğişken; } else  { deger=anlıkdeğişken-konumbilgisi; }

if(deger<10 ) {   ok }

burda ne işlem yapıldıgınıda bir anlatsaydın üstad deger degişkenini neden ekledın ?
YENİLMEZ..

devrecii

İşini gördümü bu ? sayılar signed olasydı hiç gerek olmazdı.

Aradaki farkı alıyoruz .  Hangi sayı büyükse büykten küçük çıkarılıyor. Birbirine ne kadar yakın olduğu bulunuyor.

mesela sayı

konumbilgisi = 100   anlıkdeğişken= 655535

çkırdığımız zaman 655435 kalır ama esnelik 10dan küçükse ok diyoruz.

bulut_01

Alıntı yapılan: iboibo - 09 Mayıs 2018, 22:34:05İşini gördümü bu ? sayılar signed olasydı hiç gerek olmazdı.

Aradaki farkı alıyoruz .  Hangi sayı büyükse büykten küçük çıkarılıyor. Birbirine ne kadar yakın olduğu bulunuyor.

mesela sayı

konumbilgisi = 100   anlıkdeğişken= 655535

çkırdığımız zaman 655435 kalır ama esnelik 10dan küçükse ok diyoruz.

işimi görmedi neden

if(konumsol==konum){
flag=1;}

burda karşılastırma yapıyorum bu karsılastırma %5 gibi hata oranı vermek istiyorum cünkü konumsol=konum eşitliği saglandıgı anda kod baska yere dallanıyor ve flag 1 yapamıyor bazen onun için hata oranı eklemem lazım.
YENİLMEZ..

devrecii

#11
Konuyu tam anlayamadım , ama bu o işi yapıyor.

int yada uint16_t deger;

if(konumsol>konum) { deger=konumsol-konum; } else  { deger=konum-konumsol }

if(deger<10 ) {   ok }
if(deger==0) { atla eşit  }     

burda aynı  ilk konum ile son konumu kıysalıyorsun; %5 istiyorsan bir sayıyı 16 ya bölersen yaklaşık %6-7

esneklik=konum>>4;   burada konumun %6 sını alıyorsun   

if(deger<esneklik) {   ok }

bulut_01

iboibo ben derdimi anlatamadım.
YENİLMEZ..

Murat Mert

S.A.
 @bulut_01 sburada konum bilgileri ne kadar değişiyor.
mert07

bulut_01

#14
Alıntı yapılan: Murat Mert - 17 Mayıs 2018, 10:52:34S.A.
 @bulut_01 sburada konum bilgileri ne kadar değişiyor.
motor döndükce konumda artıyor veya azalıyor motorun yönüne göre.
konumsol ise sabit bir değer alıyor 1 kez sadece.
YENİLMEZ..