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


امتیاز موضوع:
  • 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
سلام آقا هادی خوبین ترکیه چه خبر طرف شما هم ریخته به هم؟ !!

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

کد 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 یا ... چند بار پشت سر هم باشه درست مثل یک عدد رمز
پاسخ
#5
سپاس آقا هادی
میشه درباره این String بیشتر توضیح بدین .. من همیشه باهاش مشکل داشتم

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

مثل : String * 13
پاسخ
#6
یکی از محدود تاپیک های کاربردی و آموزشی که من تا حالا دیدم همینه. این مشکل خیلی هاست

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

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

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

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


کد 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 باید دستور دیگه ای استفاده کنم یا نه !!
پاسخ
#8
قاعدتاً باید دستور ها به ترتیب اجرا بشه :-)
من قبقلا همچین کاری کردم..
البته یه نکته دیگه رو هم فراموش کردم بگم. اینم امتحان کن و نتیجه رو بگو.

تو باید دستورهای شرطیت توی هم باشه. نه اینکه جدا باشه
وقتی توی هم باشه، به ترتیب اجرا میشه

یعنی اینکه اگر شرط اول درست بود، END IF نگذار. برو سراغ شرط دوم. و همین روند تا آخر...
در آخر کار، END IF همه شرط ها رو پشت سرهم بگذار..

متوجه شدی؟ اینجوری بسکام شرط 1 رو اجرا میکنه، درصورتی میره خط بعد، که شرطش اجرا شده باشه. در ضمن فکر کنم باید else if هم بگذاری که اگر دکمه اشتباهی زده بشن یا به ترتیب نباشن، بپره به یه زیر برنامه دیگه. وگرنه قفل میکنه...
پاسخ
#9
سلام و ممنون
اینکارها رو انجام دادم باز اون ترتیبه رو رعایت نمی کرد
ببینین به زبان سی یه برنامه ای میذارم که اون کاری که میخوام رو میکنه و به ترتیب که کلیدها زده شدن کاری رو انجام میده :

کد php:
#include <mega8.h>
#include <delay.h>


void main(void)
{

PORTD=0x00;
DDRD=0x01;



while (
1)
     {
 if(
PINB.0==1){
   while(
1){
    if(
PINB.1==1){
    while(
1){
     if(
PINB.2==1){
      
PORTD.0=1;
      
delay_ms(20);
     };
    };
    }; 
   };
 };
delay_ms(35);
      };



اما من میخوام با بیسکام باشه ولی نمیدونم از چه دستوری استفاده کنم . متاسفانه if جواب نمیده!
پاسخ
#10
دقیقا همین دستور توی بسکام هست. while wend
پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

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

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

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

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