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

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

14.10.2021, 16:31. Показов 2195. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru