function generate(){ var rows = document.getElementById("row").value; console.log(rows); var cols = document.getElementById("col").value; console.log(cols); var table = document.createElement('table'); table.id ="tarif"; table.style.width = '100px'; table.style.border = '1px solid black'; // Создаем тело таблицы var tbody = document.createElement('tbody'); for (var i = 0; i < rows; i++) { var row = document.createElement('tr'); for (var j = 0; j < cols; j++) { var cell = document.createElement('td'); var input = document.createElement('input'); input.type = "number"; input.placeholder="тариф"; cell.appendChild(input); row.appendChild(cell); } tbody.appendChild(row); } table.appendChild(tbody); // Добавляем таблицу в блок с id "tableContainer" document.getElementById('table_gen').appendChild(table); var tabl = document.createElement('table'); tabl.id ="potreb"; tabl.style.width = '100px'; tabl.style.border = '1px solid black'; // Создаем тело таблицы var tbod = document.createElement('tbody'); for (var i = 0; i < 1; i++) { var row = document.createElement('tr'); for (var j = 0; j < cols; j++) { var cell = document.createElement('td'); var input = document.createElement('input'); input.type = "number"; input.placeholder="потребитель"; cell.appendChild(input); row.appendChild(cell); } tbod.appendChild(row); } tabl.appendChild(tbod); // Добавляем таблицу в блок с id "tableContainer" document.getElementById('pred_gen').appendChild(tabl); var tabi = document.createElement('table'); tabi.id ="postav"; tabi.style.width = '100px'; tabi.style.border = '1px solid black'; // Создаем тело таблицы var tbo = document.createElement('tbody'); for (var i = 0; i < 1; i++) { var ro = document.createElement('tr'); for (var j = 0; j < cols; j++) { var cell = document.createElement('td'); var input = document.createElement('input'); input.type = "number"; input.placeholder="склад"; cell.appendChild(input); ro.appendChild(cell); } tbo.appendChild(ro); } tabi.appendChild(tbo); // Добавляем таблицу в блок с id "tableContainer" document.getElementById('table_postav').appendChild(tabi); } function inputtable(){ var table1 = document.getElementById('postav'); var cells = table1.querySelectorAll('td input'); var pos=[]; cells.forEach(function(cell){ pos.push(parseInt(cell.value, 10)); }); console.log(pos); var table2 = document.getElementById('potreb'); var celli = table2.querySelectorAll('td input'); var pot=[]; celli.forEach(function(cell){ pot.push(parseInt(cell.value, 10)); }); console.log(pot); var table3 = document.getElementById('tarif'); var rows =table3.querySelectorAll('tr'); var tari=[]; rows.forEach(function(row) { var rowData = []; // Создаем временный массив для хранения данных из текущей строки // Получаем все ячейки текущей строки var cellic = row.querySelectorAll('td input'); // Проходимся по каждой ячейке и добавляем ее значение во временный массив cellic.forEach(function(cell) { rowData.push(parseInt(cell.value, 10)); // Преобразуем значение в число и добавляем его во временный массив }); // Добавляем временный массив в основной двумерный массив tari.push(rowData); }); let post = Array.from(pos); let potr = Array.from(pot); let tarif = Array.from(tari); console.log(tarif); let n=0; let m=0; for(let i = 0; i < post.length; i++){ n++; } for(let i = 0; i < potr.length; i++){ m++; } let tarif1= []; for(let i = 0; i < n; i++){ tarif1[i] =[]; for(let j=0; j acc + val, 0) > 0 && potr.reduce((acc, val) => acc + val, 0) > 0) { let buffI = 0; let buffJ = 0; let min = 999999; for (let i = 0; i < tarif.length; i++) { for (let j = 0; j < tarif[i].length; j++) { if (tarif[i][j] < min) { if (potr[j] > 0 && post[i] > 0) { buffJ = j; buffI = i; min = tarif[i][j]; } } } } if (post[buffI] >= potr[buffJ]) { tar[buffI][buffJ] = tarif[buffI][buffJ]; tarif1[buffI][buffJ] = potr[buffJ]; post[buffI] -= potr[buffJ]; potr[buffJ] = 0; sum += tarif1[buffI][buffJ] * min; count++; } else if (post[buffI] < potr[buffJ] && post[buffI] !== 0) { tar[buffI][buffJ] = tarif[buffI][buffJ]; potr[buffJ] -= post[buffI]; tarif1[buffI][buffJ] = post[buffI]; post[buffI] = 0; sum += tarif1[buffI][buffJ] * min; count++; } } // if(count == vir){ // console.log("опорный план вырожденный"); // } // else{ // console.log("опорный план невырожденный"); // } console.log("Целевая функция = " + sum); console.log("Матрица совершенных поставок:"); for (let i = 0; i < tarif1.length; i++) { console.log(tarif1[i].join(" \t ")); } var tablee = document.createElement('table'); tablee.id ="otvet"; tablee.style.width = '100px'; tablee.style.border = '1px solid black'; // Создаем тело таблицы var tbodyy = document.createElement('tbody'); for (var i = 0; i < n; i++) { var rowa = document.createElement('tr'); for (var j = 0; j < m; j++) { var cell = document.createElement('td'); cell.appendChild(document.createTextNode(tarif1[i][j])); rowa.appendChild(cell); } tbodyy.appendChild(rowa); } tablee.appendChild(tbodyy); // Добавляем таблицу в блок с id "tableContainer" document.getElementById('otvet').appendChild(tablee); document.getElementById("result").textContent = sum; } function handleFile() { const fileInput = document.getElementById('csvFileInput'); const file = fileInput.files[0]; const reader = new FileReader(); reader.onload = function(event) { const content = event.target.result; processData(content); }; reader.readAsText(file); } function processData(content) { const lines = content.split('\n'); const header = lines[0].split(';'); let postt = []; let pottr = []; let tarif = []; for (let i = 1; i < lines.length; i++) { if (lines[i].trim() !== '') { const values = lines[i].split(';').map(Number); if (i === 1) { postt.push(values); } else if (i === 2) { pottr.push(values); } else { tarif.push(values); } } } console.log('Первый числовой массив:', postt); console.log('Второй числовой массив:', pottr); console.log('Двумерный массив:', tarif); let n=0; let m=0; for(let i =0; i< postt.length;i++){ let s=0; for(let j =0; j acc + val, 0) > 0 && potr.reduce((acc, val) => acc + val, 0) > 0) { let buffI = 0; let buffJ = 0; let min = 999999; for (let i = 0; i < tarif.length; i++) { for (let j = 0; j < tarif[i].length; j++) { if (tarif[i][j] < min) { if (potr[j] > 0 && post[i] > 0) { buffJ = j; buffI = i; min = tarif[i][j]; } } } } if (post[buffI] >= potr[buffJ]) { tar[buffI][buffJ] = tarif[buffI][buffJ]; tarif1[buffI][buffJ] = potr[buffJ]; post[buffI] -= potr[buffJ]; potr[buffJ] = 0; sum += tarif1[buffI][buffJ] * min; count++; } else if (post[buffI] < potr[buffJ] && post[buffI] !== 0) { tar[buffI][buffJ] = tarif[buffI][buffJ]; potr[buffJ] -= post[buffI]; tarif1[buffI][buffJ] = post[buffI]; post[buffI] = 0; sum += tarif1[buffI][buffJ] * min; count++; } } // if(count == vir){ // console.log("опорный план вырожденный"); // } // else{ // console.log("опорный план невырожденный"); // } console.log("Целевая функция = " + sum); console.log("Матрица совершенных поставок:"); for (let i = 0; i < tarif1.length; i++) { console.log(tarif1[i].join(" \t ")); } var tablee = document.createElement('table'); tablee.id ="otvet"; tablee.style.width = '100px'; tablee.style.border = '1px solid black'; // Создаем тело таблицы var tbodyy = document.createElement('tbody'); for (var i = 0; i < n; i++) { var rowa = document.createElement('tr'); for (var j = 0; j < m; j++) { var cell = document.createElement('td'); cell.appendChild(document.createTextNode(tarif1[i][j])); rowa.appendChild(cell); } tbodyy.appendChild(rowa); } tablee.appendChild(tbodyy); // Добавляем таблицу в блок с id "tableContainer" document.getElementById('otvett').appendChild(tablee); document.getElementById("resultt").textContent = sum; }