1
0
This commit is contained in:
2024-05-23 19:40:42 +03:00
parent f6806d8a5a
commit fbcdbf4e12
5 changed files with 248 additions and 0 deletions

97
Лаб8/Сайт/main.js Normal file
View File

@@ -0,0 +1,97 @@
let complexNumbers = [];
let selectedComplexIndex = null;
function createComplexNumber() {
const realPart = parseFloat(document.getElementById('real-part').value);
const imaginaryPart = parseFloat(
document.getElementById('imaginary-part').value
);
if (isNaN(realPart) || isNaN(imaginaryPart)) {
alert(
'Пожалуйста, введите корректные значения для действительной и мнимой частей.'
);
return;
}
const complex = new Complex(realPart, imaginaryPart);
complexNumbers.push(complex);
renderComplexNumbers();
clearActionsLog();
}
function renderComplexNumbers() {
const container = document.getElementById('complex-numbers');
container.innerHTML = '';
complexNumbers.forEach((complex, index) => {
const complexDiv = document.createElement('div');
complexDiv.className = 'complex-number';
complexDiv.innerHTML = `
<strong>Комплексное число ${
index + 1
}:</strong> ${complex.toString()}<br>
<button onclick="setSelectedComplex(${index})">Выбрать</button>
`;
container.appendChild(complexDiv);
});
}
function setSelectedComplex(index) {
selectedComplexIndex = index;
document.getElementById('selected-complex').textContent = `Выбрано число ${
index + 1
}: ${complexNumbers[index].toString()}`;
}
function performOperation(operation) {
if (selectedComplexIndex === null) {
alert('Пожалуйста, выберите комплексное число.');
return;
}
const complex = complexNumbers[selectedComplexIndex];
const realPart = parseFloat(document.getElementById('real-part-op').value);
const imaginaryPart = parseFloat(
document.getElementById('imaginary-part-op').value
);
const otherComplex = new Complex(realPart, imaginaryPart);
if (isNaN(realPart) || isNaN(imaginaryPart)) {
alert(
'Пожалуйста, введите корректные значения для действительной и мнимной частей.'
);
return;
}
if (operation === 'add') {
complex.add(otherComplex);
} else if (operation === 'subtract') {
complex.subtract(otherComplex);
} else if (operation === 'multiply') {
complex.multiply(otherComplex);
} else if (operation === 'divide') {
complex.divide(otherComplex);
}
renderComplexNumbers();
clearActionsLog();
logActions(complex);
}
function clearActionsLog() {
const log = document.getElementById('actions-log');
log.textContent = '';
}
function logActions(complex) {
const log = document.getElementById('actions-log');
complex.actions.forEach((action) => {
log.textContent += complex.formatAction(action) + '\n';
});
}
document.addEventListener('DOMContentLoaded', () => {
renderComplexNumbers();
});