Вычислить объём четырёх тел:
1.Параллелепипеда (по площади основания и высоте)
2.Пирамиды (по площади основания и высоте)
3.Цилиндра (по радиусу основания и высоте)
4.Конуса (по радиусу основания и высоте)
Спасибо за любую помощь
C/C++
Написать программу в языке Си, которая с помощью указателей на функцию выполняет задание
#include <iostream>
#include <iomanip>
using namespace std;
using pfn = double (*)(double a, double b);
double parallelepiped(double s, double h) {
return s * h;
}
double pyramid(double s, double h) {
return parallelepiped(s, h) / 3;
}
double cylinder(double r, double h) {
static const auto pi = 3.1415926535897932;
return pi * r * r * h;
}
double cone(double r, double h) {
return cylinder(r, h) / 3;
}
double volume(double a, double b, pfn p) {
return p(a, b);
}
double input(const char* msg) {
cout << msg;
double value;
cin >> value;
return value;
}
void output(const char* msg, double x) {
cout << msg << fixed << setprecision(3) << x << '\n';
}
int main() {
double h, s, r, v;
system("chcp 1251 > nul");
s = input("Введите площадь основания параллелепипеда: ");
h = input("Введите высоту параллелепипеда: ");
v = volume(s, h, parallelepiped);
output("Объём параллелепипеда: ", v);
puts("");
s = input("Введите площадь основания пирамиды: ");
h = input("Введите высоту пирамиды: ");
v = volume(s, h, pyramid);
output("Объём пирамиды: ", v);
puts("");
r = input("Введите радиус цилиндра: ");
h = input("Введите высоту цилиндра: ");
v = volume(r, h, cylinder);
output("Объём цилиндра: ", v);
puts("");
r = input("Введите радиус конуса: ");
h = input("Введите высоту конуса: ");
v = volume(r, h, cone);
output("Объём конуса: ", v);
system("pause > nul");
}
#include <iomanip>
using namespace std;
using pfn = double (*)(double a, double b);
double parallelepiped(double s, double h) {
return s * h;
}
double pyramid(double s, double h) {
return parallelepiped(s, h) / 3;
}
double cylinder(double r, double h) {
static const auto pi = 3.1415926535897932;
return pi * r * r * h;
}
double cone(double r, double h) {
return cylinder(r, h) / 3;
}
double volume(double a, double b, pfn p) {
return p(a, b);
}
double input(const char* msg) {
cout << msg;
double value;
cin >> value;
return value;
}
void output(const char* msg, double x) {
cout << msg << fixed << setprecision(3) << x << '\n';
}
int main() {
double h, s, r, v;
system("chcp 1251 > nul");
s = input("Введите площадь основания параллелепипеда: ");
h = input("Введите высоту параллелепипеда: ");
v = volume(s, h, parallelepiped);
output("Объём параллелепипеда: ", v);
puts("");
s = input("Введите площадь основания пирамиды: ");
h = input("Введите высоту пирамиды: ");
v = volume(s, h, pyramid);
output("Объём пирамиды: ", v);
puts("");
r = input("Введите радиус цилиндра: ");
h = input("Введите высоту цилиндра: ");
v = volume(r, h, cylinder);
output("Объём цилиндра: ", v);
puts("");
r = input("Введите радиус конуса: ");
h = input("Введите высоту конуса: ");
v = volume(r, h, cone);
output("Объём конуса: ", v);
system("pause > nul");
}
Ты знаешь как работают указатели на функции в С?
По объёмам:
1: V = S h
2: V = S h / 3
3: V = п r^2 h
4: V = п r^2 h / 3
По объёмам:
1: V = S h
2: V = S h / 3
3: V = п r^2 h
4: V = п r^2 h / 3
Похожие вопросы
- Написать программу на языке Си, которая решит эту задачу:
- Написать программу на языке Си
- Помогите, пожалуйста, написать программу на языке Си.
- Помогите написать программу на языке Си
- Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области. Написать программу на языке C++
- Написать код на языке си
- Написать программу на языке программирования Си.
- Написать код на языке Си
- Написать программу на языке С(просто С).
- Помогите пожалуйста решить программу на языке СИ!!!