С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43

Расчет площади боковой поверхности куба, цилиндра, прямоугольного параллелепипеда.

14.10.2021, 16:31. Показов 2052. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Используя перегрузку, запишите функцию для выполнения действий, в зависимости от
для следующих типов данных float, int, double, long:
Расчет площади боковой поверхности куба, цилиндра, прямоугольного параллелепипеда.
правильно ли сделано задание ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
int sfig(int a, int b, int c) { return 2 * (a * b + b * c + a * c); }
float fig(float a, float b,float c) { return 2 * (a * b + b * c + a * c); }
double ig(float a, float b, float c) { return 2 * (a * b + b * c + a * c); }
long g(float a, float b, float c){ return 2 * (a * b + b * c + a * c); }
int ling(int a, int b, int d) { return 2 * d * (a + b); }
float ing(float a, float b, float d) { return 2 * d * (a + b); }
double ng(double a, double b, double d) { return 2 * d * (a + b); }
long gs(long a, long b, long d) { return 2 * d * (a + b); }
int cls(int R, int p, int h) { return 2 * R * p * h; }
float dls(float R, float p,float h) { return 2 * R * p * h; }
double xls(double R, double p, double h) { return 2 * R * p * h; }
long zls(long R, long p, long h) { return 2 * R * p * h; }
int main() {
    int  a, b, c, d;
    long a, b, c, d;;
    cout << "use a line of []\ ";
    cin >> a >> b >> c;
    cout << "int.S=" << sfig(a, b, c) << endl<<"float.S=" << fig(a, b, c) << endl<<"double.S=" << ig(a, b, c) << endl<<"long.S=" << g(a, b, c) << endl;
    cout << "use a line of [0]";
    cin >> a >> b >> d;
    cout << "int.S=" << ling(a, b, d)<< endl << "float.S=" << ing(a,b,d)<< endl<<"double.S="<<ng(a,b,d)<< endl << "long.S="<< gs(a,b,d) << endl;
    cout << "use a h,R\ ";
    cin >> h >> R;
    cout << "int.S=" << cls(R, p, h) << endl <<"float.S="<< dls(R, p, h) << endl <<"double.S="<< zls(R, p, h) << endl <<"long.S="<< xls(R, p, h) << endl;
}
Миниатюры
Расчет площади боковой поверхности куба, цилиндра, прямоугольного параллелепипеда.  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2021, 16:31
Ответы с готовыми решениями:

Написать программу вычисления площади боковой поверхности и объема цилиндра
Надо сделать в Visual Studio C++

Написать программу для вычисления площади боковой поверхности усеченного цилиндра
Дан усеченный круговой цилиндр. Известны (в м) радиус основания цилиндра (R), высоты усеченного цилиндра (h1,h2). Написать программу для...

Написать программу вычисления площади боковой поверхности и объема цилиндра с использованием функций
Вот что получилось #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { setlocale(LC_ALL,...

28
29 / 21 / 8
Регистрация: 11.10.2021
Сообщений: 122
14.10.2021, 16:35
Цитата Сообщение от qwulimn Посмотреть сообщение
Используя перегрузку
Перегрузка в C++, это функции с 1 именем в исходном коде, но с разными аргументами.

Пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
 
void foo(int b)
{
  ...
}
 
void foo(float b)
{
  ...
}
 
...
 
foo(123); // Будет вызвана функция foo(int b)
foo(123.123); // Будет вызвана функция foo(float b)
 
...
Так вот, где у тебя тут перегрузка?

Цитата Сообщение от qwulimn Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int sfig(int a, int b, int c) { return 2 * (a * b + b * c + a * c); }
float fig(float a, float b,float c) { return 2 * (a * b + b * c + a * c); }
double ig(float a, float b, float c) { return 2 * (a * b + b * c + a * c); }
long g(float a, float b, float c){ return 2 * (a * b + b * c + a * c); }
int ling(int a, int b, int d) { return 2 * d * (a + b); }
float ing(float a, float b, float d) { return 2 * d * (a + b); }
double ng(double a, double b, double d) { return 2 * d * (a + b); }
long gs(long a, long b, long d) { return 2 * d * (a + b); }
int cls(int R, int p, int h) { return 2 * R * p * h; }
float dls(float R, float p,float h) { return 2 * R * p * h; }
double xls(double R, double p, double h) { return 2 * R * p * h; }
long zls(long R, long p, long h) { return 2 * R * p * h; }
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
14.10.2021, 16:45  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
int sfig(int a, int b, int c)
{
    return 2 * (a * b + b * c + a * c);
}
float sfig(float a, float b, float c)
{ 
     return 2 * (a * b + b * c + a * c); 
}
вот так нужно ?
0
29 / 21 / 8
Регистрация: 11.10.2021
Сообщений: 122
14.10.2021, 16:51
qwulimn, да
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.10.2021, 20:45
Цитата Сообщение от qwulimn Посмотреть сообщение
вот так нужно ?
нет

напишите полное условие задачи, у Вас прерывается предложение:
Цитата Сообщение от qwulimn Посмотреть сообщение
запишите функцию для выполнения действий, в зависимости от...
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 00:06  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
int sfig(int a, int b, int c) { return 2 * (a * b + b * c + a * c); }
float sfig(float a, float b,float c) { return 2 * (a * b + b * c + a * c); }
double sfig(double a, double b,double c) { return 2 * (a * b + b * c + a * c); }
long sfig(long a, long b, long c){ return 2 * (a * b + b * c + a * c); }
int ling(int a, int b, int d) { return 2 * d * (a + b); }
float ling(float a, float b, float d) { return 2 * d * (a + b); }
double ling(double a, double b, double d) { return 2 * d * (a + b); }
long ling(long a, long b, long d) { return 2 * d * (a + b); }
int cls(int R, int p, int h) { return 2 * R * p * h; }
float cls(float R, float p,float h) { return 2 * R * p * h; }
double cls(double R, double p, double h) { return 2 * R * p * h; }
long cls(long R, long p, long h) { return 2 * R * p * h; }
int main() {
    int a, b, c;
    float a, b, c;
    cin >> a >> b >> c;
    cout << sfig(a, b, c) << endl;
}
Добавлено через 1 минуту
а как продолжить в мейн чтобы был тип инт, флоут,дабл если здесь
Используя перегрузку, запишите функцию для выполнения действий, в зависимости от варианта, для следующих типов данных float, int, double, long:

Добавлено через 1 минуту
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 00:28
qwulimn, не путайте понятия полная поверхность и боковая поверхность, для начала напишите правильные формулы
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 00:39  [ТС]
так ну в куба я ошибся, там есть формула 4a^2,цилиндр будет у нас 2pRH и параллелепипед 2*(ab+bc+ac)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 00:46
Цитата Сообщение от qwulimn Посмотреть сообщение
параллелепипед 2*(ab+bc+ac)
это площадь всей поверхности
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 00:47  [ТС]
а,там будет 2с*(a+b)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 01:07
Цитата Сообщение от qwulimn Посмотреть сообщение
там будет 2с*(a+b)
лучше напишите 2(ab+ac) (при основании bc)

затем напишите 3 функции типа double (просьба записывать функции не в строчку) с одинаковым названием и разным числом параметров того же типа
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 01:10  [ТС]
C++
1
2
3
4
5
6
7
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
double sfig(int a, int b, int c) { return 2*(a * c + a * b); }
double sfig(float a, float b,float c) { return 2 * (a * c + a * b); }
double sfig(double a, double b,double c) { return 2 * (a * c + a * b); }
вот так?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 01:13
Цитата Сообщение от qwulimn Посмотреть сообщение
вот так?
нет. функции должны быть для куба, цилиндра и параллелепипеда

верхние строки не копируйте, только функции. повторю:
Цитата Сообщение от Yetty Посмотреть сообщение
просьба записывать функции не в строчку
Цитата Сообщение от Yetty Посмотреть сообщение
разным числом параметров
т.е. в первой функции 1 параметр, во второй 2, в третьей 3
Цитата Сообщение от Yetty Посмотреть сообщение
того же типа
т.е. типа double
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 01:21  [ТС]
C++
1
2
3
double sfig(int a, int b, int c) { return 2*(a * c + a * b); }
double sfig(float p, float R, float H) { return 2 * (2 * p * R * H); }
double sfig(double a, double b,double c) { return 4*pow(a,2); }
так?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 01:27
qwulimn, не меняйте функции местами, пишите как в условии: куб, цилиндр, параллелепипед

уберите лишнее умножение на 2 в цилиндре, заодно вместо p напишите pi

не применяйте pow без необходимости, куб: 4*a*a

Вы на самом деле не понимаете, то что я говорю ?
Цитата Сообщение от Yetty Посмотреть сообщение
в первой функции 1 параметр, во второй 2, в третьей 3
все параметры типа double

функция для куба:
C++
1
2
3
4
double S_side (double a)
{
    return 4*a*a;
}
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 01:39  [ТС]
прошу прощение , просто месяц назад начал програмировать и вот функции начались
C++
1
2
3
4
5
6
7
8
9
double sfig(double a) {
    return 4*a*a; 
}
double sfig(double pi, double R, double H) { 
    return 2 * pi * R * H; 
}
double sfig(double a, double b, double c) { 
    return 2 * (a * b + a * c); 
}
?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 01:52
Цитата Сообщение от Yetty Посмотреть сообщение
в первой функции 1 параметр, во второй 2, в третьей 3
во второй ДВА параметра, прямо в функции напишите:
C++
1
const double pi = acos(-1.);
название лучше S_side (side - боковая)

Добавлено через 4 минуты
дальше сделайте шаблоны, чтобы функции работали с разными типами данных:
C++
1
2
3
4
5
template<typename T>
T S_side (T a)
{
    return 4*a*a;
}
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 02:00  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
double S_Side(double a) {
    return 4 * a * a;
}
double S_Side(double R, double H) {
    const double pi = acos(-1);
    return 2 * pi * R * H;
}
double S_Side(double a, double b, double c) {
    return 2 * (a * b + a * c);
}
template<typename T>
T S_side(T a)
{
    return 4 * a * a;
}
template<typename T>
T S_side(T r,T h)
{
    return 2 * pi * R * h;
}
template<typename T>
T S_side(T a,T b,T c)
{
    return *(a * b + a * c);
}
должно быть так
?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 02:20
qwulimn, уберите первые 3, их делали просто для примера, чтобы Вы понимали что откуда берётся

2 потеряли в параллелепипеде и в цилиндре строку
C++
1
const double pi = acos(-1.); // <--- 1 с точкой
r и R разные переменные

между функциями добавьте пустую строку

и показывайте полный код с вызовами функций

Добавлено через 7 минут
данные не вводите с клавиатуры, пишите как значения функций
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 02:26  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template<typename T>
T S_side(T a)
{
    return 4 * a * a;
}
 
template<typename T>
T S_side(T R,T h)
{
    const T pi = acos(-1.);
    return 2 * pi * R * h;
}
 
template<typename T>
T S_side(T a,T b,T c)
{
    return 2*(a * b + a * c);
}
спасибо что пояснили как работает, вроде понял,но как визвать функцию каждую функцию в нескольких типах
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2021, 02:26
Помогаю со студенческими работами здесь

Площадь боковой поверхности прямоугольного параллелепипеда
Пробую создать программу которая будет находить площадь боковой поверхности прямоугольного по формуле s= 2(a*b+a*c+b*c), что-то не...

Создать следующие функции: Ввод радиуса и высоты цилиндра, вычисление площади боковой поверхности цилиндра, вы
Создать следующие функции: Ввод радиуса и высоты цилиндра, вычисление площади боковой поверхности цилиндра, вычисление площади основания...

Вычисление площади боковой поверхности и других параметров параллелепипеда
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций для прямоугольного параллелепипеда, заданного сторонами a, b,...

Перегруженная функция для вычисления площади поверхности прямоугольного параллелепипеда по длинам сторон
Написать перезагруженную Функцию для вычисления площади поверхности прямоугольного параллелепипеда по длинам сторон. Типы аргументов...

Расчет объема и площади поверхности цилиндра
Используя Visual Studio, создайте проект по шаблону Console Application. Напишите программу расчета объема – V и площади поверхности – S...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru