0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43

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

14.10.2021, 16:31. Показов 2301. Ответов 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
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 02:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от qwulimn Посмотреть сообщение
как визвать функцию каждую функцию в нескольких типах
вот так и вызывайте - со значениями разных типов

посмотрите, возможно будет интересно:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
template<typename T> 
T S_side (T a)
{
    return 4*a*a;
} 
 
int main()
{
    cout << S_side(100000) << "\n"; // произошло переполнение типа int
    cout << S_side(100000LL) << "\n"; // корректная работа (LL - число типа long long)
    
system("pause");
return 0;
}

Цитата Сообщение от qwulimn Посмотреть сообщение
R * h
тогда уже и Н большую
Цитата Сообщение от qwulimn Посмотреть сообщение
const T
так обрежет значение, для pi остаётся тип double и тип функции цилиндра тоже оставьте double

Добавлено через 1 минуту
выкладывайте уже рабочий код
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 02:53  [ТС]
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
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
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);
}
int main() {
    cout << S_side(10) << endl;
    cout << S_side(10.f) << endl;
    cout << S_side(10.) << endl;
    cout << S_side(10L) << endl;
    system("pause");
    return 0;
}
я не очень понимаю как вивести вторую и 3
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 04:00
Цитата Сообщение от qwulimn Посмотреть сообщение
я не очень понимаю как вивести вторую и 3
в первой функции 1 параметр, во второй 2. сколько значений нужно передать во вторую функцию ?

Цитата Сообщение от Yetty Посмотреть сообщение
между функциями добавьте пустую строку
это для кого написано ?
Цитата Сообщение от Yetty Посмотреть сообщение
так обрежет значение, для pi остаётся тип double и тип функции цилиндра тоже оставьте double
Добавлено через 8 минут
Цитата Сообщение от qwulimn Посмотреть сообщение
const T pi = acos(-1);
так как функция вызывается неоднократно, напишите лучше так:
C++
1
const double pi = 3.14159265358979
эту строку уберите:
Цитата Сообщение от qwulimn Посмотреть сообщение
#include <conio.h>
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 12:30  [ТС]
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
30
31
32
33
34
#include <iostream>
#include <cmath>
using namespace std;
template<typename T>
T S_side(T a)
{
    return 4 * a * a;
}
double S_side(double r, double h)
{
    const double pi = 3.14159265358979;
    return 2 * pi * r * h;
}
template<typename T>
T S_side(T a, T b, T c)
{
    return 2 * (a * b + a * c);
}
int main() {
    cout <<"S cube="<< S_side(3) << endl;
    cout <<"S cube="<<S_side(3.f) << endl;
    cout <<"S cube="<< S_side(3.) << endl;
    cout <<"S cube="<< S_side(3L) << endl;
    cout << "S cilinder=" << S_side(2, 3) << endl;
    cout <<"S cilinder=" <<S_side(2.f, 3.f) << endl;
    cout <<"S cilinder="<< S_side(2., 3.) << endl;
    cout << "S cilinder="<<S_side(2L, 3L) << endl;
    cout <<"S paralelepiped ="<< S_side(2, 3, 5) << endl;
    cout <<"S paralelepiped ="<< S_side(2.f, 3.f, 5.f) << endl;
    cout <<"S paralelepiped ="<< S_side(2., 3., 5.) << endl;
    cout <<"S paralelepiped ="<< S_side(2L, 3L, 5L) << endl;
    system("pause");
    return 0;
}
вот код
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 12:57
Цитата Сообщение от qwulimn Посмотреть сообщение
double S_side(double r, double h)
C++
1
double S_side(T r, T h)
третий раз повторяю:
Цитата Сообщение от Yetty Посмотреть сообщение
между функциями добавьте пустую строку
не меняйте порядок типов, строки с cout пишите как в условии:
Цитата Сообщение от qwulimn Посмотреть сообщение
для следующих типов данных float, int, double, long
Добавлено через 2 минуты
Цитата Сообщение от qwulimn Посмотреть сообщение
#include <cmath>
уже не требуется
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 13:04  [ТС]
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
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
 
template<typename T>
 
T S_side(T a)
{
    return 4 * a * a;
}
 
template<typename T>
 
double S_side(T r, T h)
{
    const double pi = 3.14159265358979;
    return 2 * pi * r * h;
}
 
template<typename T>
 
T S_side(T a, T b, T c)
{
    return 2 * (a * b + a * c);
}
 
int main() {
    cout <<"S cube="<< S_side(1000.f) << "\n";
    cout <<"S cube="<<S_side(1000) << endl;
    cout <<"S cube="<< S_side(1000.) << endl;
    cout <<"S cube="<< S_side(1000L) << endl;
    cout << "S cilinder=" << S_side(2000.f, 3000.f) << endl;
    cout <<"S cilinder=" <<S_side(2000, 3000) << endl;
    cout <<"S cilinder="<< S_side(2000., 3000.) << endl;
    cout << "S cilinder="<<S_side(2000L, 3000L) << endl;
    cout <<"S paralelepiped ="<< S_side(2000.f, 3000.f, 5000.f) << endl;
    cout <<"S paralelepiped ="<< S_side(2000, 3000, 5000) << endl;
    cout <<"S paralelepiped ="<< S_side(2000., 3000., 5000.) << endl;
    cout <<"S paralelepiped ="<< S_side(2000L, 3000L, 5000L) << endl;
    system("pause");
    return 0;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 13:22
qwulimn, да, примерно так. пустые строки между template и функцией уберите. значения для float и double задайте с дробной частью (лучше числа взять поменьше, например 4.7f). значения произвольные (разные в разных функциях) например:
C++
1
2
3
4
cout <<"S cube="<< S_side(1.5f) << "\n";
cout <<"S cube="<<S_side(10) << endl;
cout <<"S cube="<< S_side(10.4) << endl;
cout <<"S cube="<< S_side(1000L) << endl;
для параллелепипеда желательно указать, что значения 2 и 3 - основа (потому что разные боковые площади в зависимости от того какая грань является основой)

скажу сразу, код не идеальный, но чуть получше чем код первого поста
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 43
15.10.2021, 13:24  [ТС]
спасибо большое,а как сделать такой код,только чтобы ввод был с клавиатуры?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.10.2021, 13:32
qwulimn, пожалуйста.
Цитата Сообщение от qwulimn Посмотреть сообщение
чтобы ввод был с клавиатуры
я не рекомендую это делать, вполне достаточно написанного

но если всё же хотите это реализовать, объявляйте переменные разных типов и вводите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2021, 13:32

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru