Анастасия, Вам нужно поменять местами строки 60 и 61. Сейчас программа ищет только одну пару чисел, а по условию нужно выводить их все, т.к. вывод сообщения в Memo1 произойдет только после прохода двух циклов for (для параметров i и j)
Если хотите улучшить программу: можно добавить проверку на тот случай, если ни одной подходящей пары не будет найдено.
Можно еще в StringGrid'е оставить одну строку, т.к. остальные не используются, за это отвечает свойство RowCount
Мемо1 в начале процедуры желательно очистить от сообщений, Memo1.Lines.Clear; если только Вы не хотите хранить всю историю работы программы.
Получим формулы для необходимых вычислений. Пусть ΔАВС вписан в окружность радиуса R с центром в точке О. ΔАВС - равносторонний, с углами при вершине, равными 60°. Опустим в этом треугольнике высоту из вершины В на сторону АС, получая точку D. Соединим вершину А с центром описанной окружности и рассмотрим полученный ΔAOD. Этот треугольник прямоугольный, поскольку ОD - часть высоты (OD⊥ AC). AO - гипотенуза, равная R, ∠OAD=30°, как половина ∠BAC, поскольку в равностороннем треугольнике центр вписанной окружности является также точной пересечения бисектрисс, высот и медиан. Тогда OD=R/2, как катет, лежащий против угла 30°. AD=R×cos(30°)=R√3/2. Но AD=DC (BD- медана, как сказано выше), тогда AC=R√3 Площадь основания может быть найдена как AD×BD=(R√3/2)×(R+R/2)=(3R√3)/4
Теперь рассмотрим пирамиду ABCD (второй рисунок). Она по условию правильная, т.е. все её боковые грани - одинаковые треугольники. Рассмотрим ΔDOE, образованный высотой пирамиды DO=h, её апофемой DE=a и отрезком OE, соединяющим точку пересечения высоты пирамиды с её основанием и точку пересечения апофемы с ребром пирамиды ВС. Этот треугольник прямоугольный, поскольку высота пирамиды перпендикулярна плоскости её основания. Длина катета ОЕ известна: она равна длине отрезка OD из предыдущего чертежа, т.е. половине радиуса R. Длина апофемы может быть найдена по теореме Пифагора.
Существует формула для определения площади боковой поверхности пирамиды:
Площадь полной поверхности пирамиды складывается из площади основания и площади боковой поверхности.
Программа на языке PascalABC.Net var a,h,r,s0,s1,s:double; begin Write('Введите радиус: '); read(r); Write('Введите высоту: '); Read(h); s0:=0.75*sqr(r)*sqrt(3); a:=sqrt(sqr(h)+sqr(r)/4); s1:=3*r*sqrt(3)*a/2; Writeln('Sбок=',s1); Writeln('Sполн=',s1+s0); end.
Анастасия, Вам нужно поменять местами строки 60 и 61. Сейчас программа ищет только одну пару чисел, а по условию нужно выводить их все, т.к. вывод сообщения в Memo1 произойдет только после прохода двух циклов for (для параметров i и j)
Если хотите улучшить программу: можно добавить проверку на тот случай, если ни одной подходящей пары не будет найдено.
Можно еще в StringGrid'е оставить одну строку, т.к. остальные не используются, за это отвечает свойство RowCount
Мемо1 в начале процедуры желательно очистить от сообщений, Memo1.Lines.Clear; если только Вы не хотите хранить всю историю работы программы.
Объяснение:
Пусть ΔАВС вписан в окружность радиуса R с центром в точке О. ΔАВС - равносторонний, с углами при вершине, равными 60°. Опустим в этом треугольнике высоту из вершины В на сторону АС, получая точку D.
Соединим вершину А с центром описанной окружности и рассмотрим полученный ΔAOD. Этот треугольник прямоугольный, поскольку ОD - часть высоты (OD⊥ AC). AO - гипотенуза, равная R, ∠OAD=30°, как половина ∠BAC, поскольку в равностороннем треугольнике центр вписанной окружности является также точной пересечения бисектрисс, высот и медиан. Тогда OD=R/2, как катет, лежащий против угла 30°. AD=R×cos(30°)=R√3/2. Но AD=DC (BD- медана, как сказано выше), тогда AC=R√3
Площадь основания может быть найдена как AD×BD=(R√3/2)×(R+R/2)=(3R√3)/4
Теперь рассмотрим пирамиду ABCD (второй рисунок).
Она по условию правильная, т.е. все её боковые грани - одинаковые треугольники.
Рассмотрим ΔDOE, образованный высотой пирамиды DO=h, её апофемой DE=a и отрезком OE, соединяющим точку пересечения высоты пирамиды с её основанием и точку пересечения апофемы с ребром пирамиды ВС. Этот треугольник прямоугольный, поскольку высота пирамиды перпендикулярна плоскости её основания. Длина катета ОЕ известна: она равна длине отрезка OD из предыдущего чертежа, т.е. половине радиуса R. Длина апофемы может быть найдена по теореме Пифагора.
Существует формула для определения площади боковой поверхности пирамиды:
Площадь полной поверхности пирамиды складывается из площади основания и площади боковой поверхности.
Программа на языке PascalABC.Net
var
a,h,r,s0,s1,s:double;
begin
Write('Введите радиус: '); read(r);
Write('Введите высоту: '); Read(h);
s0:=0.75*sqr(r)*sqrt(3);
a:=sqrt(sqr(h)+sqr(r)/4);
s1:=3*r*sqrt(3)*a/2;
Writeln('Sбок=',s1);
Writeln('Sполн=',s1+s0);
end.
Тестовое решение:
Введите радиус: 20
Введите высоту: 15
Sбок=936.74969975976
Sполн=1456.36494203042