• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [JS] Skrypt na obliczanie delty - Złe wartości w wyniku z pętli IF

Object Storage Arubacloud
0 głosów
5,689 wizyt
pytanie zadane 6 listopada 2016 w JavaScript przez Vabes Nowicjusz (190 p.)
zamknięte 6 listopada 2016 przez Vabes

Witam serdecznie.

W wyniku dostaję błędne informacje. Na przykład jeśli delta jest ujemna, to pokazuje deltę jako liczbę ujemną, a później komunikat, że jest dodatnia i liczy miejsca zerowe.

JS:

function delta()
{
	var a = document.getElementById("a").value;
	var b = document.getElementById("b").value;
	var c = document.getElementById("c").value;
	
	var delta = (b*b)-(4*a*c);
	var pierw = Math.sqrt(delta);
	
	document.getElementById("wynik-delta").innerHTML=("Delta wynosi: "+delta,a,b,c);
	
	
	if (delta > 0) 
	{
		document.getElementById("wynik-mzerowe-kom").innerHTML=("Delta jest większa od zera, dwa miejsca zerowe");
		var x1 = (((-b)-pierw)/(2*a));
		var x2 = (((-b)-pierw)/(2*a));
		document.getElementById("wynik-mzerowe-wynik").innerHTML=("Miejsce zerowe x1 wynosi: "+x1+" Natomiast miejsce zerowe x2 wynosi: "+x2);
		
	}
	else if (delta == 0) 
	{
		document.getElementById("wynik-mzerowe-kom").innerHTML=("Delta jest równa zero, jedno miejsce zerowe");
		var x1 = ((-b)/(2*a));
		document.getElementById("wynik-mzerowe-wynik").innerHTML=("Miejsce zerowe wynosi: "+x1);
	}
	else (delta < 0); 
	{
		document.getElementById("wynik-mzerowe-kom").innerHTML=("Delta jest ujemna, brak miejsc zerowych");
	}


}

HTML:

<!DOCTYPE HTML>
<head>

<meta charset="utf-8" />

<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" /> 

<style type="text/css">

	body {
	background-color: #222222;
	font-family: 'Roboto', 'Arial', sans-serif;
	}
	
	#container {
	width: 700px;
	height: 250px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 50px;
	color: white;
	background-color: #223e6b;
	border: 2px solid #FFF;
	padding: 20px;
	text-align: center;
	}
	
	#komunikat {
	font-size: 40px;
	padding-bottom: 10px;
	}
	
</style>

<script type="text/javascript">

TU ORYGINALNIE SIEDZI SKRYPT JS KTÓRY JEST POWYŻEJ

</script>


</head>
<body>

<div id="container">

<div id="komunikat"> Podaj a, b, c aby obliczyć deltę.</div>

<div id="obliczanie">
<input type="text" id="a" /> 
<input type="text" id="b" /> 
<input type="text" id="c" /> 

<input type="submit" value="Oblicz" onclick="delta()" /> <br />


<div id="wynik-delta"></div>
<div id="wynik-mzerowe-kom"></div>
<div id="wynik-mzerowe-wynik"></div>
</div>



</div>

</body>
</html>

Liczę na pomoc i z góry dziękuję.
Pozdrawiam.

komentarz zamknięcia: Problem rozwiązany.

1 odpowiedź

+2 głosów
odpowiedź 6 listopada 2016 przez xmentor Nałogowiec (49,520 p.)
wybrane 6 listopada 2016 przez Vabes
 
Najlepsza
else (delta < 0); 

samo

else

wystarczy

komentarz 6 listopada 2016 przez Vabes Nowicjusz (190 p.)
Faktycznie, dzięki za poprawkę, jednak skrypt dalej nie działa.
1
komentarz 6 listopada 2016 przez niezalogowany
SOA#1
1
komentarz 6 listopada 2016 przez xmentor Nałogowiec (49,520 p.)
innerHTML=("Delta wynosi: "+delta,a,b,c);

zamien to na:

innerHTML=("Delta wynosi: "+delta);

Dodatkowo:

Jeżeli przy pierwszym obliczaniu delty wyjdzie ona dodatnia(lub = 0) to div o id wynik-mzerowe-wynik zostanie zostanie uzupełniony treścią, że są dwa miejsca zerowe(lub jedno). Jeżeli po ponownym obliczaniu delty wyjdzie ona ujemna, to wnętrze diva o id wynik-mzerowe-wynik zostaje nie zmienione - więc przy delcie < 0 powinieneś 'zerować' tego diva.

komentarz 6 listopada 2016 przez Vabes Nowicjusz (190 p.)

Jesteś świetny, wszystko śmiga.

Myślałem, że nie trzeba przy okazji dodatkowo zerować treści, bo jeśli będę chciał ją nadpisać to zadziała.

Jeszcze raz dzięki.

Jeśli ktoś będzie kiedyś potrzebował, to przed pętlą if dodałem funkcję, która zeruje zawartość wyniku:
 

with(document.getElementById('wynik-mzerowe-wynik'))while(hasChildNodes())removeChild(firstChild);

 

Podobne pytania

+1 głos
1 odpowiedź 265 wizyt
0 głosów
0 odpowiedzi 159 wizyt
pytanie zadane 1 czerwca 2016 w C i C++ przez Hohlik741 Nowicjusz (160 p.)
+1 głos
2 odpowiedzi 3,933 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez Ferik Nowicjusz (240 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...