ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 17

موضوع: ماشين حساب

  1. #1
    2005/11/30
    39
    0

    ماشين حساب

    سلام دوستان
    من مي خوام برنامه يك ماشين حساب را بنويسم كه فقط
    4 عمل اصلي را انجام ميده
    مشكل اصلي سر اينكه نمي دونم چطور بايد چند عدد را پشت سر هم بگيرم
    و ارزش هر عدد هم حفظ بشه (منظورم دهگان صدگان و ...است)
  2. #2
    2007/11/28
    1,746
    22

    پاسخ : ماشين حساب

    سلام
    من برنامه اون رو با Basic می نویسم به این صورت:
    $regfile "m16def.dat"
    $crystal = 8000000
    Config Kbd = Portd , Debounce = 150 , Delay = 200
    Dim Keypad As Byte
    dim row as word
    do
    Keypad = Getkbd()
    Keypad = Lookup(keypad , Key)
    Select Case Keypad
    Case Is < 10:
    row=row*10
    row=row+keypad
    end select
    loop
    end
    Key:
    Data 1 , 2 , 3 , 12 , 4 , 5 , 6 , 13 , 7 , 8 , 9 , 14 , 10 , 0 , 11 , 15 , 16

    من در این برنامه یک متغیر دارم به نام Row که 16 بیتی است مقدار اولیه آن صفر است شما وقتی عددی از صفحه کلید فشار بدید میره معادل آن کلید رو از جدول Data برمیداره وداخل متغیر keypad که هشت بیتی میریزه بعد میاد داخل Select case و می بینه اگر شما اعداد 0 تا 9 رو فشار دادید مقدار row رو ضربدر 10 میکنه و با مقدار keypad جمع می کنه و داخل متغیر row میریزه. شما با این کار یکان دهگان و... رو دارید.
    البته باید به یک نکته توجه کنید و اون متغیر Row است که از نوع word یعنی 16 بیتی تعریف شده و حداکثر عددی که می تونه داشته باشه 65536 است. پس شما حداکثر تا 5 رقم می تونید داشته باشید. اگه بیشتر خواستید می تونید می تونید متغییر تون رو از نوع long تعریف کنید یا اعداد رو تبدیل به رشته کنید.

    موفق باشی




  3. #3
    2005/11/30
    39
    0

    پاسخ : ماشين حساب

    سلام

    آقاي Ahp_online ممنون از عنايتي كه داشتيد

    مي خواستم بدونم در جدول look up اگه يك عدد مانند 11 را نخواهيم قرار بديم بايد چي جاش بنويسيم تا نظم جدول بهم نخوره
  4. #4
    2007/11/28
    1,746
    22

    پاسخ : ماشين حساب

    سلام
    دوست عزیز شما جدول lookup رو هرجوری که دلتون می خواد می تونی تعریف کنی ولی تو قسمت select case شما وقتی case هاتون رو تعریف می کنید می بایست اون کدی که معدل کلید صفحه کلید تون هست رو تعریف کنید.
    مثلا شما بجای عدد 11 می زارید 22 اگه عدد 11 قبلی شما معدل کلید Enter است حالا عدد 22 معدل کلید Enter است.
    پس فرقی نمی کنه که شما جدول lookup رو چجوری تعریف کنید.

    موفق باشید :nice:
  5. #5
    2007/10/05
    1,643
    3

    پاسخ : ماشين حساب

    جدول لوك پ يه جور جدول تناسبه.
    هميشه اولين مقدار با انديس صفر نسبت داده ميشه و به همين ترتيب يكي به اونا زياد ميشه.
    مثلا تو اين شكل:

    به انديس صفر عدد بيست و به انديس هشت عدد صد نسبت داده شده.
    چون دريافت كليد از صفحه كليد كدي بين 0 تا 16 رو برمي گردونه( 16 يعني كليدي فشار داده نشده) پس به هر كدوم از اين كليد ها ميشه عددي نسبت داد:
    اعدادي كه به صورت اوليه از صفحه كليد دريافت ميشه اين طوريه:

    حالا اگه بخواي مثلا يه همچين شكلي داشته باشي:

    بايد به عنوان مثال بعد از فشردن عدد يك( تو شكل دومي) ، ميكرو عدد صفر رو دريافت ميكنه و بعد توسط جدول لوك پ زير اونو تبديل به يك ميكني.
    اگه مثلا خواستي + رو تعريف كني ميگي هر وقت كليد 10 زده شد عمليات مربوطه انجام بشه(چون بعد از تبديل تو جدول لوك پ زير ، عدد 10 بهش نسبت داده ميشه).

    Data 1,2,3,10,4,5,6,11,7,8,9,12,13,0,14,15,16
  6. #6
    2005/11/30
    39
    0

    پاسخ : ماشين حساب

    سلام دوستان
    ممنون از كمكتون
    من يك برنامه نوشتم كه عمل جمع را انجام بده ولي انجام نمي ده
    من برنامه را گذاشتم اگه ميشه كمك كنيد
    تو اين برنامه قرار با زدن كليد 12 عمل جمع انجام بشه
    با زدن كليد 11 نتيجه نمايش داده بشه


    Dim Keypad As Byte
    Dim A(2) As Word
    Deflcdchar 0 , 32 , 4 , 4 , 4 , 31 , 4 , 4 , 4 ' replace ? with number (0-7)
    A(1) = 0
    A(2) = 0
    Dim Sum As Long


    Main:

    Do


    Keypad = Getkbd()
    Keypad = Lookup(keypad , Key)

    If Keypad < 10 Then
    A(1) = A(1) * 10
    A(1) = Keypad + A(1)
    Cls : Home : Lcd A(1)
    Waitms 100
    Goto Main
    End If

    If Keypad = 11 Then Return

    If Keypad = 12 Then
    Locate 2 , 4 : Lcd Chr(0)
    Waitms 100
    A(2) = A(1)
    A(1) = 0
    Gosub Main
    Sum = A(1) + A(2)
    Cls : Home : Lcd "SUM is " ; Sum
    Waitms 200
    End If


    Loop

    Key:
    Data 1 , 2 , 3 , 12 , 4 , 5 , 6 , 13 , 7 , 8 , 9 , 14 , 10 , 0 , 11 , 15
  7. #7
    2007/06/28
    2,405
    17

    پاسخ : ماشين حساب

    من با CodeVision برنامشو نوشتم اگه به دردت می خوره بذارم توی سایت

    [hr]عید نوروز نمایانگر فرهنگ و تمدن اصیل ایرانی بر تمامی ایرانیان گرامی باد
    دوستان! مدتی کمتر به سایت میام ..
  8. #8
    2007/10/05
    1,643
    3

    پاسخ : ماشين حساب

    يه چيزي رو فراموش كردي. جدول لوك پت بايد 17 تا ديتا داشته باشه. 16 تا براي كليدا( كه نوشتي) و هفدهمي كه بايد براي فشرده نشدن كليد در نظر بگيري.
    يه عدد 16 تو انتهاي لوك پت اضافه كن.

    return رو هم نبايد بنويسي. اگه مي خواي نتيجه نشون داده بشه بايد مجموع رو حساب كني و اون رو نمايش بدي
  9. #9
    2005/11/30
    39
    0

    پاسخ : ماشين حساب

    نقل قول نوشته اصلی توسط حسام الدین
    من با CodeVision برنامشو نوشتم اگه به دردت می خوره بذارم توی سایت

    [hr]عید نوروز نمایانگر فرهنگ و تمدن اصیل ایرانی بر تمامی ایرانیان گرامی باد
    سلام
    والا كد ويژن بلد نيستم ولي اگه با كمي توضيح قرار بدين شايد چيزي متوجه شدم
    بازم ممنون
  10. #10
    2005/11/30
    39
    0

    پاسخ : ماشين حساب

    نقل قول نوشته اصلی توسط حامد جعفری
    يه چيزي رو فراموش كردي. جدول لوك پت بايد 17 تا ديتا داشته باشه. 16 تا براي كليدا( كه نوشتي) و هفدهمي كه بايد براي فشرده نشدن كليد در نظر بگيري.
    يه عدد 16 تو انتهاي لوك پت اضافه كن.

    return رو هم نبايد بنويسي. اگه مي خواي نتيجه نشون داده بشه بايد مجموع رو حساب كني و اون رو نمايش بدي
    سلام اوامر شما رو انجام دادم ولي بازم جواب نگرفتم
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 17

موضوعات مشابه

  1. استفاده از پرينتر ماشين حساب
    توسط MECA-1385 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2016/02/25, 11:17
  2. مشکل در ماشين حساب
    توسط tamjid در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2014/05/06, 21:07
  3. مشکل من در ماشين حساب
    توسط ehsan2774 در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2013/04/18, 09:47
  4. ماشين حساب
    توسط هادي عبدي در انجمن میکروکنترلرهای PIC
    پاسخ: 9
    آخرين نوشته: 2009/12/14, 22:10
  5. ماشين حساب با c
    توسط general در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2008/10/20, 02:09

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •