ML7. Смесь

Задача. Смешано [latex]v_1[/latex] литров воды температуры [latex]t_1[/latex] с [latex]v_2[/latex] литрами воды температуры [latex]t_2[/latex]. Найти объем и температуру образовавшейся смеси.

Алгоритм решения

Из физики мы знаем, что
[latex]Q_3 = Q_1 + Q_2[/latex],
[latex]Q = m \cdot C \cdot t[/latex],
[latex]m = \rho \cdot v[/latex],
где
[latex]Q[/latex] — количество теплоты,
[latex]m[/latex] — масса,
[latex]C[/latex] — теплоемкость,
[latex]t[/latex] — температура,
[latex]\rho[/latex] — плотность,
[latex]v[/latex] — объем.
Отсюда объём образовавшейся смеси
[latex]v_3 = v_1 + v_2[/latex],
а её температура
[latex]t_3 = \frac{\rho \cdot v_1 \cdot C \cdot t_1 + \rho \cdot v_2 \cdot C \cdot t_2}{\rho \cdot v_3 \cdot C} = \frac{\rho \cdot C \cdot (v_1 \cdot t_1 + v_2 \cdot t_2)}{\rho \cdot v_3 \cdot C} = \frac{v_1 \cdot t_1 + v_2 \cdot t_2}{v_3}[/latex].

Тесты

Входные данные Выходные данные
[latex]v_1[/latex] [latex]t_1[/latex] [latex]v_2[/latex] [latex]t_2[/latex] [latex]v_3[/latex] [latex]t_3[/latex]
2 4 2 4 4 4
10 10 10 10 20 10
 3 1 1 3 4 1.5
0 1000 1 5 1 5

Реализация

ideone: ссылка

 

Related Images:

Puzzle — Temperatures

Задача взята с этого сайтаБезымянный

В этой задаче необходимо проанализировать значения температуры, дабы найти ближайшее к нулю.

Ввод:

Строка 1: [latex]N[/latex], количество значений температуры.

Строка 2: собственно говоря, сами значения температуры, выраженные целыми числами в диапазоне от -273 до 5526.

Вывод:

Вывести 0 в том случае, если не введено ни одного значения.

Если введено хотя бы одно, то вывести на экран значение ближайшее к 0. Отметить, что если есть 2 значения, одинаково близкие к нулю, но с разными знаками, то на экране должно отобразиться положительное число.

[latex]N[/latex] Ввод Вывод Комментарий.
Простой тест 5 1 -2 -8 4 5 1 Пройден.
Сложный тест 10 -5 -4 -2 12 -40 4 2 18 11 5 2 Пройден.
Без температур 0 0 Пройден.
Дополнительный тест 14 7 -10 13 8 4 -7 -12 -3 3 -9 6 -1 -6 7 -1 Пройден.

Код программы (C++):

Для первого теста нужно было найти ближайшее к нулю значение, когда все числа по модулю были попарно различными. Для этого достаточно было завести переменную типа int и положить в неё значение, которое заведомо больше всех возможных (это 5527, так как по условию задачи значения температур не выходят за пределы [-273;5527]). И в цикле сделать проверку того, что же больше — модуль нашего текущего значения или модуль только что введённого.

Задача 1.

Для того, чтобы пройти второй тест необходимо было ввести такое условие, при котором отметалось бы отрицательное значение температуры при наличии такого же по модулю положительного. Для этого мы сравниваем модуль текущего значения температуры со значением введённым (уже не по модулю, так как нам нужно убрать отрицательные числа), и если они равны, то текущее ближайшее значение изменится на положительное, если до этого оно было с минусом.

Задача 2.

Java:

И для последней задачи, конечно, достаточно было ввести условие, что [latex]N[/latex] не равно нулю. В противном случае программа выведет на экран 0. Конечный код указан первым.

 

Related Images: