<body> <form name="matematika"> <table class="tabla"> <tr><td> <input type=text size=12 value=8 name="a"> <input type="button" value=" + " onClick="a_plus_b(this.form)">
<input type="button" value=" - " onClick="a_minus_b(this.form)">
<input type="button" value=" x " onClick="a_szor_b(this.form)">
<input type="button" value=" / " onClick="a_osztva_b(this.form)">
<input type="button" value=" ^ " onClick="a_pow_b(this.form)">
<input type="number" size=12 value=2 name="b"> = <input type "number" value=0 name="eredmeny" size=29>
</td></tr> </table> </form> </body>
function a_plus_b(form) { a=eval(form.a.value) b=eval(form.b.value) x=a+b form.eredmeny.value = x } function a_minus_b(form) { a=eval(form.a.value) b=eval(form.b.value) x=a-b form.eredmeny.value=x } function a_szor_b(form) { a=eval(form.a.value) b=eval(form.b.value) x=a*b form.eredmeny.value=x } function a_osztva_b(form) { a=eval(form.a.value) b=eval(form.b.value) x=a/b form.eredmeny.value = x } function a_pow_b(form) { a=eval(form.a.value) b=eval(form.b.value) x=Math.pow(a, b) form.eredmeny.value = x } //Megjegyzés: //pow= beépített matematikai függvény, //azaz felső index. //Angolul= Math.pow
input
type=text : karakterek beírására szolgáló ablak, melybe, írhatunk betűt vagy számot. Jelen esetben, csak számokat, mert a JavaScript fájl így lett megírva.
size=12 : Mennyi karakter jeleníthető meg az ablakban. Írhatunk többet is, de az nem lesz látható
value=8 : Az ablakban, kezdetkor megjelenő karakter, jelen esetben 8.
name="a" : Az "a" = ezen input ablakába beírt értékkel, melyet a (js) fájl dolgoz fel
input
type="button": Elküldő gomb. Egy billentyű, azaz gombformájú ablakot jelenít meg.
value=" + " : Az elküldő gombon, milyen felírat vagy karakterjel jelenjen meg, melyet az idézőjelek közé kell beírnunk. A megjelenő gomb szélességét megváltoztathatjuk, a beírt karakter és az idézőjelek közötti távolság megnövelésével (szóközbillentyű többszöri lenyomásával)
onClick="a_plus_b(this.form)" : Művelet végrehajtása, ha az egérrel rákattintunk. A JávaScript fájlban megírt programok közül, az hjtódjon végre, melynek azonosítója megegyezik az itt beírt azonosítóval. (a_plus_b )
input
type="number": Numerikus számok beírására szolgáló ablak. Szöveget, és Római számokat nem fogad el, azaz a műveletet nem hajtja végre.
size=12 : Mennyi karakter jeleníthető meg, az ablakban. Írhatunk többet is, de az nem lesz látható.
value=2 : Az ablakban, kezdetkor megjelenő karakter, jelen esetben 2.
name="b" : Az "b" egyenlő, ezen input ablakába beírt értékkel, melyet a (js) fájl dolgoz fel
input
type "number" : Numerikus számok beírására, megjelenítésére, szolgáló ablak. Jelen esetben, megjelenítési funkciója van.
value=0 : Az ablakban, kezdetkor megjelenő karakter, jelen esetben 0.
name="eredmeny" : A JavaScript által kiszámított értéket jeleníti meg. Az eredmény szó, egy azonosítót jelent, melynek meg kell egyezni a (js) fájlban beírt azonosítóval ( Tetszőleges azonosítót alkalmazhatunk, az eredmény szó helyett)
size=29 : Mennyi karakter jeleníthető meg, az ablakban.
0.123 * 0.3 = 0.0369 JavaScript eredménye = 0.036899999999999995 Javítás: JavaScript eredményét felszorozzuk 10 000-el, majd Math.ceil(eredmeny); meghatározással kerekíttünk, a kapott értéket visszaosztjuk 10 000-el, és megkapjuk a pontos értéket. |
JavaScript az egész-számoknál, 99,99%-ban jól dolgozik.
De, mem mindig kapunk, pontos eredményt.
Például szorzásnál:
10-el, 1000-el; 10 000-el, jó eredményeket ad.
100-al, 100 000-el, nem mindig ad, pontos eredményt.
| Szorzó = 10 (Tíz) | Szorzó = 100 (Száz) | Szorzó = 1000 (Ezer) |
|---|---|---|
11 * 10 = 110; 12 * 10 = 120; 23 * 10 = 230; 83 * 10 = 830; 93 * 10 = 930; 1.1 * 10 = 11; 1.2 * 10 = 12; 2.3 * 10 = 23; 8.3 * 10 = 83; 8.4 * 10 = 84; 9.3 * 10 = 93; 9.4 * 10 = 94; -93 * 10 = -930; -1.1 * 10 = -11; -1.2 * 10 = -12; -2.3 * 10 = -23; |
11 * 100 = 1100; 12 * 100 = 1200; 23 * 100 = 2300; 83 * 100 = 8300; 93 * 100 = 9300; 1.1 * 100 = 110.00000000000001; 1.2 * 100 = 120; 2.3 * 100 = 229.99999999999997; 8.3 * 100 = 830.0000000000001; 8.4 * 100 = 840; 9.3 * 100 = 930.0000000000001; 9.4 * 100 = 940; -93 * 100 = -9300; -1.1 * 100 = -110.00000000000001; -1.2 * 100 = -120; -2.3 * 100 = -229.99999999999997; |
11 * 1000 = 11000; 12 * 1000 = 12000; 23 * 1000 = 23000; 83 * 1000 = 83000; 93 * 1000 = 93000; 1.1 * 1000 = 1100; 1.2 * 1000 = 1200; 2.3 * 1000 = 2300; 8.3 * 1000 = 8300; 8.4 * 1000 = 8400; 9.3 * 1000 = 9300; 9.4 * 1000 = 9400; -93 * 1000 = -93000; -1.1 * 1000 = -1100; -1.2 * 1000 = -1200; -2.3 * 1000 = -2300; |
Minden érték, egészszám legyen.
A következő tömb adatai, max 1 db. tizedest tartalmaznak,
mindegyik tömbelem adata egész szám legyen, mínimum 10-el szorzunk.
De, szorozhatunk: 100-al; 1000-el; 10 000-el; 100 000-el; 1 000 000-val;
<script> var tomb = new Array(); tomb[0]=11; tomb[1]=12; tomb[2]=23; tomb[3]=83; tomb[4]=93; tomb[5]=1.1; tomb[6]=1.2; tomb[7]=2.3; tomb[8]=8.3; tomb[9]=8.4; tomb[10]=9.3; tomb[11]=9.4; var tombhossza=tomb.length; var keplet=10; // Szorzószám meghatározása. for(i=0; i < tombhossza; i++) { var tadat=tomb[i]; // Lekérdezett tömbelem adata. var szorzo=keplet; var ertek=tadat*szorzo; // Tömbelem adatának szorzása. KorrektFunction(tadat, szorzo, ertek); // function meghívása, paraméter átadással. } // ----- function alkalmazható, pozítív/negatív egész és tizedes számokhoz.--------------------- function KorrektFunction(tadat, szorzo, ertek) { var Mn ="-"; // A mínusz beazonosításhoz var xstr = ertek.toString(); // Számsor, string-re alakítása. var xstrh = ertek.toString().length; // Számsor hossza, ennyi számot tartalmaz. var xstr1=xstr.charAt(0); // Számsor, első értéke. (Lehet mínusz "-" is.) var tppoz=xstr.indexOf("."); // Tizedepont pozíciója. Nincs pont, akkor értéke = -1; var tpue=xstr.charAt(tppoz+1); // Tizedepont utáni, első érték. var tput=xstr.substring(tppoz,xstrh-1); var tputh=tput.length; // Tizedesek darabszáma. if(xstr1 == Mn && tpue==0) { ertek = Math.ceil(ertek); } if(xstr1 == Mn && tpue==9) { ertek = Math.ceil(ertek)-1; } if(xstr1 != Mn && tpue==0) { ertek = Math.ceil(ertek)-1; } if(xstr1 != Mn && tpue==9) { ertek = Math.ceil(ertek); } var adat=tadat+' * '+szorzo+' = '+ertek+';<br>'; document.write(adat); } </script> |