با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل برنامه and
#1
سلام دوستان
من مشکلی دارم با برنامه بیسکام

کد php:
If Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
xxxxxxxxx
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
yyyyyyyyyyyy
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
zzzzzzzzzzzzzz
End 
If 

این برنامه بخوبی کارمیکنه
البته بجای x ,y,z دستوراتی نوشته میشه
حالا مشکلم اینجاست که میخوام این سه تا دستور وقتی پشت سر هم دارای ارزش صحیح بودن یه دستوری رو اجرا کنه

چه تغییری بدم؟
پاسخ
#2
(4 تير 1392، 06:37 عصر)MEGATEK نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام دوستان
من مشکلی دارم با برنامه بیسکام

کد php:
If Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
xxxxxxxxx
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
yyyyyyyyyyyy
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
zzzzzzzzzzzzzz
End 
If 

این برنامه بخوبی کارمیکنه
البته بجای x ,y,z دستوراتی نوشته میشه
حالا مشکلم اینجاست که میخوام این سه تا دستور وقتی پشت سر هم دارای ارزش صحیح بودن یه دستوری رو اجرا کنه

چه تغییری بدم؟
میشه واضع تر بگی و یک مثال هم بزنی
منظورت از ارزش صحیح چیه

دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
برای دسترسی به بخش های پشتیبانی دوره ها در انجمن جدید یک بار از حساب اصلی wle.ir خارج و مجددا وارد شوید

سال نو همگی مبارک
پاسخ
#3
منظورم اینه که وقتی سه تا if باهم انجام شدن و درست بودن یه دستوری رو اجرا کنه
پاسخ
#4
(4 تير 1392، 06:37 عصر)MEGATEK نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام دوستان
من مشکلی دارم با برنامه بیسکام

کد php:
If Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
xxxxxxxxx
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
yyyyyyyyyyyy
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
zzzzzzzzzzzzzz
End 
If 

این برنامه بخوبی کارمیکنه
البته بجای x ,y,z دستوراتی نوشته میشه
حالا مشکلم اینجاست که میخوام این سه تا دستور وقتی پشت سر هم دارای ارزش صحیح بودن یه دستوری رو اجرا کنه

چه تغییری بدم؟

اسسلامون علیکم و رحمت ا...

من زیاد از بسکام سر در نمیارم اما برنامه نویسی یه نمه سرم میشه: شرط های IF دوم و سوم یکیه این یعنی مشکل داره برنامت Dodgy

اول اونو یه تصحیح بفرما بعد یکم بیشتر توضیح بده تا بتونیم کمک کنیم, ضمنا فک کنم کد نویسیو بلدی, توضیح بده که تو الگوریتم کمکت کنیم بقیشو خودت میتونی Shy

(7 تير 1392، 02:33 صبح)MEGATEK نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
منظورم اینه که وقتی سه تا if باهم انجام شدن و درست بودن یه دستوری رو اجرا کنه

آقا دوباره سلام Idea

سه تا IF که با هم اجرا نمیشه که, یعنی منطق IF این شکلی نیست. IF یعنی اگه شرط هر کدوم درست بود اون اجرا شه, در یه زمان که مثلا Pina.0 هم 1 و هم 0 نمیشه که Blush حالا شایدم منظورتو من درست متوجه نشدم.


حالا میرسیم به مشکلت, فرض و میزاریم که میخوای همونطور که گفتی هر وقت دستورهای xxxxxxxxx و yyyyyyyyyyyy و zzzzzzzzzzzzzz پشت سر هم اجرا شد یه دسور اجرا شه. واسه این کار یه راهش اینه که سه تا متغییر معرفی کنی, بعد هر کدومو تو IF هات بیای مقدارشو مساوی 1 کنی. بعدا هم کنترل کنی اگه هر سه تاش 1 بود یعنی هر سه تا IFت اجرا شدن اون دستوری که مد نظرت رو اجرا کنه :D

و من ا... التوفیق بیا خبر بده که چیکار کردی Exclamation
support.wle.ir
پاسخ
#5
سلام آقا هادی خوبین ترکیه چه خبر طرف شما هم ریخته به هم؟ !!

راستش من این کار رو کردم :

کد php:
Dim A As Bit
Dim B 
As Bit
Dim C 
As Bit


Do

If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Xxxx
1
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
Yyyy
1
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Zzzz
1
End 
If



If 
And And 1 Then
Wwww
End 
If

Loop 

تا حدودی مشکلم حل شد
اما مشکل تازه اینه که ترتیب نداره

من میخوام ترتیب داشته باشه

یعنی اگه هر کدوم از دستورات اول رو بعنوان یه شماره در نظر بگیریم مثل قفل رمزی و ...

میخوام وقتی مثلا دستورات اول پشت سر هم درست اجرا شدن بعدش یه کاری بکنه

همچنین باید بگم که این if ها خیلی زیادتر از ایناست . اینا رو بعنوان مثال گفتم
در برنامه هم ممکنه مثلا عدد x یا ... چند بار پشت سر هم باشه درست مثل یک عدد رمز
پاسخ
#6
الحمدالله طرف ما خبری نیست فعلا Rolleyes

آقا پس بجای این کارا یه String تعریف کن. بعد به IF هات شماره بده, مثلا تو IF اولی یعنی xxxxxx ها به آخر Stringت ( سمت راست ) 1 اضافه کنه, IF دومی 2 اضافه کنه و الی اخر...

بالاخره بعد از اجرای چند تا IF یه عدد ( البته String ) بدست میاد مثلا 11123231

( این یعنی IF اول اجرا شد, IF اول اجرا شد, IF اول اجرا شد, IF دوم اجرا شد,IF سوم اجرا شد,IF دوم اجرا شد,IF سوم اجرا شد, IF اول اجرا شد )

حالا نسبت به اون عدد یه کاری انجام بده حالا اونشو خودت تصمیم بگیر, میتونی از دستور Select Case استفاده کنی. ( تبدیل String به Integer یادت نره )

:D

امیدوارم تونسته باشم منظورمو خوب برسونم - ضمنا چون دقیق نمیدونم دقیقا میخوای چیکار کنی این راهو پیشنهاد دادم Rolleyes
support.wle.ir
پاسخ
#7
سپاس آقا هادی
میشه درباره این String بیشتر توضیح بدین .. من همیشه باهاش مشکل داشتم

آخه توی بیسکام String ضربدر یک عددی میشه

مثل : String * 13
پاسخ
#8
(7 تير 1392، 09:07 عصر)MEGATEK نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سپاس آقا هادی
میشه درباره این String بیشتر توضیح بدین .. من همیشه باهاش مشکل داشتم

آخه توی بیسکام String ضربدر یک عددی میشه

مثل : String * 13

آقا سلام شرمنده دیر شد. من از تو تلفن نوشتتو دیدم گفتم برم پای کامپیوتر جوابتو میدم. پاک فراموش کردم شرمنده Blush

متغیر نوع String ( رشته ) متغیریه که میشه توش کارکترهای غیر عددی هم نوشت مثل اسم خودت یا چیزهای دیگه Rolleyes

اون عدد بعد از ضربدر هم عددیه که باهاش طول رشته رو تعیین میکنی Rolleyes


برای مثال این کد یه متغییر به اسم strHadi از نوع String به طول حداکثر 10 کاراکتر رو تعریف میکنه Idea
کد:
Dim strHadi As String * 10
support.wle.ir
پاسخ
#9
یکی از محدود تاپیک های کاربردی و آموزشی که من تا حالا دیدم همینه. این مشکل خیلی هاست

میتونی اینکارو بکنی
شما یه متغیر آرایه ای (array) تعریف کن. مثلا
code(20) k که یعنی متغیر به نام code دارای 20 آرایه هست
*** اون k بالا نوشتم چیز مهمی نیست. برای اینه که پرانتز درست بشه.
حالا باید به ترتیب دلخواه مقدار آرایه ای بدی. یعنی:

code(1) = 13
code(2) = 17
code(3) = 9
code(4) = 1
.
.
.
code(20) = 89
اینجوری کد ها باید هم به ترتیب و هم صحیح نوشته بشوند تا برنامه اجرا بشه

موفق باشی :-)
پاسخ
#10
سلام
ممنون آقا هادی
همچنین ممنون آقای تسلا که وقت گذاشتین و از اول خوندین

زیاد متوجه نشدم اما یه برنامه مثالی نوشتم ببینین درسته؟


کد php:
$regfile "m32def.dat"
$crystal 8000000

Dim A
(10) As Byte

Config Porta 
Input

Config Portd.7 
Output


Do

If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Xxxx
A
(1) = 1
End 
If


If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
Xxxx
A
(2) = 2
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Xxxx
A
(3) = 3
End 
If



If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
Xxxx
A
(4) = 4
End 
If


If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Xxxx
A
(5) = 5
End 
If


If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
Xxxx
A
(6) = 6
End 
If


If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Xxxx
A
(7) = 7
End 
If


If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
Xxxx
A
(8) = 8
End 
If

If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 0 Then
Xxxx
A
(9) = 9
End 
If


If 
Pina.0 And Pina.1 And Pina.2 And Pina.3 1 Then
Xxxx
A
(10) = 10
End 
If


If 
A(1) = And A(2) = And A(3) = And A(4) = 4 Then
Portd.7 
1
End 
If

Loop 


اول بگم که اون xxxx ها مهم نیست و هر دستوری میتونه باشه ..

کاری که من میخوام این برنامه واسم انجام بده اینه که مثلا :

کد php:
A(1) = And A(2) = And A(3) = And A(4) = 

وقتی این چهار دستور درست بودن یکاری واسم انجام بده

فقط میخوام که به ترتیب باشه یعنی اگه مثلا بین اونا یه کلید دیگه ای زده شد مثل A(7) =7 دیگه این دستورات اجرانشه

همچنین خود اون A(1) = 1 And A(2) = 2 And A(3) = 3 And A(4) = 4 ها هم باید به ترتیب زده بشن تا یه کاری انجام بشه

این برنامه رو که اجرا کردم ترتیبها رو اصلا رعایت نمیکنه

نمیدونم دیگه غیر از if باید دستور دیگه ای استفاده کنم یا نه !!
پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: