Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не корректное отображение (https://javascript.ru/forum/misc/14333-ne-korrektnoe-otobrazhenie.html)

hacker_007 11.01.2011 18:32

Не корректное отображение
 
Написал скрипт, который решает неполные кв. уравнения:
<script language="JavaScript" type="text/javascript">
var b = prompt("Введите число B", "B=");
var a = prompt("Введите число A", "A=");
var c = prompt("Введите число C", "C=");
var k = b/2
var disc = k * k - a * c
x1 = -(k + Math.sqrt(disc))/a
x2 = -(k - Math.sqrt(disc))/a
x4 = -(k/a)
if(disc > 0){
document.write("Дискриминант больше 0, решения есть. D=" + disc + ". X1=" + x1 + "X2=" + x2 +".<BR />" );
}
else {
document.write("Дискриминант меньше 0, решения нет. D=" + disc + ".");
}

if(disc == 0){
document.write("Дискриминант равен 0, решение есть. D= " + disc + " и x= " + x4 + ".");
}
else{

}
</script>

Возникла проблема при втором варианте.(Когда Дискриминант равен 0.)
(A=1 B=14 C=49)-значения при которых D=0. При выполнении скрипта выводится 2 document.write() поля. (Дискриминант меньше 0, решения нет. D=0.Дискриминант равен 0, решение есть. D= 0 и x= -7. ) Второй верный...
Как это исправить?

Amphiluke 11.01.2011 18:40

if (disc > 0){
document.write("Дискриминант больше 0, решения есть. D=" + disc + ". X1=" + x1 + "X2=" + x2 +".<BR />" );
} else if (disc < 0) {
document.write("Дискриминант меньше 0, решения нет. D=" + disc + ".");
} else {
document.write("Дискриминант равен 0, решение есть. D= " + disc + " и x= " + x4 + ".");
}

dmitriymar 11.01.2011 18:42

задумайся сам над логикой какую прописал. если <=0 в первом ветвлении выплниться
Цитата:

Сообщение от hacker_007
else {
document.write("Дискриминант меньше 0, решения нет. D=" + disc + ".");
}

и потом опять если равно 0 выполниться
if(disc == 0){
document.write("Дискриминант равен 0, решение есть. D= " + disc + " и x= " + x4 + ".");
}

hacker_007 11.01.2011 18:44

Цитата:

Сообщение от dmitriymar (Сообщение 87446)
задумайся сам над логикой какую прописал. если <=0 в первом ветвлении выплниться
и потом опять если равно 0 выполниться
if(disc == 0){
document.write("Дискриминант равен 0, решение есть. D= " + disc + " и x= " + x4 + ".");
}

Я про это знал.... но не понял как правильно это написать.))) А так пасиб большое, что помогли


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