$(document).ready(function(){
$('#count_field').keyup(function(){
$(this).val($(this).val().replace(/[^\d]/,''));
});
$('#insert_field').click(function(){
var count = parseInt($('#count_field').val());
if (count > 0) {
var content = '';
for(var i=0; i < count; i++) {
content += '<div class="field_wrap" id="field_wrap_'+(i+1)+'">'+
'<label for="field_'+(i+1)+'">Значение '+(i+1)+':</label>'+
'<input class="field" onkeyup="field_keyup($(this));" type="text" id="field_'+(i+1)+'" />'+
'</div>';
}
content += '<div><button id="do_count" onclick="do_count();">Рассчитать</button></div>'
//$('#initial').fadeOut('slow');
$('#insertial').html(content);
$('#insertial').fadeIn('slow');
}
});
});
//запрет ввода нечисловых символов
function field_keyup(obj) {
obj.val(obj.val().replace(/[^\d\.?\d]/,''));
}
//функция обработки данных
function do_count() {
var arr = new Array();
$('.field').each(function(){
if($(this).val() > 0) {
arr.push($(this).val());
} else {
arr.push(0);
}
});
var max = max_arr(arr);
var min = min_arr(arr);
var dx = parseFloat(((max-min)/12));
var A = new Array();
var tmp;
for(var i = 0; i <= 12 ; i++) {
tmp = (parseFloat(min) + (dx*i)).toFixed(2);
A.push(tmp);
}
$('#result_table').html(result_content(A,arr));
}
//функция нахождения максимального элемента массива
function max_arr(arr) {
var max = arr[0];
for(var i=0; i<arr.length; i++) {
if(max<parseFloat(arr[i])) {
max = arr[i];
}
}
return parseFloat(max).toFixed(2);
}
//функция нахождения минимального элемента массива
function min_arr(arr) {
var min = arr[0];
for(var i=0; i<arr.length; i++) {
if(min>parseFloat(arr[i])) {
min = arr[i];
}
}
return parseFloat(min,6).toFixed(2);
}
//функция вывода итоговой таблицы
function result_content(A,arr) {
var content = '<table width="100%" border=1>'+
'<tr>'+
//Интервалы
'<td>Интервалы</td>';
for(var i = 0 ; i < (A.length-1) ; i++) {
content += '<td>A'+i+'-A'+(i+1)+'</td>';
}
//Интервалы в числовом виде
content += '</tr>'+
'<tr>'+
'<td>В числовом виде</td>';
for(i = 0 ; i < (A.length-1) ; i++) {
content += '<td>'+A[i]+'-'+A[(i+1)]+'</td>';
}
//Количество вхождений
content += '</tr>'+
'<tr>'+
'<td>Количество вхождений</td>';
var k;
for(i = 0 ; i < (A.length-1) ; i++) {
k = 0;
for(var j = 0 ; j < (arr.length) ; j++) {
if((parseFloat(arr[j]) >= parseFloat(A[0]) && parseFloat(arr[j]) <= parseFloat(A[1]) && i == 0) || (parseFloat(arr[j]) > parseFloat(A[i]) && parseFloat(arr[j]) <= parseFloat(A[(i+1)]) && i != 0)) {
k++;
}
}
content += '<td>'+k+'</td>';
}
//Вхождения
content += '</tr>'+
'<tr>'+
'<td>Вхождения</td>';
var inside = new Array();
for(i = 0 ; i < (A.length-1) ; i++) {
var str = new Array();
for(var j = 0 ; j < (arr.length) ; j++) {
if((parseFloat(arr[j]) >= parseFloat(A[0]) && parseFloat(arr[j]) <= parseFloat(A[1]) && i == 0) || (parseFloat(arr[j]) > parseFloat(A[i]) && parseFloat(arr[j]) <= parseFloat(A[(i+1)]) && i != 0)) {
str.push('['+j+'-й элемент] = '+arr[j]);
}
}
content += '<td>'+str.join(',<br />')+'</td>';
}
//Сумма вхождений
content += '</tr>'+
'<tr>'+
'<td>Сумма вхождений</td>';
var summ = 0;
for(i = 0 ; i < (A.length-1) ; i++) {
summ = 0;
for(var j = 0 ; j < (arr.length) ; j++) {
if((parseFloat(arr[j]) >= parseFloat(A[0]) && parseFloat(arr[j]) <= parseFloat(A[1]) && i == 0) || (parseFloat(arr[j]) > parseFloat(A[i]) && parseFloat(arr[j]) <= parseFloat(A[(i+1)]) && i != 0)) {
summ += parseFloat(arr[j]);
}
}
content += '<td>'+summ.toFixed(2)+'</td>';
}
content +=
'</tr>'+
'</table>';
return content;
}