Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   простой калькулятор (https://javascript.ru/forum/misc/16708-prostojj-kalkulyator.html)

kekc91 18.04.2011 22:41

простой калькулятор
 
Написал калькулятор, но появилась проблема, не могу описать функцию "=" , очень нужна помощь, буду очень благодарен. Вот код:
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<script language="JavaScript">
 function plus()
{
rezultat.value=znah_1.value-(-1)*znah_2.value;
}
function minus()
{
rezultat.value=znah_1.value-znah_2.value;
}
 function umn()
{
rezultat.value=znah_1.value*znah_2.value;
}
function del()
{
rezultat.value=znah_1.value/znah_2.value;
}
function rav()
{
rezultat.value=znah_1.value-(-1)*znah_2.value;
rezultat.value=znah_1.value-znah_2.value;
rezultat.value=znah_1.value*znah_2.value;
rezultat.value=znah_1.value/znah_2.value;
}
</script>
<table border="2">
<tr>
<td>
<input id="znah_1" size="38">
</td>
<td rowspan="3" valign="top">
<input type="button" value=" + " onclick="plus()">
<input type="button" value=" - " onclick="minus()">
<input type="button" value=" * " onclick="umn()">
<input type="button" value=" / " onclick="del()">
<input type="button" value=" = " onclick="rav()"></td>
</tr>
<tr>
<td><input id="znah_2" size="38"></td>
</tr>
<tr>
<td><input id="rezultat" size="38"></td>
</tr>
</table>
</BODY> 
</HTML>

kekc91 18.04.2011 22:45

извините код немного не тот
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<script language="JavaScript">

 function plus()
{
rezultat.value=znah_1.value-(-1)*znah_2.value;
}

function minus()
{
rezultat.value=znah_1.value-znah_2.value;
}

 function umn()
{
rezultat.value=znah_1.value*znah_2.value;
}

function del()
{
rezultat.value=znah_1.value/znah_2.value;
}
function rav()
{

}
</script>
<table border="2">
<tr>
<td>
<input id="znah_1" size="38">
</td>
<td rowspan="3" valign="top">
<input type="button" value=" + " onclick="plus()">
<input type="button" value=" - " onclick="minus()">
<input type="button" value=" * " onclick="umn()">
<input type="button" value=" / " onclick="del()">
<input type="button" value=" = " onclick="rav()"></td>
</tr>
<tr>
<td><input id="znah_2" size="38"></td>
</tr>
<tr>
<td><input id="rezultat" size="38"></td>
</tr>
</table>
</BODY> 
</HTML>

dmitriymar 18.04.2011 23:20

а зачем оно нужно ? если после любой операции по замыслу результат уже выводится?
а начать я думаю стоит с начала-с изучения основ ,с алгорититмов

dmitriymar 18.04.2011 23:31

Цитата:

Сообщение от kekc91
function plus()
{
rezultat.value=znah_1.value-(-1)*znah_2.value;
}

+ на клаве не работает?:-?

kekc91 18.04.2011 23:41

не работает

kekc91 18.04.2011 23:44

rezultat.value= можно убрать и результат не будет выводиться при нажатии кнопки, а в ф-ции rav() я думаю нужно просто объявить цикл который будет проверять какая клавиша было нажата последней и выводить результат, только вот как это реализовать незнаю

рони 19.04.2011 03:30

kekc91,
Вариант простого калькулятора ...
<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
<script type="text/javascript">
for (var a = " |1|2|3|\u21d0|4|5|6|+|7|8|9|-|0|*|/|=".split("|"), c, b, i = 0; i < a.length; i++)
 c = document.createElement("input"),
 c.type = i > 0 ? (c.onclick = function () {rezultat(this.value)},"button") : (c.setAttribute("readonly","readonly"),"text"),
 c.value = a[i], c.id = "n" + i,
 document.body.appendChild(c),
 i % 4 == 0 && document.body.appendChild(document.createElement("br"));
 c = 0;
function rezultat(f) {
    var d = document.getElementById("n0"),
        e = d.value;
    /\d/.test(f) && (d.value += f);
    /\u21D0/.test(f) && (d.value = e.replace(/.$/, ""));
    e = +e;
    if (/[\*\+\-\/]/.test(f)) c = e, d.value = "", b = f;
    if (/=/.test(f)&&e) switch (b) {
    case "*":
        d.value = c * e;
        break;
    case "+":
        d.value = c + e;
        break;
    case "-":
        d.value = c - e;
        break;
    case "/":
        d.value = c / e
    }
};
</script>
</body>
</html>

dmitriymar 19.04.2011 07:37

Цитата:

Сообщение от kekc91
цикл который будет проверять какая клавиша было нажата последней и выводить результат, только вот как это

а это ещё зачем?

AtNovember 29.08.2013 00:00

Вы можете объяснить как ваша программа работает (для новичка):
что означает u21d0?
да и вообще дать построчный комментарий, начиная с того, как вы через функцию определяете переменные, затем создаете некий элемент, а потом... ??

рони 29.08.2013 00:51

AtNovember,
alert("\u21D0");

типа комент
формируется 17 инпутов в зависимости от значения нажатого инпута функция изменяет содержание нулевого инпута:-?


Часовой пояс GMT +3, время: 01:40.