Arsip: Operator boolean kok selalu salah

 
user image
more 13 years ago

w11

saya bingung lagi tentang operator boolean ini, dah saya buka berulang2 kitab dasar delphi&kylix karya pak budi raharjo, sudah sesuai, saya buka helpnya juga sesuai, tapi knapa ya relasi sederhana berikut selalu opsi kedua (else)..........................yang dieksekusi, mohon koreksi para mpu.............................................................

procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3,s4,s5,s6:string;
f1,f2,f3,f4,f5:real;
begin
  f1:=strtofloat(copy(panel1.caption,1,6));
  s1:=floattostr(f1);
  panel2.caption:=s1;
  f2:=strtofloat(copy(edit1.Text,1,10));
  f3:=strtofloat(copy(edit1.Text,1,10));
  if ((f1>f2)(f2<f3)) then begin
    edit1.Color:=clred;
  end else begin
    edit1.Color:=clgreen; //pilihan kok selalu ini walau sudah f1>f2 dan f2<f3
  end;
end;
THXB4
user image
more 13 years ago

w11

ada yang kurang and; tapi tetep gak mau juga

procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3,s4,s5,s6:string;
f1,f2,f3,f4,f5:real;
begin
  f1:=strtofloat(copy(panel1.caption,1,6));
  s1:=floattostr(f1);
  panel2.caption:=s1;
  f2:=strtofloat(copy(edit1.Text,1,10));
  f3:=strtofloat(copy(edit1.Text,1,10));
  if ((f1>f2)and(f2<f3)) then begin
    edit1.Color:=clred;
  end else begin
    edit1.Color:=clgreen;//pilihan kok selalu ini walau sudah f1>f2 dan f2<f3
  end;
end;
user image
more 13 years ago

noo_r1r1n

coba yg operator 'and' itu diganti dengan 'or'

procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3,s4,s5,s6:string;
f1,f2,f3,f4,f5:real;
begin
  f1:=strtofloat(copy(panel1.caption,1,6));
  s1:=floattostr(f1);
  panel2.caption:=s1;
  f2:=strtofloat(copy(edit1.Text,1,10));
  f3:=strtofloat(copy(edit1.Text,1,10));
  if ((f1>f2) or (f2<f3)) then begin
    edit1.Color:=clred;
  end else begin
    edit1.Color:=clgreen;//pilihan kok selalu ini walau sudah f1>f2 dan f2<f3
  end;
end;
:)
user image
more 13 years ago

w11

yang mau aku pakai di aplikasi saya operator 'and', nantinya ada 4 vareabel dengan kondisi-kondisi yang harus dipenuhi dengan syarat sendiri2. :?
user image
more 13 years ago

alhass

Coba cek variable f2 dan f3 brp hasilnya, beda ataukah sama gan....
user image
more 13 years ago

ImanD

@w11: saya bingung lagi tentang operator boolean ini, dah saya buka berulang2 kitab dasar delphi&kylix karya pak budi raharjo, sudah sesuai, saya buka helpnya juga sesuai, tapi knapa ya relasi sederhana berikut selalu opsi kedua (else)..........................yang dieksekusi, mohon koreksi para mpu.............................................................

procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3,s4,s5,s6:string;
f1,f2,f3,f4,f5:real;
begin
  f1:=strtofloat(copy(panel1.caption,1,6));
  s1:=floattostr(f1);
  panel2.caption:=s1;
  f2:=strtofloat(copy(edit1.Text,1,10));
  f3:=strtofloat(copy(edit1.Text,1,10));
  if ((f1>f2) and (f2<f3)) then begin
    edit1.Color:=clred;
  end else begin
    edit1.Color:=clgreen; //pilihan kok selalu ini walau sudah f1>f2 dan f2<f3
  end;
end;
[/code:1:69732882fc]
THXB4
memang hasil akan selalu ke else, coba check dengan seksama: nilai pada f2 dan f3 pasti akan selalu sama

f2:=strtofloat(copy(edit1.Text,1,10));
f3:=strtofloat(copy(edit1.Text,1,10));
tetapi kamu paksaka pada seleksi kondisinya [code:1:69732882fc] if ((f1>f2) and (f2<f3)) then begin // lebih tepatnya (f2<f3)=> tidak akan terpenuhi syarat klo f2<f3 karena satu sumber // dan seleksi yg sama yg di hubungkan dengan operator and
notes: mungkin kamu salah logika atw salah copas, jangan salahkan help atw buku, di cek dulu secara seksama, ayo brow SEMANGAT!!!
user image
more 13 years ago

noo_r1r1n

ya, aku setuju dengan mas imanD. Berapapun nilai dari f1, hasilnya akan selalu ke "else". karena nilai f2 dan f3 itu pasti sama, sehingga utk kondisi "f2<f3" itu tidak akan tereksekusi :).
user image
more 13 years ago

w11

thx kang imam dan kang albas, bener salah ketik, mata setengah merem...................... kode tersebut saya aplikasikan di sini [code:1:5098a5f552] procedure TfUtama.XComm2Data(Sender: TObject; const Received: Cardinal); var data,n,m,o,p,k,k1,sf,sr,sw,sp: string; kk,kk1,kr,fw,rf,swr,ptt,cek,ccc,hf,hr,hswr,hptt:real; rsf,rsr,rsw,rsp:real; //link:boolean; begin XComm2.ReadString(data); BufferMi := BufferMi + data; if (Buffermi <>'') then begin K:=copy(BufferMi,1,10); k:=AnsiReplaceStr(k,#10,''); k1:=copy(k,1,3); // 3 string pertama untuk menandai vareabel kk1:=strtofloat(k1); kk:=strtofloat(k); panel12.Color:=Clgreen; panel12.Caption:='Micon Connected'; if (kk1=500) then begin fw:=kk; n:=floattostr(fw); n:=copy(n,4,10); hf:=StrToFloat(n); //hf nya disini frf.caption:=n; // displaynya end; if (kk1=400)then begin rf:=kk; m:=floattostr(rf); m:=copy(m,4,10); hr:=StrToFloat(m); //hr nya disini rff.caption:=m ; // displaynya end; if (kk1=300) then begin swr:=kk; o:=floattostr(swr); o:=copy(o,4,10); hswr:=StrToFloat(o); swrf.caption:=o; end; if (kk1=600) then begin ptt:=kk; p:=floattostr(ptt); p:=copy(p,4,10); hptt:=StrToFloat(p); pttf.caption:=p; end; if ((hf>100)and(hr<10)) then panel8.Color:=clgreen; {hasil ini tidak pernah terpenuhi, apa karena sama sumber ya, padahal di tampilan sudah sesuai angkanya semua, tapi logikanya gak pernah kena} end; end; If (Not ReadyStateMi) And (Pos(BatasStrMi, BufferMi) > 0) Then Begin ReadyStateMi := True; End; End; [/code:1:5098a5f552] begitu, apa salah metode ya apa salah logika, perasaan saya cek berulang sudah benar tuh..................................... terimakasih.
user image
more 13 years ago

ImanD

@w11 coba di cek dengan seksama:

.
.
if (kk1=500) then begin
  fw:=kk;
  n:=floattostr(fw);
  n:=copy(n,4,10);
  hf:=StrToFloat(n);                  //hf nya disini
  frf.caption:=n;                      // displaynya
end;
if (kk1=400)then begin
  rf:=kk;
  m:=floattostr(rf);
  m:=copy(m,4,10);
  hr:=StrToFloat(m);                 //hr nya disini
  rff.caption:=m ;                     // displaynya
end;
jika nilai kk1 adalah 500 maka hr tidak akan mempunyai nilai default kan?(nilai hr nya adalah random dan belum tentu 0, coba tebak berapa nilai u/ hr?):D dan jika jika nilai kk1 adalah 400 maka hf tidak akan mempunyai nilai default kan?(nilai hf ya adalah random dan belum tentu 0, coba tebak berapa nilai u/ hf?):D lebih parah lagi jika nilai kk1 adalah bukan 400 dan 500 semakin bingung u/ bisa menetukan nilai hf dan hr, akankah akan selalu masuk ke code di bawah ini :?: :?: :?:

if ((hf>100)and(hr<10)) then
  panel8.Color:=clgreen; {hasil ini tidak pernah terpenuhi, apa karena sama sumber ya,
                                      padahal   di tampilan sudah sesuai angkanya semua,
                                      tapi logikanya gak pernah kena}
ayo bro semangat terus, benerin algorithm sesuai method/logical yg dimaksud.
user image
more 13 years ago

w11

lah.............iya................. kalau metode semua data dikirim, saya bingung misahkannya, makanya dikirim satu per satu, kalau serial datanya dikirim semua bgmana ya untuk memisahkan data satu dengan yang lain, karena ada 4 sensor maka ada 4 blok yang dikirim, kalau dicampur jadi: data1data2data3data4 dimana panjang data masing2 adalah tidak sama dan berubah-ubah antara 1 karakter sampai 5 karakter, awalnya sudah saya kasih tanda sbg header untuk masing2 data, tp kebingungan misahkannya :? ...........................
more ...
  • Pages:
  • 1
  • 2
  • 3
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com