Помощь - Поиск - Пользователи - Календарь
Полная версия: Нахожденин min значения радиуса шара...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
goosberry
Вот условие: найти минимальное значение радиуса шара r (r изменяется от r1 до r2 с шагом k) и соответствующие значения радиуса нижнего основания r3, радиуса верхнего основания r4 и высоты h шарового слоя, для которых объём шарового слоя не меньше объёма прямоугольного параллелепипеда со сторонами t, b и c. Центральный угол нижнего основания шарового слоя a и центральный угол верхнего основания шарового слоя b остаются неизменными. Вычисления выполнить по данным таблицы.


program zadacha;
uses crt;
var r,r1,r2,k,r3,r4,h:real;
begin
write('r1= ');
readln (r1);
write('r2= ');
readln (r2);
write('chag k= ');
readln (k);
r:=r1;

goosberry
В общем, после длительных размышлений над этой задачей, вот что получилось:

program zadacha;
uses crt;
var r,r1,r2,k,t,b,c,a,d:real;
Vs,Vp,r3,r4,h, min:real;
begin
write('r1= ');
readln(r1);
write('r2= ');
readln(r2);
write('chag k= ');
readln(k);
write('t=');
readln(t);
write('b= ');
readln(b);
write('c= ');
readln©;
write ('Ugol sloya a= ');
readln(a);
write ('Ugol sloya d= ');
readln(d);
a:=a*pi/180;
d:=d*pi/180;
Vp:=t*b*c;
r:=r1;
min:=r;
repeat
r:=r+k;
h:=(r*sin(a/2))+(r*sin(b/2));
r3:=r*cos(a/2);
r4:=r*cos(b/2);
Vs:=pi*h*(3*sqr(a)+3*sqr(b)+sqr(h))/6;
if Vs>=Vp then writeln('r= ', r:3:3) else writeln('Vs<Vp');
if min>r then min:=r;
until r>r2;
writeln('h= ', h:3:3, ' r3= ', r3:3:3, ' r4= ', r4:3:3);
writeln('Vs= ', Vs:3:3, ' Vp= ', Vp:3:3);
writeln('min r= ', min:3:3);
readkey;
end.


Чего-то я тут с min намудрила, на счёт остального не знаю. Подскажите пожалуйста
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.