نمایش نتایج 1 تا 14 از 14

نام تاپیک: کمک برای نوشتن ماشین حساب

  1. #1

    کمک برای نوشتن ماشین حساب

    سلام دوستان .
    میخوام ماشین حسابی بنویسم که اگه عددی وارد شد ، سپس Operator ای زده شد و دوباره عددی وارد شد ، با زدن دوباره ی هر Operator نتیجه ی عملیات قبلی نشون داده بشه .
    همچنین با زدن دکمه ی مساوی .

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

  2. #2
    کاربر دائمی آواتار milade
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    2,189

    نقل قول: کمک برای نوشتن ماشین حساب

    الان کجا گیر هستید؟
    تا کجا کد نوشتید؟(اصلا کد نوشتید؟)

  3. #3

    نقل قول: کمک برای نوشتن ماشین حساب

    ظاهر ماشین حسابو درست کردم اینهاش :

    <html>
    <head>
    <script language="javascript">

    </script>
    </head>
    <body>
    <form name="form1">
    <input Type="text" name="txt1"><br>
    <input Type="button" name="btn1" value=" 1 " onclick="document.form1.txt1.value=document.form1. txt1.value + '1'">
    <input Type="button" name="btn2" value=" 2 " onclick="document.form1.txt1.value=document.form1. txt1.value + '2'">
    <input Type="button" name="btn3" value=" 3 " onclick="document.form1.txt1.value=document.form1. txt1.value + '3'">
    <input Type="button" name="btn+" value=" + "<br>
    <input Type="button" name="btn4" value=" 4 " onclick="document.form1.txt1.value=document.form1. txt1.value + '4'">
    <input Type="button" name="btn4" value=" 5 " onclick="document.form1.txt1.value=document.form1. txt1.value + '5'">
    <input Type="button" name="btn6" value=" 6 " onclick="document.form1.txt1.value=document.form1. txt1.value + '6'">
    <input Type="button" name="btn-" value=" - "><br>
    <input Type="button" name="btn7" value=" 7 " onclick="document.form1.txt1.value=document.form1. txt1.value + '7'">
    <input Type="button" name="btn8" value=" 8 " onclick="document.form1.txt1.value=document.form1. txt1.value + '8'">
    <input Type="button" name="btn9" value=" 9 " onclick="document.form1.txt1.value=document.form1. txt1.value + '9'">
    <input Type="button" name="btnX" value=" X "><br>
    <input Type="button" name="btn=" value=" = ">
    <input Type="button" name="btn0" value=" 0 " onclick="document.form1.txt1.value=document.form1. txt1.value + '0'">
    <input Type="button" name="btn/" value=" / "><br>
    <input Type="reset" name="btnC" value=" c "><br>
    </form>
    </body>
    </html>

    ببینید ، فقط عملیات روی عدد صحیح میخوام انجام شه ، اعشاری لازم نیست ، الان اینی که نوشتم ، ظاهرشه و اینکه عدد ها رو میزاره توی اون TextBox .

    اگر بتونید جمع رو برام درست کنید و توضیح بدید ، بقیشم فکر نکنم کاری داشته باشه .
    روی مساوی هم یه توضیحی بدید .
    اگه بشه برای هر عمل یه تابع توی head نوشته شه بهتر نیست ؟

  4. #4

    نقل قول: کمک برای نوشتن ماشین حساب


    <html>
    <head>
    <script language="javascript">
    var action;
    var preValue;

    function LogAction(act){
    action = act;
    preValue = new Number(document.form1.txt1.value);
    document.form1.txt1.value = '';
    }

    function compute(){
    var Result = document.form1.txt1;
    var currentVal = new Number(document.form1.txt1.value);
    switch(action){
    case 'add': Result.value = preValue + currentVal ; break;
    case 'deduce': Result.value = preValue - currentVal; break;
    case 'multiple': Result.value = preValue * currentVal; break;
    case 'divide': Result.value = preValue / currentVal; break;
    default: break;
    }
    }

    </script>
    </head>
    <body>
    <form name="form1">
    <input Type="text" name="txt1"><br>
    <input Type="button" name="btn1" value=" 1 " onclick="document.form1.txt1.value=document.form1. txt1.value + '1'">
    <input Type="button" name="btn2" value=" 2 " onclick="document.form1.txt1.value=document.form1. txt1.value + '2'">
    <input Type="button" name="btn3" value=" 3 " onclick="document.form1.txt1.value=document.form1. txt1.value + '3'">
    <input Type="button" name="btn+" value=" + " onclick="LogAction('add');"><br>
    <input Type="button" name="btn4" value=" 4 " onclick="document.form1.txt1.value=document.form1. txt1.value + '4'">
    <input Type="button" name="btn4" value=" 5 " onclick="document.form1.txt1.value=document.form1. txt1.value + '5'">
    <input Type="button" name="btn6" value=" 6 " onclick="document.form1.txt1.value=document.form1. txt1.value + '6'">
    <input Type="button" name="btn-" value=" - " onclick="LogAction('deduce');"><br>
    <input Type="button" name="btn7" value=" 7 " onclick="document.form1.txt1.value=document.form1. txt1.value + '7'">
    <input Type="button" name="btn8" value=" 8 " onclick="document.form1.txt1.value=document.form1. txt1.value + '8'">
    <input Type="button" name="btn9" value=" 9 " onclick="document.form1.txt1.value=document.form1. txt1.value + '9'">
    <input Type="button" name="btnX" value=" * " onclick="LogAction('multiple');"><br>
    <input Type="button" name="btn=" value=" = " onclick="compute();">
    <input Type="button" name="btn0" value=" 0 " onclick="document.form1.txt1.value=document.form1. txt1.value + '0'">
    <input Type="button" name="btn/" value=" / " onclick="LogAction('divide');"><br>
    <input Type="reset" name="btnC" value=" c "><br>
    </form>
    </body>
    </html>

  5. #5

    نقل قول: کمک برای نوشتن ماشین حساب

    دوستان بیشتر راهنمایی کنید ( حتی الامکان جمع رو برام بنویسید ) .
    kassit جان اونی که شما نوشتی ، اون کاری که گفتم رو نمی کنه ، یعنی همونی که توی پست اول گفتم .

  6. #6

    نقل قول: کمک برای نوشتن ماشین حساب

    نمونه ها رو میشه بدید ؟
    من چیز به درد بخوری پیدا نکردم .

  7. #7

    نقل قول: کمک برای نوشتن ماشین حساب

    نقل قول نوشته شده توسط sAsAn.K مشاهده تاپیک
    دوستان بیشتر راهنمایی کنید ( حتی الامکان جمع رو برام بنویسید ) .
    kassit جان اونی که شما نوشتی ، اون کاری که گفتم رو نمی کنه ، یعنی همونی که توی پست اول گفتم .
    بنده کلیت کار رو خدمتتون گفتم
    کمی دقت کنید خودتون هر کاری می تونید باهاش بکنید

  8. #8

    نقل قول: کمک برای نوشتن ماشین حساب

    شما اون تغییری که من گفتم رو روی برنامه بدی برای من ، من ممنون میشم .
    "میخوام ماشین حسابی بنویسم که اگه عددی وارد شد ، سپس Operator ای زده شد و دوباره عددی وارد شد ، با زدن دوباره ی هر Operator نتیجه ی عملیات قبلی نشون داده بشه ."

  9. #9
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    41
    پست
    1,944

    نقل قول: کمک برای نوشتن ماشین حساب

    sAsAn.K عزیز این سایت محلی هست برای راهنمایی در نحوه کلیات کار نه محلی برای اعطای سورس کد این نکته رو هم من و هم خیلی از دوستان به شما تاکید کرده اند.

    صورت مسئله شما رو دوست عزیزمون kassit تا حد اجرای کار حل کرده اند و جا داره از ایشون تشکر بشه! انعطاف دادن به این سورس با خودتون هست.

    این مسئله باعث میشه که دوستان در سئوالات بعدی شما هیچ کمکی به شما نکنند.

    موفق باشید

  10. #10

    نقل قول: کمک برای نوشتن ماشین حساب

    این روشی که ایشون گفتند رو خود منم بلد بودم بنویسم .
    من گفتم الگوریتم اون کاری که توی پست اول گفتم رو به من بدید .
    من کد درخواست ندادم که بگم بگردید پیدا کنید بدید بهم !
    منظور منو اشتباه متوجه شدید شما .
    حالا هم اگر مقدوره کمک کنید ، اگر نه که هیچی .

  11. #11

    نقل قول: کمک برای نوشتن ماشین حساب

    فکر می کنم kassit خودش اون کد رو نوشته باشه .
    واسه همین با اجازه خودش من همون کد رو کامل تر کردمو یه دستی هم به ظاهرش
    کشیدم . بقیه اش با خودت . بچه های دیگه هم می تونن این کد رو تغییر بدن و کامل ترش کنن .

    1-من واقعا وقت واسه اینکه کد رو کامل آزمایش کنم ندارم پس لطفا خودت زحمت آزمایش کردنو بکش اگر مشکلی بود یا تغییری لازم داشت بگو تا درستش کنم .

    2-ولی منطق یا الگوی برنامه نویسی مفهوم اونجوری که تو می خوای نداره . چرا ؟
    مثلا اگر به 10 نفر بگیم یک برنامه ساده بنویسید که از 1 تا 10 بشمره و رو صفحه نشون بده
    هر کدوم از این 10 نفر ممکنه همین برنامه ساده رو یک جور بنویسه .

    مثلا الان که می خوام کد رو اینجا قرار بدم واسه آخرین بار که نگاه کردم در همین کد currentVal
    رو در واقع 2 بار می گیرم که از نظر الگوی برنامه نویسی درست نیست . یا خودت درستش کن
    یا بعدا خودم فرصت کردم درستش می کنم .







    <html>
    <head>

    <style type="text/css">

    input.test {position:relative;width:38px;height:22px;}
    input.test2 {position:relative;width:28px;height:22px;margin-top:2px;}
    input.test3 {position:relative;width:80px;height:22px;}
    input.test4 {position:relative;width:155px;height:22px;margin-top:2px;}

    </style>

    <script language="javascript">

    var action;
    var preValue;
    var NewAction;
    Clearing = "ON";
    function LogAction(act) {

    if (Clearing == "ON") {
    document.form1.txt1.value = "";
    Clearing = "OFF";
    }
    document.form1.txt1.value += act

    }

    function compute(action) {

    var currentVal = Number(document.form1.txt1.value);
    switch (NewAction) {
    case 'add':
    currentVal = preValue + currentVal;
    break;
    case 'deduce':
    currentVal = preValue - currentVal;
    break;
    case 'multiple':
    currentVal = preValue * currentVal;
    break;
    case 'divide':
    currentVal = preValue / currentVal;
    break;
    default:
    break;
    }

    preValue = currentVal
    NewAction = action
    Clearing = "ON"
    document.form1.txt1.value = currentVal
    }

    </script>
    </head>
    <body>
    <table border=1 align=center style="width:200px;height:200px;">
    <tr><td align=center>
    <form name="form1"><br />
    <input Type="text" name="txt1" value="0" size="18" style="text-align:right;font-weight:bold;"><br /><br />
    <input class="test" Type="button" name="btn1" value="1" onclick="LogAction(1);">
    <input class="test" Type="button" name="btn2" value="2" onclick="LogAction(2);">
    <input class="test" Type="button" name="btn3" value="3" onclick="LogAction(3);">
    <input class="test2" Type="button" name="btn+" value=" + " onclick="compute('add');"><br>
    <input class="test" Type="button" name="btn4" value="4" onclick="LogAction(4);">
    <input class="test" Type="button" name="btn4" value="5" onclick="LogAction(5);">
    <input class="test" Type="button" name="btn6" value="6" onclick="LogAction(6);">
    <input class="test2" Type="button" name="btn-" value=" - " onclick="compute('deduce');"><br>
    <input class="test" Type="button" name="btn7" value="7" onclick="LogAction(7);">
    <input class="test" Type="button" name="btn8" value="8" onclick="LogAction(8);">
    <input class="test" Type="button" name="btn9" value="9" onclick="LogAction(9);">
    <input class="test2" Type="button" name="btnX" value=" * " onclick="compute('multiple');"><br>
    <input class="test3" Type="button" name="btn=" value=" = " onclick="compute();">
    <input class="test" Type="button" name="btn0" value=" 0 " onclick="LogAction(0);">
    <input class="test2" Type="button" name="btn/" value=" / " onclick="compute('divide');"><br>
    <input class="test4" Type="reset" name="btnC" value=" c " onclick="Clearing='ON';NewAction='';"><br>
    </form>
    </td>
    </tr>
    </table>
    </body>
    </html>



    توضیح:

    وقتی رو اعداد ( input button ) کلیک میکنی یک پرش داریم به LogAction Function
    که اینجا اعداد در input txt1 نوشته می شه .

    ولی Clearing چیه ؟ برای پاک کردن input txt1 هست هر وقت لازم باشه صفحه پاک بشه
    برابر با ON و هر وقت لازم نباشه OFF . این فقط برای وقتییه که میخوایم عدد دوم رو وارد کنیم
    یا اولین بار عدد و وارد کنیم تا 0 پاک بشه
    ================================================== ==
    برای اجرای عملیات ریاضی احتیاج به 2 تا عدد و علامتها داریم .
    مثلا اگر با این مثال بخوایم نشون بدیم برنامه چجوری کار می کنه . 1+2=3

    در این برنامه هر بار که روی علایم کلیک می کنیم یعنی اینا (+ - / * = ) یک پرش
    به compute انجام میشه

    دفعه اول که به compute پرش می کنیم عدد اول یعنی 1 و علامت یعنی + گرفته میشه
    ولی هیچ عمل ریاضی انجام نمیشه .

    برنامه منتظر می مونه تا عدد دوم وارد بشه و دوباره روی یکی از (+ - / * ) یا = کلیک کنه
    تا عملیات قبلی اجرا بشه .

    واقعا توضیح دادن سخته .
    ================================================== =
    باز 1+2=3 رو در نظر بگیر .

    کسی که از ماشین حساب استفاده می کنه رو 1 کلیک میکنه . 1 در input txt1 نوشته
    میشه.

    حالا رو + کلیک می کنه . برنامه به compute پرش میکنه action برابر با add میشه
    یعنی جمع و currentVal عدد 1 رو میکیره .

    در خطهای بعدی ( دفعه اول ) هیچ عملیات ریاضی انجام نمی شه چون برای switch
    متغیر NewAction رو قرار دادیم که فعلا خالییه پس هیچ عملیاتی انجام نمیشه

    در آخر preValue برابر با currentVal میشه یعنی 1 در اصل عدد اول ما همین currentVal
    هست و NewAction هم برابر با action میشه یعنی add در اصل NewAction عملیات + رو مشخص می کنه


    حالا عدد 3 وارد میشه و وقتی روی (+ - / * ) یا = کلیک بشه تازه عملیات جمع انجام میشه
    فرض کن *

    از اینجا به بعد هم که معلومه

    برنامه دوباره به compute پرش می کنه action برابر با multiple یا ضرب میشه این عملیات بعدییه .

    currentVal برابر با 3 میشه قبلا preValue برابر با 1 بود و NewAction برابر بود با add
    برای همین وقتی به case 'add' میرسه 3 با 1 جمع میشه .

    ================================================== ===

    اگر از همه اینا چیزی نگرفتی

    اینو گوش کن .. شما 1 رو می گیری + رو می گیری 2 رو هم می گیری بعد 1+2=3

    در حالی که اینجا 1 رو می گیری + رو می گیری ولی هیچ عملیاتی انجام نمی دی
    بعد که 2 وارد شد کسی که از ماشین حساب استفاده می کنه هیچ راهی نداره
    جز اینکه رو (+ - / * ) یا = کلیک کنه مثلا * اینجاست که عدد دوم گرفته میشه و عمل +
    انجام میشه 1+2=3 حالا عمل بعدی ما * هست دوباره برنامه منتظر می شه
    تا عدد دوم برای ضرب وارد و روی (+ - / * ) یا = کلیک بشه ....

    ================================================== ====

    حالا فهمیدم چرا کسی توضیح نمی ده چون 1 ساعت وقت می گیره بدیش اینه که کسی هم چیزی دستگیرش
    نمی شه

    ================================================== ====
    آخرین ویرایش به وسیله Ali100 : دوشنبه 18 آذر 1387 در 02:24 صبح

  12. #12

    نقل قول: کمک برای نوشتن ماشین حساب

    نمی دونی چقدر کارمو راه انداختی آقا ، دستت درد نکنه ، ممنون .

    دوستان دیگه هم بهتره به جای ... مثل ایشون و kassit باشن !

  13. #13
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    یزد
    پست
    727

    نقل قول: کمک برای نوشتن ماشین حساب

    کد HTML:
    <html>
    <body>
    <form name="myform">
        <table width="210" border="1" cellspacing="1" cellpadding="1" bgcolor="#003366">
          <tr>
            <td align="center"> 
              <table width="173" border="0" cellspacing="0" cellpadding="0" height="130">
                <tr> 
                  
                </tr>
                <tr> 
                  <td colspan="3"> 
                    <input type="text" name="display" size="20">
                  </td>
                  <td width="53" height="0"> <font color="#FFFFFF"> 
                    <input type="button" name="clear" value="   c   "
                onClick="myform.display.value=''" onMouseover="window.status='Clear numbers'" onMouseout="window.status=''">
                    </font></td>
                </tr>
                <tr> 
                  <td width="53" height="0"> 
                    <input type="button" name="seven" value="   7   "
                onClick="myform.display.value+='7'">
                  </td>
                  <td width="53" height="0"> 
                    <input type="button" name="eight" value="   8   "
                onClick="myform.display.value+='8'">
                  </td>
                  <td width="53" height="0"> 
                    <input type="button" name="nine" value="   9   "
                onClick="myform.display.value+='9'">
                  </td>
                  <td width="53" height="0"> <font color="#FFFFFF"> 
                    <input type="button" name="divide" value="   /    "
                onClick="myform.display.value+='/'">
                    </font></td>
                </tr>
                <tr> 
                  <td width="53" height="0"> 
                    <input type="button" name="four" value="   4   "
                onClick="myform.display.value+='4'">
                  </td>
                  <td width="53" height="0"> 
                    <input type="button" name="five" value="   5   "
                onClick="myform.display.value+='5'">
                  </td>
                  <td width="53" height="0"> 
                    <input type="button" name="six" value="   6   "
                onClick="myform.display.value+='6'">
                  </td>
                  <td width="53" height="0"> <font color="#FFFFFF"> 
                    <input type="button" name="times" value="   x   "
                onClick="myform.display.value+='*'">
                    </font></td>
                </tr>
                <tr> 
                  <td width="53" height="0"> 
                    <input type="button" name="one" value="   1   "
                onClick="myform.display.value +='1'">
                  </td>
                  <td width="53" height="0"> 
                    <input type="button" name="two" value="   2   "
                onClick="myform.display.value +='2'">
                  </td>
                  <td width="54" height="0"> 
                    <input type="button" name="three" value="   3   "
                onClick="myform.display.value +='3'">
                  </td>
                  <td width="72" height="0"> <font color="#FFFFFF"> 
                    <input type="button" name="minus" value="    -   "
                onClick="myform.display.value+='-'">
                    </font></td>
                </tr>
                <tr> 
                  <td width="53" height="0"> 
                    <input type="button" name="zero" value="   0   "
                onClick="myform.display.value+='0'">
                  </td>
                  <td width="53" height="0"> </td>
                  <td width="54" height="0"> 
                    <input type="button" name="plus" value="   +   "
                onClick="myform.display.value +='+'">
                  </td>
                  <td width="72" height="0"> <font color="#FFFFFF"> 
                    <input type="button" name="calculate" value="   =   "
                onClick="myform.display.value=eval(myform.display.value)">
                    </font></td>
                </tr>
              </table>
            </td>
          </tr>
        </table>
      </form>
    </body>
    </html>

  14. #14

    نقل قول: کمک برای نوشتن ماشین حساب

    لطفا به قوانین احترام بگذارید برای سریعتر رسیدن به جواب هم باید سوال رو توی بخش خودش پرسید

قوانین ایجاد تاپیک در تالار

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