2015-09-14 2 views
0

Я очень новичок в программировании. Я пытаюсь сделать формулу Пифагора с помощью javascript. Я не могу объяснить это очень хорошо на английском языке, так что вы можете попробовать это самостоятельно и посмотреть, что не так с моими кодами и как это исправить?Формула Пифагора в javascript

Вот код:

var a = document.getElementById("a").innerHTML; 
 
var b = document.getElementById("b").innerHTML; 
 
var c = document.getElementById("c").innerHTML; 
 

 
function fungsi(x) { 
 
    c = sqrt(a * a + b * b) 
 
}; 
 

 
function fungsi(y) { 
 
    a = sqrt(c * c - b * b) 
 
}; 
 

 
function fungsi(z) { 
 
    b = sqrt(c * c - a * a) 
 
}; 
 
if (c = null) { 
 
    getElementById("tombol").onclick = fungsi(x); 
 
} else if (a = null) { 
 
    getElementById("tombol").onclick = fungsi(y); 
 
} else { 
 
    getElementById("tombol").onclick = fungsi(z); 
 
}
<input id="a" type=number> 
 
<br> 
 
<input id="b" type=number> 
 
<br> 
 
<input id="c" type=number> 
 
<br> 
 
<button id="tombol" onclick=fungsi()>hitung</button>

+1

Я думаю, что есть фундаментальная проблема здесь в том, что вы не получили базовые навыки Javascript просто еще вниз. Начните с учебника, а затем поработайте над решением своей формулы. Здесь почти слишком много проблем, чтобы исправить в одном ответе. – CodingIntrigue

+1

1. Вы должны использовать '.value', а не' .innerHTML', чтобы получить значение ввода, 2. вы повторно объявляете функцию 'fungsi' дважды, 3.' sqrt' не является глобальной функцией, это метод 'Math', поэтому' Math.sqrt (...) ', 4.' getElementById' должен быть 'document.getElementById' ... – pawel

+0

5.' if (c = null) 'является * присваивание *, а не проверка равенства и всегда будет возвращать false. 6. 'fungsi' уже назначен как обработчик' onclick' в HTML. 7. 'x',' y' и'z' не определены. 8. 'onclick = fungsi (x)' присваивает 'undefined' обработчику' onclick', поскольку 'fungsi' не возвращает значение. Их больше. – CodingIntrigue

ответ

1

ПОТОМУ ЧТО ВЫ ПРОБОВАЛИ (и SO многие даже не беспокоить):

Ваш HTML:

<input id="a" type=number> 
<br> 
<input id="b" type=number> 
<br> 
<input id="c" type=number> 
<br> 
<button id="tombol" onclick="fungsi()">hitung</button> 

Ваш Javascript:

function fungsi() 
{ 
    var vals = {}; 

    if(document.getElementById("a").value.length > 0) 
    { 
     vals.a = document.getElementById("a").value; 
    } 
    if(document.getElementById("b").value.length > 0) 
    { 
     vals.b = document.getElementById("b").value; 
    } 
    if(document.getElementById("c").value.length > 0) 
    { 
     vals.c = document.getElementById("c").value; 
    } 

    if(Object.keys(vals).length < 2) 
    { 
     alert('Need 2 values'); 
     return; 
    } 

    if(typeof vals.a != 'undefined' && typeof vals.b != 'undefined') 
    { 
     alert((Math.sqrt(vals.a * vals.a + vals.b * vals.b))); 
    } 
    else if(typeof vals.b != 'undefined' && typeof vals.c != 'undefined') 
    { 
     alert((Math.sqrt(vals.b * vals.b + vals.c * vals.c))); 
    } 
    else if(typeof vals.a != 'undefined' && typeof vals.c != 'undefined') 
    { 
     alert((Math.sqrt(vals.a * vals.a + vals.c * vals.c))); 
    } 
} 

Должно быть достаточно, чтобы дать вам толчок;)

+0

Спасибо! Я пробовал это, но это не то, что я должен ... Вы знаете, что фитагор - это >> c² = a² + b². Ваши коды дают правильный ответ, когда мы хотим найти значение «c». Но он дает неправильный ответ, когда мы хотим найти значение «a» или «b». –

+0

Тогда исправьте это - вы знаете, что хотите;) – Ragdata

+0

Да, я исправил его, и он работает. Я только что изменил >> else if (typeof vals.b! = 'Undefined' && typeof vals.c! = 'undefined') { alert ((Math.sqrt (vals.c * vals.c - vals.b * vals.b)) ); } еще если (TypeOf vals.a = 'не определено' && TypeOf vals.c = 'не определено'!) { оповещения ((Math.sqrt (vals.c * vals.c - vals.a * vals.a). >>>>> Да, мне нужно узнать больше ... много методов, которые я пока не понимаю ..: D –

Смежные вопросы