![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 16.05.2013
Сообщений: 4
|
![]()
Здравствуйте, помогите с задачей, заранее благодарю.
Найти максимальное значение центрального угла верхнего основания шарового слоя b (b изменяется от b1 до b2 с шагом g) и соответствующие значения радиуса нижнего основания r1, радиуса верхнего основания r2 высоты h шарового слоя, для которых объем шарового слоя не меньше объема куба со стороной t. Радиус шара r, из которого вырезан шаровой слой, и центральный угол нижнего основания шарового слоя a остаются неизменными. b1 b2 g t r a 17 170 1 13,3 28,8 175 31 142 1 8,1 9,6 150 8 121 1 12,4 12,4 162 24 168 1 0,91 0,87 173 46 117 1 3,6 3,9 133 есть эта задача в паскале Const gradus=2*pi/360; {постоянная необходима для перевода градусов в радианы}; radian=360/(2*pi); {постоянная необходима для перевода радиан в градусы}; {TPascal считает тригонометрические функции, полагая, что переменные заданы в радианах} {описание используемых переменных} Var g,h1,h2,r,S_sl,S_kub,b1,b2,maxb,k,A ,B,r1,r2,h:real; {переменные вещественного типа} Begin {начать} write('введите b1='); {начальное значение угла b} readln(b1); write('введите b2='); {конечное значение угла b} readln(b2); write('введите B='); {сторона куба} readln(B); write('введите r='); {радиус шара} readln(r); write('введите A='); {центральный угол нижнего основания} readln(A); g:=-1*gradus; {шаг изменения угла b 1градус, переведённый в радианы} b1:=b1*gradus; {начальное значение угла b, переведённое в радианы} b2:=b2*gradus; {конечное значение угла b, переведённое в радианы} A:=A*gradus; {рассчитаем радиус основания} r1:=r*sin(A/2); r2:=r*sin(b1/2); {значение радиуса r2} h1:=r*cos(A/2); {рассчитаем расстояние от центра шара до нижнего основания} h2:=r*cos(b1/2); h:=h2-h1; {рассчитаем высоту шарового слоя} maxb:=0; {предварительно заданное максимальное значение угла b} k:=0; S_kub:=6*B*B; {рассчитаем площадь поверхности куба} {цикл1} while b1>=b2 do {пока выполняется условие цикла1 делать} begin {повторять цикл1} S_sl:=2*pi*r1*h; {рассчитаем площадь шарового слоя} {проверка условия} if S_sl<=S_kub then {если объём шарового сектора не больше объёма шара, то} begin {начать} k:=k+1; {увеличим значение проверочного коэффициента на 1} {проверка условия} if maxb<b1 {если текущий центральный угол больше максимального угла, то} then maxb:=b1;{присвоим значению максимального угла значение текущего угла шарового сектора} end; {закончить} b1:=b1+g; {изменить текущее значение угла на шаг g} r2:=r*sin(b1/2); {рассчитаем радиус верхнего основания для максимального значения угла} h2:=r*cos(b1/2); {рассчитаем расстояние от центра шара до верхнего слоя} h:=h2-h1; {рассчитаем высоту шарового слоя} end; {закончить цикл1} if k<>0 then {проверка условия} begin r2:=r*sin(maxb/2); h2:=r*cos(maxb/2); h:=h2-h1; S_sl:=2*pi*r1*h; {рассчитаем площадь шарового слоя} maxb:=maxb*radian; {максимальное значение угла b, переведённое в градусы} {вывод результата работы программы на экран} writeln('Максимальный угол= ',maxb:8:4, 'градусов'); writeln('Максимальное значение высоты =',h:8:4); writeln('Максимальный радиус нижнего основания =',r1:8:4); writeln('Максимальный радиус верхнего основания =',r2:8:4); writeln('Площадь шарового слоя =',S_sl:8:4); writeln('Площадь куба =',S_kub:8:4); writeln(S_sl:8:4, ' < ',S_kub:8:4, ' -> Условие выполняется '); end else writeln('Для данных значений не выполняются условия задачи'); readln; {ожидание нажатия клавиши на клавиатуре} end. {конец основной программы} |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Геометрическая задача (C++) | Day Stiff | Фриланс | 4 | 12.07.2012 12:50 |
геометрическая задача | zaur.bat | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 13.02.2012 19:39 |
геометрическая задача | Nurik1 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 20.11.2011 12:07 |
Геометрическая задача С++ | bloo[d] | Общие вопросы C/C++ | 9 | 30.01.2008 18:27 |