js, не вычисляется среднее

Я только начал учить Java Script, и вот пишу первую программу. Мне необходимо вычислить среднюю оценку по дисциплинам и среднюю оценку студента. Первая работает, а вот со второй возникли проблемы, она не работает вообще. Помогите пожалуйста исправить ошибку, может где-то что-то не доглядел?

var rows, columns;

function construieste() {
  //validareNr();
  rows = document.getElementById("rows").value;
  columns = document.getElementById("columns").value;
  var table = document.getElementById("table");
  document.getElementById("tableRez").innerHTML = '';
  //document.getElementById("err").innerHTML ='';
  var rezHtml = "<table>";
  rezHtml = rezHtml + "<caption class='denumire'>Tabelul pentru introducerea datelor</caption>";
  var nrColoane = (columns >= 23) ? 23 : columns;
  for (var i = 0; i <= rows; i++) {
    rezHtml = rezHtml + "<tr>";
    for (var j = 0; j <= nrColoane; j++) {
      if ((i == 0) && (j == 0)) {
        rezHtml = rezHtml + "<td style='background-color:#ff6666; color: white;'>Nume/Disciplina</td>";
      } else if (i == 0) {
        rezHtml = rezHtml + "<td style='background-color: #ffe6e6;'>Disc. " + j + "</td>";
      } else if (j == 0) {
        rezHtml = rezHtml + "<td style='background-color: #ffe6e6;'>Nume " + i + "</td>";
      } else {
        inputId = "xR" + i + "C" + j;
        rezHtml = rezHtml + "<td><input id='" + inputId + "' type='text' class='valoare' required autocomplete='off' title='De la 0 pana la 30' /></td>";
      }
    }
    rezHtml = rezHtml + "</tr>";
  }
  rezHtml = rezHtml + "</table>";
  rezHtml = rezHtml + '<input type="submit" value="Среднее дисциплины" onclick="javascript: afiseazaMedii(); return false;" />'
  rezHtml = rezHtml + '<input type="submit" value="Среднее студента" onclick="javascript: afiseazaMedii2(); return false;" />'
  table.innerHTML = rezHtml;
  return false;
}

function creareVariabileGlobale() {
  var valoareaCurenta;
  ValoriIntroduse = [];
  columns = document.getElementById("columns").value;
  rows = document.getElementById("rows").value;
  for (var i = 0; i < rows; i++) {
    ValoriIntroduse[i] = [];
    for (var j = 0; j < columns; j++) {
      inputId = "xR" + (i + 1) + "C" + (j + 1);
      valoareaCurenta = parseInt(0 + document.getElementById(inputId).value);
      ValoriIntroduse[i][j] = valoareaCurenta;
    }
  }
}

function afiseazaMedii() {
  var valoareaCurenta;
  ValoriIntroduse = [];
  columns = document.getElementById("columns").value;
  rows = document.getElementById("rows").value;
  for (var i = 0; i < rows; i++) {
    ValoriIntroduse[i] = [];
    for (var j = 0; j < columns; j++) {
      inputId = "xR" + (i + 1) + "C" + (j + 1);
      valoareaCurenta = parseInt(0 + document.getElementById(inputId).value);
      ValoriIntroduse[i][j] = valoareaCurenta;
    }
  }
  var sumeMedii = [];
  for (var j = 0; j < columns; j++) {
    sumeMedii[j] = 0;
    for (var i = 0; i < rows; i++) {
      sumeMedii[j] = sumeMedii[j] + ValoriIntroduse[i][j];
    }
  }
  //вывод средней дисциплины
  var tabelMedii = "<table>";
  tabelMedii = tabelMedii + "<tr><td style='background-color:#ff6666; color: white;'>Disciplina</td><td style='background-color:#ff6666; color: white;'>Media</td></tr>";
  for (var i = 0; i < columns; i++) {
    var valoare = parseFloat(sumeMedii[i] / rows).toFixed(2);
    tabelMedii = tabelMedii + "<tr><td style='background-color: #ffe6e6;'>Disc. " + (i + 1) + "</td>";
    tabelMedii = tabelMedii + "<td style='background-color: #ffe6e6;'>" + valoare + "</td></tr>";
  }
  tabelMedii = tabelMedii + "</table>";
  document.getElementById("tableRez").innerHTML = tabelMedii;
  return false;
}

function afiseazaMedii2() {
  var valoareaCurenta;
  ValoriIntroduse = [];
  columns = document.getElementById("columns").value;
  rows = document.getElementById("rows").value;
  for (var i = 0; i < rows; i++) {
    ValoriIntroduse[i] = [];
    for (var j = 0; j < columns; j++) {
      inputId = "xR" + (i + 1) + "C" + (j + 1);
      valoareaCurenta = parseInt(0 + document.getElementById(inputId).value);
      ValoriIntroduse[i][j] = valoareaCurenta;
    }
  }
  var sumeMedii2 = [];
  for (var i = 0; i < rows; j++) {
    sumeMedii2[i] = 0;
    for (var j = 0; j < columns; j++) {
      sumeMedii2[i] = sumeMedii2[i] + ValoriIntroduse[i][j];
    }
  }
  //вывод средней студента
  var tabelMedii2 = "<table>";
  tabelMedii2 = tabelMedii2 + "<tr><td style='background-color:#ff6666; color: white;'>Nume</td><td style='background-color:#ff6666; color: white;'>Media</td></tr>";
  for (var i = 0; i < columns; i++) {
    var valoare = parseFloat(sumeMedii2[i] / rows).toFixed(2);
    tabelMedii2 = tabelMedii2 + "<tr><td style='background-color: #ffe6e6;'>Nume. " + (i + 1) + "</td>";
    tabelMedii2 = tabelMedii2 + "<td style='background-color: #ffe6e6;'>" + valoare + "</td></tr>";
  }
  tabelMedii2 = tabelMedii2 + "</table>";
  document.getElementById("tableRez2").innerHTML = tabelMedii;
  return false;
}

function years() {
  var y, v;
  y = document.getElementById("year").value;
  v = new Date().getFullYear();
  document.getElementById("god").innerHTML = "Ваш возраст- " + (v - y);
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<body>
  <div class="form">
    <form>
      <p class="denumire">Заполните поля формы</p>
      <label>Количество студентов:<input type="number" min="1" max="30" title="Максимальное количество 30" id="rows" value="2" /></label><br /><br />
      <label>Количество дисциплин:<input type="number" min="1" max="23" title="Максимальное колиство 23" id="columns" value="3" /></label></br><br />
      <input type="submit" value="Создать таблицу" onclick="javascript: construieste(); return false;" />
    </form>
  </div>

  <div class="form">
    <form>
      <p class="denumire">Completati campurile de mai jos</p>
      <label>Введите ваш год рождения:<input type="number" min="1950" max="2000" title="Максимальное количество 2000" id="year" value="1999" /></label><br /><br />
      <input type="submit" value="Узнай свой возраст" onclick="javascript: years(); return false;" />
    </form>
  </div>

  <div id='table'></div>
  <div id='tableRez'></div>
  <div id='tableRez2'></div>
  <div id='god'></div>
</body>

</html>


Ответы (1 шт):

Автор решения: Igor

var rows, columns;

function construieste() {
  //validareNr();
  rows = document.getElementById("rows").value;
  columns = document.getElementById("columns").value;
  var table = document.getElementById("table");
  document.getElementById("tableRez").innerHTML = '';
  //document.getElementById("err").innerHTML ='';
  var rezHtml = "<table>";
  rezHtml = rezHtml + "<caption class='denumire'>Tabelul pentru introducerea datelor</caption>";
  var nrColoane = (columns >= 23) ? 23 : columns;
  for (var i = 0; i <= rows; i++) {
    rezHtml = rezHtml + "<tr>";
    for (var j = 0; j <= nrColoane; j++) {
      if ((i == 0) && (j == 0)) {
        rezHtml = rezHtml + "<td style='background-color:#ff6666; color: white;'>Nume/Disciplina</td>";
      } else if (i == 0) {
        rezHtml = rezHtml + "<td style='background-color: #ffe6e6;'>Disc. " + j + "</td>";
      } else if (j == 0) {
        rezHtml = rezHtml + "<td style='background-color: #ffe6e6;'>Nume " + i + "</td>";
      } else {
        inputId = "xR" + i + "C" + j;
        rezHtml = rezHtml + "<td><input id='" + inputId + "' type='text' class='valoare' required autocomplete='off' title='De la 0 pana la 30' /></td>";
      }
    }
    rezHtml = rezHtml + "</tr>";
  }
  rezHtml = rezHtml + "</table>";
  rezHtml = rezHtml + '<input type="submit" value="Среднее дисциплины" onclick="javascript: afiseazaMedii(); return false;" />'
  rezHtml = rezHtml + '<input type="submit" value="Среднее студента" onclick="javascript: afiseazaMedii2(); return false;" />'
  table.innerHTML = rezHtml;
  return false;
}

function creareVariabileGlobale() {
  var valoareaCurenta;
  ValoriIntroduse = [];
  columns = document.getElementById("columns").value;
  rows = document.getElementById("rows").value;
  for (var i = 0; i < rows; i++) {
    ValoriIntroduse[i] = [];
    for (var j = 0; j < columns; j++) {
      inputId = "xR" + (i + 1) + "C" + (j + 1);
      valoareaCurenta = parseInt(0 + document.getElementById(inputId).value);
      ValoriIntroduse[i][j] = valoareaCurenta;
    }
  }
}

function afiseazaMedii() {
  var valoareaCurenta;
  ValoriIntroduse = [];
  columns = document.getElementById("columns").value;
  rows = document.getElementById("rows").value;
  for (var i = 0; i < rows; i++) {
    ValoriIntroduse[i] = [];
    for (var j = 0; j < columns; j++) {
      inputId = "xR" + (i + 1) + "C" + (j + 1);
      valoareaCurenta = parseInt(0 + document.getElementById(inputId).value);
      ValoriIntroduse[i][j] = valoareaCurenta;
    }
  }
  var sumeMedii = [];
  for (var j = 0; j < columns; j++) {
    sumeMedii[j] = 0;
    for (var i = 0; i < rows; i++) {
      sumeMedii[j] = sumeMedii[j] + ValoriIntroduse[i][j];
    }
  }
  //вывод средней дисциплины
  var tabelMedii = "<table>";
  tabelMedii = tabelMedii + "<tr><td style='background-color:#ff6666; color: white;'>Disciplina</td><td style='background-color:#ff6666; color: white;'>Media</td></tr>";
  for (var i = 0; i < columns; i++) {
    var valoare = parseFloat(sumeMedii[i] / rows).toFixed(2);
    tabelMedii = tabelMedii + "<tr><td style='background-color: #ffe6e6;'>Disc. " + (i + 1) + "</td>";
    tabelMedii = tabelMedii + "<td style='background-color: #ffe6e6;'>" + valoare + "</td></tr>";
  }
  tabelMedii = tabelMedii + "</table>";
  document.getElementById("tableRez").innerHTML = tabelMedii;
  return false;
}

function afiseazaMedii2() {
  var valoareaCurenta;
  ValoriIntroduse = [];
  columns = +document.getElementById("columns").value;
  rows = +document.getElementById("rows").value;
  for (var i = 0; i < rows; i++) {
    ValoriIntroduse[i] = [];
    for (var j = 0; j < columns; j++) {
      inputId = "xR" + (i + 1) + "C" + (j + 1);
      valoareaCurenta = parseInt(0 + document.getElementById(inputId).value);
      ValoriIntroduse[i][j] = valoareaCurenta;
    }
  }
  var sumeMedii2 = [];
  for (var i = 0; i < rows; i++) {
    sumeMedii2[i] = 0;
    for (var j = 0; j < columns; j++) {
      sumeMedii2[i] = sumeMedii2[i] + ValoriIntroduse[i][j];
    }
  }
  //вывод средней студента
  var tabelMedii2 = "<table>";
  tabelMedii2 = tabelMedii2 + "<tr><td style='background-color:#ff6666; color: white;'>Nume</td><td style='background-color:#ff6666; color: white;'>Media</td></tr>";
  for (var i = 0; i < rows; i++) {
    var valoare = parseFloat(sumeMedii2[i] / columns).toFixed(2);
    tabelMedii2 = tabelMedii2 + "<tr><td style='background-color: #ffe6e6;'>Nume. " + (i + 1) + "</td>";
    tabelMedii2 = tabelMedii2 + "<td style='background-color: #ffe6e6;'>" + valoare + "</td></tr>";
  }
  tabelMedii2 = tabelMedii2 + "</table>";
  document.getElementById("tableRez2").innerHTML = tabelMedii2;
  return false;
}

function years() {
  var y, v;
  y = document.getElementById("year").value;
  v = new Date().getFullYear();
  document.getElementById("god").innerHTML = "Ваш возраст- " + (v - y);
}
<div class="form">
  <form>
    <p class="denumire">Заполните поля формы</p>
    <label>Количество студентов:<input type="number" min="1" max="30" title="Максимальное количество 30" id="rows" value="2" /></label><br /><br />
    <label>Количество дисциплин:<input type="number" min="1" max="23" title="Максимальное колиство 23" id="columns" value="3" /></label><br /><br />
    <input type="button" value="Создать таблицу" onclick="javascript: construieste(); return false;" />
  </form>
</div>

<div class="form">
  <form>
    <p class="denumire">Completati campurile de mai jos</p>
    <label>Введите ваш год рождения:<input type="number" min="1950" max="2000" title="Максимальное количество 2000" id="year" value="1999" /></label><br /><br />
    <input type="button" value="Узнай свой возраст" onclick="javascript: years(); return false;" />
  </form>
</div>

<div id='table'></div>
<div id='tableRez'></div>
<div id='tableRez2'></div>
<div id='god'></div>

→ Ссылка