W3-SI.com     HTML CSS JavaScript Načrtovanje    
  logotip  
SERŠ Maribor Iskanje Primeri

Pretvorba med številskimi sistemi

Koda:
<script type="text/javascript">
function izracunaj() {
	stevilo=document.getElementById("stevilo").value
	stsIN=+(document.getElementById("stsIN").value)
	stsOUT=+(document.getElementById("stsOUT").value)

	if( isNaN(stsIN) ¦¦ isNaN(stsOUT) ) return 0
	if( stsIN<2 ¦¦ stsOUT<2 ¦¦ stsOUT>36 ¦¦ stsIN>36 ) {
		document.getElementById("resitev").innerHTML = "Napaka pri osnovah!"
		return 0
	}

	var deset=parseInt(stevilo,stsIN)
	var resitev=deset.toString(stsOUT)

	document.getElementById("resitev").innerHTML = "Stevilo " + stevilo +
	  "\u003Csub\u003E" + stsIN + "\u003C/sub\u003E = " +
	  resitev + "\u003Csub\u003E"+stsOUT+"\u003C/sub\u003E"
}
</script>

<form action="#">
 <p>
  Pretvori stevilo
  <input type="text" id="stevilo" size="15" onkeyup="izracunaj()">
  v stevilskem sestavu z osnovo
  <input type="text" id="stsIN" size="2" value="10" onkeyup="izracunaj()">
  v stevilski sestav z osnovo
  <input type="text" id="stsOUT" size="2" value="16" onkeyup="izracunaj()">
  .<br />
  <p id="resitev">Tukaj se bo prikazal rezultat</p>
 </p>
</form>
Izgled v
brskalniku:

Pretvori stevilo v stevilskem sestavu z osnovo v stevilski sestav z osnovo .

Tukaj se bo prikazal rezultat

Razlaga: Funkcionalno zgrajen HTML obrazec je narejen na način, da vsaka sprememba v katerikoli škatlici za besedilo pokliče Javascriptovo funkcijo izracunaj(). Ta funkcija si najprej skopira vsebine vseh treh škatlic za besedilo v svoje spremenljivke. Zadnji dve spremenljivki že pretvori v številki, prvo pa pusti v besedilni obliki (vsebina škatlic za besedilo je v izvoru besedilo). Dva IF-stavka nato preverita, če je vsebina, ki jo je uporabnik vnesel ustrezna (če sta zadnja dva vnosa števili in če sta vsaj 2). V primeru, da vnos ni ustrezen, se funkcija tukaj neha izvajati. Funkcija nato pretvori število v drug številski sistem (sestav) s pomočjo dveh metod. Prva metoda parseInt("stevilo", osnova) pretvori število, ki je v besedilni obliki, v pravo številko, pri čemer upošteva osnovo številskega sestava. Druga metoda toString(osnova) je metoda pravih številk in le-te pretvori v število v besedilni obliki, vendar spet v skladu s številskim sestavom. Če ti dve funkciji uporabimo nad istim številom, pri čemer zamenjamo številski sestav, to pomeni, da imamo sedaj torej isto število, le v drugem številskem sestavu. Zadnji stavek funkcije izracunaj() oblikuje rešitev, ki jo vrne nazaj v obrazec. Zaradi omejenega števila znakov, s katerimi lahko prikažemo število, je ta metoda omejena na največjo osnovo 36 (10 števk + 26 črk).

SERŠ Maribor : Strokovna gimnazija : 2006 : Cvetko Pirš