function generate(){
    let rows =parseInt( document.getElementById("row").value);
    console.log(rows);
    let kof = parseInt(document.getElementById("kof").value);
    console.log(kof);
    let baz = parseInt(document.getElementById("baz").value);
    console.log(baz);
    let cols = 0;
    cols += kof;
    cols += baz;
    cols += 1;
    console.log(cols);
    var table = document.createElement('table');
    
    table.id ="kofi";
    table.style.width  = '50px';
    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="x";
        input.style.width='30px';
        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 ="otrico";
tabl.style.width  = '50px';
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="-Коэффициент";
    input.style.width='120px';
    cell.appendChild(input);
    row.appendChild(cell);
}
tbod.appendChild(row);
}
tabl.appendChild(tbod);

// Добавляем таблицу в блок с id "tableContainer"
document.getElementById('otric').appendChild(tabl);
}


function inputtable(){
    var table= document.getElementById('kofi');
    var rows =table.querySelectorAll('tr');
    var constraint=[];
    rows.forEach(function(row) {
        var rowData = []; 
        var cellic = row.querySelectorAll('td input');
        cellic.forEach(function(cell) {
            rowData.push(parseInt(cell.value, 10));
        });
        constraint.push(rowData);
    });
    console.log(constraint);
    let constraints = Array.from(constraint);


    var table1 = document.getElementById('otrico');
    var cells = table1.querySelectorAll('td input');
    var pos=[];
    cells.forEach(function(cell){
        pos.push(parseInt(cell.value, 10));
    });
    console.log(pos);

    let objectiveFunctionCoefficients = Array.from(pos);
    let m =parseInt( document.getElementById("row").value); // Количество ограничений
    console.log(m);
    let kof = parseInt(document.getElementById("kof").value);
    console.log(kof);
    let baz = parseInt(document.getElementById("baz").value);
    console.log(baz);
    let cols = 0;
    cols += kof;
    cols += baz;
    cols += 1;

let n = cols-1; // Количество переменных

console.log(m);
console.log(n);
let table2 = []; // Создаем таблицу для симплекс метода
for(let i = 0; i < m+1; i++){
    table2 [i] =[];
    for(let j=0; j<n+1; j++){
        table2 [i][j]=0;
    }
}
console.log(table2);
// Заполняем таблицу с учетом ограничений и целевой функции
for (let i = 0; i < m; i++) {
    for (let j = 0; j < n; j++) {
        table2[i][j] = constraints[i][j];
    }
    table2[i][n] = constraints[i][n]; // Значения правой части ограничений
}

for (let j = 0; j < n; j++) {
    table2[m][j] = objectiveFunctionCoefficients[j]; // Коэффициенты целевой функции
}
while (true) {
    // Находим входящий разрешающий столбец
    let pivotColumn = -1;
    for (let j = 0; j < n; j++) {
        let min = table2[m][0];
        if (table2[m][j] < 0) {
            if (min > table2[m][j]) {
                min = table2[m][j];
                pivotColumn = j;
            } else {
                pivotColumn = j;
            }
        }
    }
    if (pivotColumn == -1) { // Если все коэффициенты целевой функции неотрицательны, завершаем метод
        break;
    }
    // Находим исходящую строку по минимальному отношению
    let pivotRow = -1;
    let minRatio = Number.MAX_VALUE;
    for (let i = 0; i < m; i++) {
        if (table2[i][pivotColumn] > 0) {
            let ratio = table2[i][n] / table2[i][pivotColumn];
            if (ratio < minRatio) {
                minRatio = ratio;
                pivotRow = i;
            }
        }
    }

    

    let pivotElement = table2[pivotRow][pivotColumn];
    for (let j = 0; j < n + 1; j++) {
        table2[pivotRow][j] /= pivotElement; // Делим строку на опорный элемент
    }

    // Обновляем таблицу
    for (let i = 0; i < m + 1; i++) {
        if (i !== pivotRow) {
            let multiplier = table2[i][pivotColumn];
            for (let j = 0; j < n + 1; j++) {
                table2[i][j] -= multiplier * table2[pivotRow][j]; // Вычитаем из всех строк кроме опорной
            }
        }
    }
}

console.log("Решение симплекс-методом:");
console.log("Значение целевой функции: " + table2[m][n]);
document.getElementById("result").textContent = table2[m][n];
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 < m+1; i++) {
    var rowa = document.createElement('tr');
    for (var j = 0; j < n+1; j++) {
        var cell = document.createElement('td');
         cell.appendChild(document.createTextNode(table2[i][j]));
        rowa.appendChild(cell);
    }
    tbodyy.appendChild(rowa);
}
tablee.appendChild(tbodyy);

// Добавляем таблицу в блок с id "tableContainer"
document.getElementById('otvetik').appendChild(tablee);
for (let i = 0; i < table2.length; i++) {
   
    console.log(table2[i].join(" \t "));

}

}