❗️ Ответ сгенерирован чат-ботом GigaChat
⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дано целое число N и набор из N пар чисел (m, v) — данные о массе m и объеме v деталей, изготовленных из различных материалов. Вывести номер детали, изготовленной из материала максимальной плотности, а также величину этой максимальной плотности. Плотность P вычисляется по формуле P = m/v
✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.
Для решения задачи на языке JavaScript нужно написать функцию, которая принимает массив пар чисел
(m, v)
и возвращает индекс детали с наибольшей плотностью и саму максимальную плотность. Вот пример программы:
// Функция для нахождения номера детали с максимальной плотностью
function findMaxDensity(details) {
// Проверка входных данных
if (!Array.isArray(details) || details.length === 0) {
return null;
}
let maxDensity = Number.NEGATIVE_INFINITY;
let maxIndex = -1;
for (let i = 0; i < details.length; i++) {
const [mass, volume] = details[i];
// Вычисляем плотность текущей детали
const density = mass / volume;
// Если текущая плотность больше максимальной, обновляем значения
if (density > maxDensity) {
maxDensity = density;
maxIndex = i + 1; // Нумерация начинается с 1
}
}
return { index: maxIndex, density: maxDensity };
}
// Пример использования функции
const details = [
[10, 20], // Плотность = 0.5
[15, 30], // Плотность = 0.5
[25, 40], // Плотность = 0.625
[35, 50], // Плотность = 0.7
[45, 60] // Плотность = 0.75
];
const result = findMaxDensity(details);
console.log(`Номер детали с максимальной плотностью: ${result.index}`);
console.log(`Максимальная плотность: ${result.density.toFixed(3)}`);
### Объяснение кода:
1.
Функция `findMaxDensity` принимает массив
details
, где каждая пара представляет собой массу и объем детали.
2. Внутри функции инициализируются переменные
maxDensity
и
maxIndex
. Изначально максимальная плотность задается как отрицательная бесконечность (
Number.NEGATIVE_INFINITY
), чтобы любая положительная плотность была больше начального значения.
3. В цикле перебираются все пары
(массa, объем)
и вычисляется их плотность. Если текущая плотность больше максимальной, то обновляются значения
maxDensity
и
maxIndex
.
4. После завершения цикла функция возвращает объект с номером детали (индекс плюс единица, так как нумерация начинается с единицы) и значением максимальной плотности.
5. В примере использования создается массив деталей и вызывается функция
findMaxDensity
. Результат выводится в консоль.
Этот код решает поставленную задачу и выводит номер детали с максимальной плотностью вместе со значением этой плотности.