Найти минимальное значение меньшей высоты усечённого цилиндра h1( h1 изменяется от l до k с шагом m), для которого объем усечённого круглого цилиндра не меньше объема шара радиуса r1. Радиус основания усечённого круглого цилиндра r и его большая высота h2 остаются неизменными. Значения переменных: l=19.2; k=1.1; m=-0.1; h2=28.5; r=4.1; r1=6.2 — Pascal(Паскаль)

uses crt;
function Vc(r,h1,h2:real):real;
begin
Vc:=pi*r*r*(abs(h2-h1)/2);
end;
function Vsh(r:real):real;
begin
Vsh:=pi*r*r*r*4/3;
end;
var h2,r,r1,v,v1,l,k,m:real;
begin
clrscr;
writeln('Введите значение радиуса основания и большей высоты цилиндра:');
readln(r,h2);
write('Радиус шара r1=');
readln(r1);
write('Шаг табуляции m=');
readln(m);
l:=0;
while Vc(r,l,h2)<Vsh(r1) do
l:=l+m;
writeln('Объем шара=',Vsh(r1):0:2);
writeln('Минимальное значение меньшей высоты=',l:0:2);
writeln('Объем цилиндра=',Vc(r,l,h2):0:2);
readln
end.

Следующий вариант

function Vc(r,h1,h2:real):real;
begin
 Vc:= pi*sqr(r)*((h1+h2)/2);
end;
function Vsh(r1:real):real;
begin
 Vsh:=pi*sqr(r1)*r1*4/3;
end;
var r,h1,h2,r1,l,k,m:real;
writeln('Введите значения r,h2,r1,l,k,m');
readln(r,h2,r1,l,k,m);
 h1:=l;{Для начала присвоим h1 начальное значение - l}
while Vc(r,h1,h2) > Vsh(r1) do h1:=l+m;
write('Минимальное значение меньшей высоты равно',h1:0:2);
readln;
end.

Leave a Comment

+ 26 = 32