Вычислить площадь поверхности тела - 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
- это выражение, которое представляет собой общую площадь поверхности тела.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д