<html>
<head>
<script type="text/javascript">
// http://www.webdeveloper.com/forum/showthread.php?279263-Very-new-to-Javascript
// http://www.w3schools.com/jsref/jsref_unshift.asp
// http://www.w3schools.com/jsref/jsref_obj_array.asp
// http://www.w3schools.com/jsref/jsref_obj_string.asp
// http://www.w3schools.com/jsref/jsref_charat.asp
// http://www.w3schools.com/jsref/jsref_obj_regexp.asp
// çarpma işlemi
// multiplication
// çarpma işlemini yapmaya başlayalım
function multiplication(num, num2, dec) {
// alert(' baştaki dec = '+dec);
// dizilerin eleman sayıları aynı değilse, dizinin baş kısmına 0 ekleyerek, eleman sayılarını aynı yapalım.
while(num.length > num2.length) { num2.unshift(0); }
while(num2.length > num.length) { num.unshift(0); }
var netice = [];
var i, k, t, basamak, elde = 0, L = num.length -1;
for(i=L; i>=0; i--) {
basamak = elde;
t=i;
for(k = L; k>=i; k--) {
basamak += num[k] * num2[t];
t++;
}
if(basamak>9) { elde = parseInt(basamak/10); netice.unshift(basamak % 10); }
if(basamak < 10) { elde = 0; netice.unshift(basamak) ; }
}
var p, r = L - 1, u = r, y;
for( p= r; p >=0; p--) {
y=p;
basamak = elde;
for( m = 0; m<=p; m++) {
basamak += num[m] * num2[y]; y--;
}
if(basamak>9) { elde = parseInt(basamak/10); netice.unshift(basamak % 10); }
if(basamak < 10) { elde = 0; netice.unshift(basamak) ; }
}
if(elde > 0) {
netice.unshift(elde);
}
// dizide hangi sayıdan önce nokta olması gerektiğini belirleyelim.
if(dec > 0 ) { var say = netice.length - dec; netice[say] = '.'+ netice[say]; }
// diziyi stringe çevirelim. Baş kısımda 0 var ise bunları atalım.
var s = netice.join('').replace(/^0+/,'');
//alert('s = '+ s);
return s;
}
function bul() {
var el = document.convert.ins.value;
// metin kutusuna sayı girip girmediğini kontrol edelim
var re = /^\d+(\.\d+)?$/;
// alert(re.test(el));
if(re.test(el)== false) { alert('enter a number (1.4 or 14 )'); return false;}
var A = []; // bu dizinin içine, metin alanına girilen sayıyı yerleştireceğiz
var dec=0; // ondalık basamak sayısı
var i;
for( i=0; i<el.length; i++) {
if(el.charAt(i) != '.') { A[A.length] = el.charAt(i); }
if(el.charAt(i) == '.'){ dec = el.length - (i+1); }
}
//alert('A = '+A);
//alert('dec = '+dec);
var B = [2,5,4]; // 2.54 sayısındaki rakamları sırayla dizi içine yerleştirdik
dec = dec + 2 ; // 2.54 sayısında iki tane ondalık basamak var. Onu da ekleyelim
//alert('dec = ' + dec);
var result = document.convert.cms;
result.value = multiplication(A, B, dec);
}
</script>
</head>
<body>
<FORM ACTION="#" NAME="convert" >
Enter Inches
<INPUT TYPE=TEXT NAME="ins"><BR><BR><input type="button" value="convert" onclick='bul()'>
<BR><BR>
<INPUT TYPE=TEXT NAME="cms" readonly> centimetres
</FORM>
</body>
</html>