اطلاعیه

Collapse
No announcement yet.

ماشین حساب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ماشین حساب

    من یه برنامه ی ماشین حساب می خوام با bascame
    فقط چهار عمل اصلی انجام بده
    ممنون

    #2
    پاسخ : ماشین حساب

    من دارم ولی نمیزارم چون باید خودتون هم یه تلاشی بکنین
    شما شروع کنین هر جاش مشکل داشتین چشم کمک میکنیم
    این سومین تاپیکی هس که میبینم شما گزاشتین و بدون هیچ تلاشی فقط برنامه میخواین.(البته ببخشید)
    علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

    دیدگاه


      #3
      پاسخ : ماشین حساب

      ببینید من یه چیزای نوشتم
      قسمت تفریق مشکل دارم :sad:
      من تازه دارم یاد میگیرم
      دانشجو هم نیستم که بخوام برای استادم ببرم
      واسه خودم دارم کار می کننم تا یاد بگیرم
      در ضمن برنامه هامو می ترسم بزارم بهم بخندین :cry2:

      دیدگاه


        #4
        پاسخ : ماشین حساب

        نوشته اصلی توسط سارا گل
        ببینید من یه چیزای نوشتم
        قسمت تفریق مشکل دارم :sad:
        من تازه دارم یاد میگیرم
        دانشجو هم نیستم که بخوام برای استادم ببرم
        واسه خودم دارم کار می کننم تا یاد بگیرم
        در ضمن برنامه هامو می ترسم بزارم بهم بخندین :cry2:
        همین که شما میتونین این کار رو بکنید نکته بسیار بزرگیست.مطمین باشین در این سایت همه فقط به هم کمک میکنند نه مسخرهشما برنامه رو بزارین تا بگم کجای کار رو باید تغییرات ایجاد کنین.این جوری هم خودتون کار رو تمام کردید هم بهتر یادش میگیرین و یادتون باشه اینجا فقط همکاری و کمک است و این درست نیست که شما بخواهید فقط برنامه رو بگیرید و هیچ فعالیتی نداشته باشید.موفق باشید
        علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

        دیدگاه


          #5
          پاسخ : ماشین حساب

          سارا جان
          همه اونایی که الان شما میبینید که برا خودشون کسی هستن و به قول ما ایرانیا حرف اول رو میزنن (مثلا تو مباحث میکرو) شاید روزی تو دستور regfile$ مشکل داشتن و الان چشم بسته برنامه مینویسن بس همه اینو بدون که پرسیدن عیب نیست و ندانستن عیب است. البته اینو هم میدونم بعضی ها برنامرو میگیرن که تحلیل کنن و از روش که استفاده شده یچیزایی را یاد بگیرن.خوبی این سایت اینکه همه همدیگرو کمک میکنن (با تشکر از بچه های خوب eca)

          موفق باشی
          سه توصیه دارم:
          1.کار 2.کار 3.کار
          ادیسون

          دیدگاه


            #6
            پاسخ : ماشین حساب

            $regfile = "m32def.dat"
            $crystal = 8000000
            Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
            Config Lcd = 16 * 2
            Config Kbd = Portb , Debounce = 50 , Delay = 255
            Dim A As Word , B As Word
            Dim S As Word , P As Word , T As Word , K As Word
            S = 0 : K = 0 : P = 1 : T = 1
            Cls
            Home
            Main:

            Do
            A = Getkbd()
            A = Lookup(a , Read_key)
            If A > 15 Then Goto Main
            Select Case A

            Case Is < 10:
            B = B * 10
            B = B + A

            Lcd B
            Wait 1

            Case 10:
            S = S + B

            Case 11:
            K = K - B

            Case 12:
            P = P * A

            Case 13:
            T = T / A
            Case 14:
            Lcd A

            Case 15:
            B = B / 10
            Shiftcursor Left
            Lcd " "
            Shiftcursor Left
            If B = 0 Then Goto Main
            End Select

            Loop

            '-------------------------------------------------------------------------------
            End 'end program
            '-------------------------------------------------------------------------------
            Read_key:
            Data 13 , 14 , 0 , 15 , 12 , 9 , 8 , 7 , 11 , 6 , 5 , 4 , 10 , 3 , 2 , 1
            این جوری نوشتم :redface:
            ولی قسمت تفریق ، ضرب و تقسیم و نمی دونم
            و اینکه برای عدد دوم باید دوباره دستورات kpd بنویسم؟
            اگه بخوام رو lcd نشون بدم چه جوری با یه متغیر همه رو تعریف کنم
            در ضمن ممنونم از راهنمایتون :bye

            دیدگاه


              #7
              پاسخ : ماشین حساب

              منم قبلا یه برنامهٔ ماشین حساب نوشته بودم
              برای محاسبه راحتتر عبارت ریاضی اونو از حالت Infix به Postfix تبدیل کردم که بشه خیلی راحت محاسبش کرد.

              مثلا عبارت زیر یه عبارت Infix هست. محاسبهٔ مستقیم این عبارت با برنامهآ‌نویسی کار تقریبا مشکلیه.
              کد:
              1+2*3-4


              ولی وقتی به Postfix تبدیل بشه خیلی راحت میشه با برنامه محاسبش کرد. Postfix عبارت بالا میشه این :
              کد:
              123*+4-


              روند کار من به این صورت بود که از کاربر عبارت ریاضی رو که Infix هست میگیرم.
              بعد عبارتو به Postfix تبدیل میآ‌کنم.
              و بعدش هم عبارت Postfix رو محاسبه میآ‌کنم.

              معالعه در مورد عبارات Infix
              معالعه در مورد عبارات Postfix
              یک برنامهٔ آنلاین برای تبدیل عبارات به هم و محاسبه
              توضیح خوب و ساده برای تبدیل از Infix به Postfix
              و این هم توضیحی در مورد محاسبهٔ عبارت Postfix


              موفق باشید :smile:
              چگونه هوشمندانه بپرسیم

              دیدگاه


                #8
                پاسخ : ماشین حساب

                ببینید من ناثغمه مبتدی هستم
                اگه میشه بیشتر توضیح بدین
                :bye

                دیدگاه


                  #9
                  پاسخ : ماشین حساب

                  نوشته اصلی توسط سارا گل
                  ببینید من ناثغمه مبتدی هستم
                  اگه میشه بیشتر توضیح بدین
                  :bye
                  ببین اول باید دو تا عدد رو بگیری و بعد تو کیس نگاش کنی ببینی طرف چی خواسته
                  من تو این برنامه دست کاری کردم
                  و یکی رو a گرفتم و ععد دوم رو b
                  برنامه تست نشده لطفا شما خودتون سیمولیتش کنین
                  و lookup هم مشکل داشت که درستش کردم .ایشالله که کار کنه اخه عجله ای بود
                  کد:
                  $regfile = "m32def.dat"
                  $crystal = 8000000
                  $sim
                  Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
                  Config Lcd = 16 * 2
                  Config Kbd = Portb , Debounce = 50 , Delay = 255
                  Dim A As Byte , B As Word , C As Word
                  Dim S As Word , P As Word , T As Word , K As Word
                  Dim O As String * 1
                  S = 0 : K = 0 : P = 1 : T = 1
                  Cls
                  Home
                  
                  
                  
                  
                  
                  
                  Main:
                  B = 0
                  
                  
                  Do
                  A = Getkbd()
                  A = Lookup(a , Read_key)
                  If A > 15 Then Goto Main
                   Select Case A
                  
                     Case Is < 10:
                       B = B * 10
                       B = B + A
                  
                       Lcd B
                       Wait 1
                  
                       Case 15:
                       B = B / 10
                       Shiftcursor Left
                       Lcd " "
                       Shiftcursor Left
                       If B = 0 Then Goto Main
                  
                     Case Is > 9:
                     If A = 10 Then O = "/"
                     If A = 11 Then O = "*"
                     If A = 12 Then O = "+"
                     If A = 13 Then O = "-"
                  
                       Goto 2
                  
                  
                    End Select
                  
                   Loop
                  
                   2:
                   Do
                  A = Getkbd()
                  A = Lookup(a , Read_key)
                  If A > 15 Then Goto Main
                   Select Case A
                  
                     Case Is < 10:
                       C = C * 10
                       C = C + A
                  
                       Lcd C
                       Wait 1
                  
                       Case 15:
                       C = C / 10
                       Shiftcursor Left
                       Lcd " "
                       Shiftcursor Left
                       If C = 0 Then Goto Main
                  
                     Case Is > 9:
                  
                     If O = "*" Then
                     S = A * C
                     End If
                     If O = "/" Then
                     S = A / C
                     End If
                     If O = "+" Then
                     S = A + C
                     End If
                     If O = "-" Then
                     S = A - C
                     end if
                  
                  
                     Cls
                     Lcd S
                     Wait 1
                     A = 0
                     C = 0
                     S = 0
                     Goto Main
                  
                  
                  
                  
                  
                  
                  
                  
                    End Select
                  
                   Loop
                  
                  
                  
                  
                  '-------------------------------------------------------------------------------
                  End                             'end program
                  '-------------------------------------------------------------------------------
                  Read_key:
                  Data 1 , 2 , 3 , 10 , 4 , 5 , 6 , 11 , 7 , 8 , 9 , 12 , 13 , 0 , 14 , 15
                  علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                  دیدگاه


                    #10
                    پاسخ : ماشین حساب

                    من یه برنامه با codevision نوشتم و مدار مربوط به ماشین حساب رو هم با proteus درست کردم و جواب گرفتم (کار میکنه) در صورت نیاز میتونم همه را براتون mail کنم. برنامه کامل رو تو آدرس زیر گذاشتم می تونید ببینید. پایین صفحه رو ببینید. (برای اعداد چند رقمیه فقط در صورت کار با اعداد بزرگ لطفا نوع متغیرها رو تغییر بدین)
                    http://www.eca.ir/forum2/index.php?topic=28411.0

                    دیدگاه

                    لطفا صبر کنید...
                    X