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

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

14.10.2021, 16:31. Показов 2037. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru