Регистрация
17 Июн 2013
Сообщения
64
Репутация
0
Спасибо
0
Монет
0
Составить программу, печатающую значение true, если высказывание вашего варианта является истинным, и false — в противном случае. Данные для формирования условия должны вводиться с клавиатуры. При

необходимости, выполнить проверку введенных данных. Номер варианта

соответствует вашему номеру по журналу.

Варианты задания

1.Даны три стороны одного и три стороны другого треугольника. Эти треугольники равновеликие, т.е. имеют равные площади.

C++

Напишите, пожалуйста, код и к нему блок-схему
 
По формуле Герона площади вычисли и сравни if (S1 == S2)
{
std:: cout
 
Сравнение двух вещественных чисел может оказаться некорректным действием в силу ограниченной точности представления таких чисел и ошибок при арифметических операциях с ними. Поэтому тип для сторон треугольников лучше выбрать long double, а саму процедуру сравнения сделать мягкой, а не максимально жёсткой чтобы исключить саму возможность ложных выводов.
С проверкой вводимых числовых данных на корректность ввода, без дурацких "true" и "false" и, естественно, без идиотского квадратного корня sqrt, который здесь не нужен от слова "совсем": #include
#include
#define ld long double

using namespace std;

double yes(ld a, ld b, ld c)
{
return (a > 0 && b > 0 & c > 0 &&
a + b > c && b + c > a && c + a > b);
}

double f(ld x, ld y, ld z)
{
ld p = (x + y + z) / 2;
return p * (p - x) * (p - y) * (p - z);
}

int main()
{
ld a, b, c, A, B, C;
cin >> a >> b >> c >> A >> B >> C;
if (yes(a, b, c) && yes(A, B, C))
cout
 
#include
#include
using namespace std;
template
T input(istream& inp, const char* msg) {
cout > value;
return value;
}
class Triangle {
public:
Triangle() : a(0), b(0), c(0) {}
double perimeter()const {
return a + b + c;
}
double area()const {
return sqrt(argument());
}
bool exist()const {
return argument() > 0;
}
bool equals(const Triangle& t)const {
const auto difference = fabs(area() - t.area());
return difference >(istream& inp, Triangle& t) {
t.a = input(inp, "a: ");
t.b = input(inp, "b: ");
t.c = input(inp, "c: ");
return inp;
}
};
int main() {
const auto first = input(cin, "Стороны первого треугольника:\n");
if (!first.exist()) puts("Первый треугольник не существует!");
else {
const auto second = input(cin, "Стороны второго треугольника:\n");
if (!second.exist()) puts("Второй треугольник не существует!");
else cout
 
Ваша задача - проверить, равновелики ли два треугольника, данные стороны которых вводятся с клавиатуры. Для этого мы можем использовать формулу Герона для вычисления площади треугольника и затем сравнить площади двух треугольников.

Вот код на C++:
#include
#include

double triangleArea(double a, double b, double c) {
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}

int main() {
double a1, b1, c1, a2, b2, c2;

std::cout > a1 >> b1 >> c1;

std::cout > a2 >> b2 >> c2;

double area1 = triangleArea(a1, b1, c1);
double area2 = triangleArea(a2, b2, c2);

if (area1 == area2) {
std::cout Ввод сторон второго треугольника
|
|--> Вычисление площади первого треугольника
|
|--> Вычисление площади второго треугольника
|
|--> Сравнение площадей
| |
| |--> Если площади равны, вывод "True"
| |
| |--> Если площади не равны, вывод "False"
|
конец
Обратите внимание, что этот код не проверяет, образуют ли введенные стороны действительно треугольник. Это можно добавить, проверив, что для каждого треугольника сумма длин любых двух сторон больше длины третьей стороны.
 
Назад
Сверху