Перед стартом: подключаем iostream, при работе с корнями — ещё и cmath.
#include <iostream>
#include <cmath>
using namespace std;
Задача 1. Прямоугольный параллелепипед
Дано: целые рёбра x, y, z.
Найти: периметры граней, их площади и полную площадь поверхности.
Вариант 1 (с промежуточными переменными)
int main() {
int x, y, z;
cout << "Зададим длины ребер параллелепипеда (x y z) -> ";
cin >> x >> y >> z;
int Pxy = 2 * (x + y);
int Pxz = 2 * (x + z);
int Pyz = 2 * (y + z);
int Sxy = x * y;
int Sxz = x * z;
int Syz = y * z;
int Sp = 2 * (Sxy + Sxz + Syz);
cout << "Pxy = " << Pxy << "\nPxz = " << Pxz << "\nPyz = " << Pyz << '\n';
cout << "Sxy = " << Sxy << "\nSxz = " << Sxz << "\nSyz = " << Syz << '\n';
cout << "Полная площадь поверхности Sp = " << Sp << '\n';
return 0;
}
Вариант 2 (без промежуточных переменных)
int main() {
int x, y, z;
cout << "Зададим длины ребер параллелепипеда (x y z) -> ";
cin >> x >> y >> z;
cout << "Pxy = " << 2 * (x + y) << '\n';
cout << "Pxz = " << 2 * (x + z) << '\n';
cout << "Pyz = " << 2 * (y + z) << '\n';
cout << "Sxy = " << x * y << '\n';
cout << "Sxz = " << x * z << '\n';
cout << "Syz = " << y * z << '\n';
cout << "Sp = " << 2 * (x*y + x*z + y*z) << '\n';
return 0;
}
Задача 2. Объём конуса по высоте и образующей
Дано: высота H и образующая l.
Найти: объём V=13πR2HV = \frac{1}{3}\pi R^2 HV=31πR2H.
Сначала восстановим радиус по теореме Пифагора: R=l2−H2R = \sqrt{l^2 — H^2}R=l2−H2 (конус прямой).
int main() {
double H, l;
const double pi = 3.14159265358979323846;
cout << "H и l -> ";
cin >> H >> l;
if (l <= H) {
cout << "Ошибка: для прямого конуса l должна быть больше H.\n";
return 0;
}
double R = sqrt(l*l - H*H);
double V = (pi * R * R * H) / 3.0;
cout << "R = " << R << "\nV = " << V << '\n';
return 0;
}
Задача 3. Разложить трёхзначное число по разрядам
Дано: n (100…999).
int main() {
int n;
cout << "n -> ";
cin >> n;
int a = n / 100; // сотни
int b = (n / 10) % 10; // десятки
int c = n % 10; // единицы
cout << "Сотни: " << a << ", десятки: " << b << ", единицы: " << c << '\n';
return 0;
}
Задача 4. Площадь треугольника (формула Герона)
p=a+b+c2p = \frac{a+b+c}{2}p=2a+b+c, S=p(p−a)(p−b)(p−c)S=\sqrt{p(p-a)(p-b)(p-c)}S=p(p−a)(p−b)(p−c).
int main() {
double a, b, c;
cout << "a b c -> ";
cin >> a >> b >> c;
if (a + b <= c || a + c <= b || b + c <= a) {
cout << "Треугольник не существует.\n";
return 0;
}
double p = (a + b + c) / 2.0;
double S = sqrt(p * (p - a) * (p - b) * (p - c));
cout << "S = " << S << '\n';
return 0;
}
Задача 5. Для четырёхзначного числа
Вывести: (1) сумму тысяч и единиц; (2) произведение сотен и десятков.
int main() {
int n;
cout << "n (1000..9999) -> ";
cin >> n;
int d1 = n / 1000; // тысячи
int d2 = (n / 100) % 10; // сотни
int d3 = (n / 10) % 10; // десятки
int d4 = n % 10; // единицы
cout << "Сумма (тыс + ед) = " << d1 + d4 << '\n';
cout << "Произведение (сот * дес) = " << d2 * d3 << '\n';
return 0;
}
Задача 6. Радиус окружности по длине
L=2πR⇒R=L2πL = 2\pi R \Rightarrow R = \dfrac{L}{2\pi}L=2πR⇒R=2πL.
int main() {
const double pi = 3.14; // по условию
double L;
cout << "L (метры) -> ";
cin >> L;
double R = L / (2.0 * pi);
cout << "R = " << R << " м\n";
return 0;
}
Задача 7. Вклад под 17% годовых
Дано: сумма X. Найти: сумму через год (без операций, только процент).
S=X⋅1,17S = X \cdot 1{,}17S=X⋅1,17.
int main() {
double X;
cout << "Сумма вклада X -> ";
cin >> X;
double S = X * 1.17; // простой процент за год
cout << "Через год: " << S << " руб.\n";
return 0;
}
Памятка по типам и операциям
- В формулах с делением/корнями используйте
double. - Для разрядов и остатков —
intc операциями/и%. - Всегда проверяйте корректность входных данных (существование треугольника,
l > H, диапазон числа и т. п.).