1

Тема: Порівняння застосування потоків введення-виведення бібліотеки C++

#include <cmath>
#include <iostream>
using namespace std;

struct point
{
    float x;
    float y;
    float length(point pt) {
        return sqrt(pow(pt.x - x, 2.0f) + pow(pt.y - y, 2.0f));
    }
};
int main() {
    point A = {0, 0};
    point B = {3, 3-1};
    point C = {-3, 3+1};
    float p = (A.length(B) + A.length(C) + B.length(C)) / 2;
    float S = sqrt(p * (p - A.length(B)) * (p - A.length(C)) * (p - B.length(C)));
    float h = A * B / sina;
    cout << "p= " << p << endl;
    cout << "S= " << S << endl;
    return 0;
}

Написала код, але здається, що він не зовсім правильний...
Завдання:
Трикутник заданий координатами вершин А (0; 0), В (і, і-1) та С (-і; i + 1), де i - 3.
1.Обчислити висоту h(а) та бісектрису W(c).

2

Re: Порівняння застосування потоків введення-виведення бібліотеки C++

Чому вам так здається?

3

Re: Порівняння застосування потоків введення-виведення бібліотеки C++

S = 1/2 a h(a);
h(a) = 2S / a

4

Re: Порівняння застосування потоків введення-виведення бібліотеки C++

Розумієте, код є неправильним, якщо не виконує свого завдання. Перевірити, чи виконує ваш код завдання, ви цілком спроможні самостійно, просто скомпілюйте, запустіть його і порівняйте результати роботи з тим, чого очікуєте. Якщо щось не так, то ви цілком здатні зрозуміти, що саме, замість "здається". Наприклад, "компілятор повідомляє про помилку ... у рядку ...". Або "програма виводить площу -1, а площа має бути додатним числом". Чи ще щось. Якщо ви цього зробити не можете, то проблема точно не в коді. Постарайтеся, я вірю, ви зможете.
Є наступний крок: коли код виконує завдання, його завжди можна так чи інакше покращити. Якщо ви вже дійшли до цього стану - то так і пишіть, це зветься code review.

5

Re: Порівняння застосування потоків введення-виведення бібліотеки C++

float h = A * B / sina;

Тут точно помилка (чи, точніше, це помилка і з точки зору математики, і з точки зору мови програмування). Якщо його викинути, програма щось обчислить і виведе, але не те, про що йдеться в завданні. Хоча знайдену площу S можна використати для обчислення висоти: оскільки S=1/2 haa, то ha=2S/a, де ha — висота, опущена з кута A на сторону a (що є іншим позначенням сторони BC).
У коді цієї програми це виглядатиме так:

float h=2*S/B.length(C);