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>