Форум программистов, компьютерный форум CyberForum.ru

Проложить код программы для решения школьной геометрической задачи - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
VANYOK
1 / 1 / 0
Регистрация: 05.12.2013
Сообщений: 42
02.02.2014, 19:43     Проложить код программы для решения школьной геометрической задачи #1
Задача:
Дано: ABCA1B1C1 – прямая треугольная призма, AB = 13, CB = 14, AC = 15, O – центр описанной окружности, C1OC = 30°.
Найдите V.

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <conio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int  a, b, c, p, r, s, v, o;
    cout << "Введте значения сторон AB, BC и AC и угра:" << endl;;
    cin >> a >> b >> c >> o;
    p = ((a + b + c) / 2);
    s = sqrt(p*(p - a)*(p - b)*(p - c));
    r = ((a*b*c) / (4 * s));
    cout << "AB = " << a << "\tBC = " << b << "\tAC = " << c << "\tC1OC = " << o << endl;
    cout << "p = " << p << "\nS = " << s << "\nR = " << r << endl;
 
    _getch();
    return 0;
}
Я просто не помню формулу для нахождения ребра призмы... А так может и сам дописал бы...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2014, 19:43     Проложить код программы для решения школьной геометрической задачи
Посмотрите здесь:

C++ Определить, являются ли точки заданного множества вершинами параллелограмма
C++ Алгоритм и код программы решения уравнения Пуассона методом матричной прогонки
C++ Необходим код для решения линейной задачи
нужно написать програмный код для решения задачи создания бинарного файла C++
Использование функция для решения задачи C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
02.02.2014, 19:52     Проложить код программы для решения школьной геометрической задачи #2
VANYOK, V - имеется ввиду объем? Собственно смотри, треугольник С1ОС - равнобедренный (если призма прямоугольная), где С1С - ребро-высота призмы. В итоге есть равнобедренный треугольник, в котором даны все углы. Остается найти радиус описаной окружности и получишь высоту.

Или стоп, окружность описана вокруг призмы или треугольника в основании? Если первое, то я правильно понял..
VANYOK
1 / 1 / 0
Регистрация: 05.12.2013
Сообщений: 42
02.02.2014, 20:35  [ТС]     Проложить код программы для решения школьной геометрической задачи #3
nexen, вот собственно, чертеж...
v - объем
Миниатюры
Проложить код программы для решения школьной геометрической задачи  
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
02.02.2014, 20:42     Проложить код программы для решения школьной геометрической задачи #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
VANYOK, тогда в чем вообще проблема? Для V надо найти площадь основания и высоту. Площадь основания по трем сторонам находится, значит нужна высота. Высота - катет прямоугольного треугольника С1ОС с углом 30*, tg30* (sqrt(3)/3) известен, значит осталось найти СО. А СО легко находится из формулы для радиуса описанной окружности вокруг треугольника. Всё.

Судя по тому, что у вас уже есть. Осталось только
C++
1
2
float h = r * sqrt(3) / 3;
float v = s * h;
и кстати, "int" не подходит - это целочисленный тип, а стороны и радиусы, и площади, и т.д. могут быть дробными
VANYOK
1 / 1 / 0
Регистрация: 05.12.2013
Сообщений: 42
02.02.2014, 22:27  [ТС]     Проложить код программы для решения школьной геометрической задачи #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <conio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    float a = 13, b = 14, c = 15, p, r, s, h, v;
    p = (a + b + c) / 2; // полупериметр треугольника
    s = sqrt(p*(p - a)*(p - b)*(p - c)); // площадь основания
    r = (a*b*c) / (4 * s); // радиус
    h = r * (sqrt(3) / 3); // высота 
    // tg 30 = (sqrt(3)/3) 
    v = s * h; // объем
    cout << "AB = " << a << "\tBC = " << b << "\tAC = " << c << endl;
    cout << "Полупериметр треугольника(p) = " << p << "\nПлощадь основания(S) = " << s << "\nРадиус(R) = " << r << endl;
    cout << "Высота(H) = " << h << "\nОбъем(V) = " << v << endl;
    _getch();
    return 0;
}
Может кому-то пригодится...
Yandex
Объявления
02.02.2014, 22:27     Проложить код программы для решения школьной геометрической задачи
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru