Помощь - Поиск - Пользователи - Календарь
Полная версия: Нахожденин 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(c);
     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 намудрила, на счёт остального не знаю. Подскажите пожалуйста
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.