Вычислить площадь поверхности тела - C (СИ)
Формулировка задачи:
Пользователь вводит значения высоты (h) правильной призмы и стороны (a)
равностороннего треугольника, лежащего в ее основании.
1) Составить функцию, которая получает введенные значения в качестве параметров и
возвращает значение площади полной поверхности (S) данного тела. Составить такую
же функцию для вычисления его объема (V).
2) Пусть параметры призмы h и a – целые числа, лежащие в диапазоне [1;50]. Среди всех
возможных призм с такими параметрами, используя составленные функции, найти
призму, у которой значение отношения V/S ближе к единице, чем у остальных.
3) Составить функцию, которая по заданному объему куба находит значение его ребра. И
с ее помощью вычислить ребро куба, объем которого равен объему найденной призмы.
#include<stdio.h>
#include<math.h>
double volume(int h, int a){
double V;
V=((a*a*sqrt(3))/2)*h;
return V;}
double square(int h, int a){
double S;
S=3*a*h+((a*a*sqrt(3))/2);
return S;}
double rebro(int V){
double b;
b=cbrt(V);
return b;}
int main(void){
int a,h,x,y,aopt,hopt,Vcube;
double S,V,opt,k,b,V1;
printf("h prizmi\n");
scanf("%d",&h);
printf("a treug\n");
scanf("%d",&a);
V1=volume(h,a);
printf("V = %f\n",volume(h,a));
printf("S = %f\n",square(h,a));
opt=100;
for (h=1;h<=50;h++){
for(a=1;a<=50;a++){
k=volume(h,a)/square(h,a);
if (fabs(k-1)<opt){
opt=fabs(k-1);
aopt=a;
hopt=h;}}}
printf("a=%d; h=%d\n",aopt,hopt);
printf("V\n");
scanf("%d",&V1);
printf("Rebro ravno V prizmi = %f\n",rebro(cbrt(V1)));
return 0;
}Решение задачи: «Вычислить площадь поверхности тела»
textual
Листинг программы
S=(double)3*a*h+((a*a*sqrt(3))/2);
Объяснение кода листинга программы
S- это переменная, которая содержит результат вычисления площади поверхности тела.a- это переменная, которая представляет собой значение основания тела.h- это переменная, которая представляет собой значение высоты тела.sqrt(3)- это функция, которая вычисляет квадратный корень из числа 3.3*a*h- это вычисление площади основы тела, умноженной на высоту.(a*a*sqrt(3))/2- это вычисление площади боковой поверхности тела, умноженной на квадратный корень из 3 и разделенной на 2.double- это тип данных, который используется для представления числа с плавающей точкой.3*a*h- это выражение, которое представляет собой площадь основы тела, умноженную на высоту.(a*a*sqrt(3))/2- это выражение, которое представляет собой площадь боковой поверхности тела, умноженную на квадратный корень из 3 и разделенную на 2.3*a*h+(a*a*sqrt(3))/2- это выражение, которое представляет собой общую площадь поверхности тела.