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

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

14.10.2021, 16:31. Показов 2242. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru