HTML
<body>
<div class="calculator">
<input type="text" id="display" disabled />
<!-- Инженерные кнопки
<div class="advanced-buttons">
<button onclick="appendValue('(')">(</button>
<button onclick="appendValue(')')">)</button>
<button onclick="appendValue('Math.sin(')">sin</button>
<button onclick="appendValue('Math.cos(')">cos</button>
<button onclick="appendValue('Math.tan(')">tan</button>
<button onclick="appendValue('Math.log(')">log</button>
<button onclick="appendValue('Math.sqrt(')">√</button>
<button onclick="appendValue('**')">xⁿ</button>
<button onclick="appendValue('Math.PI')">π</button>
<button onclick="appendValue('Math.E')">e</button>
</div> -->
<!-- Основные кнопки -->
<div class="buttons">
<button onclick="appendValue('7')">7</button>
<button onclick="appendValue('8')">8</button>
<button onclick="appendValue('9')">9</button>
<button onclick="operate('/')">/</button>
<button onclick="appendValue('4')">4</button>
<button onclick="appendValue('5')">5</button>
<button onclick="appendValue('6')">6</button>
<button onclick="operate('*')">x</button>
<button onclick="appendValue('1')">1</button>
<button onclick="appendValue('2')">2</button>
<button onclick="appendValue('3')">3</button>
<button onclick="operate('-')">-</button>
<button onclick="appendValue('0')">0</button>
<button onclick="appendValue('.')">.</button>
<button onclick="calculate()">=</button>
<button onclick="operate('+')">+</button>
<button onclick="clearDisplay()" class="clear">C</button>
</div>
</div>
<script src="script.js"></script>
</body>
CSS
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f3f3f3;
margin: 0;
font-family: Arial, sans-serif;
}
.calculator {
background: #fff;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
padding: 20px;
width: 400px;
display: flex;
flex-direction: column;
align-items: center;
}
#display {
width: 100%;
height: 60px;
margin-bottom: 20px;
font-size: 1.5rem;
text-align: right;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.advanced-buttons,
.buttons {
display: grid;
gap: 10px;
width: 100%;
}
.advanced-buttons {
grid-template-columns: repeat(5, 1fr); /* Инженерные кнопки: 5 колонок */
}
.buttons {
grid-template-columns: repeat(4, 1fr); /* Основные кнопки: 4 колонки */
}
button {
height: 60px;
font-size: 1.2rem;
border: none;
background: #f0f0f0;
border-radius: 5px;
cursor: pointer;
transition: background 0.3s;
display: flex;
justify-content: center;
align-items: center;
}
button:hover {
background: #ddd;
}
button.clear {
grid-column: span 4; /* Кнопка очистки занимает всю строку */
background: #ff4d4d;
color: white;
}
JS
const display = document.getElementById("display");
// Добавление значения на дисплей
function appendValue(value) {
display.value += value;
}
// Очистка дисплея
function clearDisplay() {
display.value = "";
}
// Добавление операций
function operate(operator) {
display.value += " " + operator + " ";
}
// Вычисление выражения
function calculate() {
try {
// Используем eval для выполнения математических операций
display.value = eval(display.value.replace("x", "*"));
} catch (e) {
display.value = "Error";
}
}