@uliana00

Как написать код для определения суммарного объема вложенных друг в друга шаров?

Определить суммарный объем (в литрах)12-ти вложенных друг в друга шаров со стенками 5 мм. Внутренний диаметр внутреннего шара равен 10 см. Считайте,что шары вкладываются друг в друга без зазоров. Что добавить,чтобы работало??

часть кода: (Я ввела переменные d-диаметр шара, Pi-число Пи, V-объем, i-стенки шаров 5 мм.)
var
d, V, z, Pi, i : real;
k : integer;
begin
	i := 0.5;
	d := 10;
	Pi := 3.14;
	for k := 1 to 12 do
	begin
		d := d + i;
	end
	V := Pi * ((d * d * d) / 6);
end
  • Вопрос задан
  • 1220 просмотров
Пригласить эксперта
Ответы на вопрос 3
tsarevfs
@tsarevfs
C++ developer
Объем стенок имеется в виду? Тогда, если вкладываем без зазоров, получаем большой шар со стенкой 12 * 5 мм и двркой как у маленького -- 10см.
Получаем внешний диаметр 22см (10 дырка + 2 * 6 стенки).
Объем = объем целиком - объем дырки.
Ну и не забываем что литр = 1дм^3. Единицы измерений надо аккуратно привести.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const
  PI = 3.1415926;
var
  D, V: real;
  k: integer;
begin
D := 10;
V := 0;
for k := 1 to 12 do begin
  V := V + PI * D * D * D / 6;
  D := D + 1;
end
V := V / 1000;
Ответ написан
Sly_tom_cat
@Sly_tom_cat
.
Не надо таких неоптимальных алгоритмов.
Т.е. не надо каждый раз считать объем.

У вас между стенками всех 12 шаров нет зазоров. т.е. можно весь этот объем считать общим. У нас есть:
внутри шарообразная полость диаметром 10 и 12 слоев с 5 см стенками, т.е. каждый новый слой увеличивает диаметр на 10.

Т.о. у вас наружный диаметр = 10 + 10 * 12 = 130

Далее считаем объем по наружному диаметру и вычитаем объем полости (та же формула но по внутреннему диаметру)

Никаких циклов - не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы