Obwod dowolnego wielokata

0

Hej!
Tworze wlasnie program pobierajacy ilosc jak i dlugosc boku, aby obliczyc pole i obwod dowolnego wielokata. Funkcja create zwraca konkretny wielokat i dalej juz sie samo liczy. Problem tkwi w tym, ze gdy zwracam z funkcji create tablice to wypisuje mi jakies liczby dodatkowo nie wiem jak sie zabrac za funkcje z obliczeniem obwodu wielokata. Pomocy!

struct Polygon
{
    int boki;
    int dl;
};

Polygon create()
{
    Polygon polygon;
    cout << "Podaj ilosc bokow" << endl;
    cin >> polygon.boki;
    cout << "Podaj dlugosc boku" << endl;
    cin >> polygon.dl;
    return polygon;
}

int area(Polygon polygon)
{
    cout << polygon.boki << "-kat" << endl;
    int wynik = (polygon.boki*polygon.dl);
    return wynik;
}

int main()
{
    Polygon polygon;
    create();
    int wynik = area(polygon);
    cout << "Obwod: " << wynik << endl;
    system("pause");
    return 0;
}
0
  1. area to pole a nie obwód. Obwód to circumference
  2. Pokaż kod który ci nie działa a nie taki który działa...
0

Podaj ilosc bokow
5
Podaj dlugosc boku
10
2293576-kat
Obwod: 1535265440
Press any key to continue . . .

Takie cos mi sie wyswietla, a nie wiem dlaczego.

A to przepraszam, zamiast area powinno byc circumference.

1
Polygon polygon;
create();

zamień na
Polygon polygon = create();

1

aaa no bo stworzyłeś sobie obiekt Polygon, a potem wywołałeś funkcje create() która stworzyła drugi, tylko ze nigdzie go nie przypisaleś...

0
Shalom napisał(a):

aaa no bo stworzyłeś sobie obiekt Polygon, a potem wywołałeś funkcje create() która stworzyła drugi, tylko ze nigdzie go nie przypisaleś...

Czyli jeśli tworzę jeden obiekt Polygon polygon to jest on zupelnie innym obiektem niż ten który tworzy funkcja create() i przechowuje zupełnie inne wartości?
Mnie się wydawało, że Polygon polygon z main i Polygon polygon z funkcji to to samo...
No cóż, dzięki wam wiem, że tak nie jest i czegoś się nauczyłem.

Macie jakieś sugestie co do obliczenia obwodu dowolnego wielokata?

0

@sweeneytodd: oczywiście że to są inne obiekty! Jak ty to sobie inaczej wyobrażasz? A jakbyś w programie chciał mieć kilka róznych wielokątów to jak byś to zrobił?
Jeśli user wpisze ci długości każdego z boków wielokąta do jakiejś tablicy to gdzie problem?

0
Shalom napisał(a):

@sweeneytodd: oczywiście że to są inne obiekty! Jak ty to sobie inaczej wyobrażasz? A jakbyś w programie chciał mieć kilka róznych wielokątów to jak byś to zrobił?
Jeśli user wpisze ci długości każdego z boków wielokąta do jakiejś tablicy to gdzie problem?

Zrobilbym to funkcja switch().

User zaklada, ze kazdy bok ma taka sama dlugosc.
Małe sprostowanie, bo nieco się zamotałem...
W kodzie obliczam jedynie obwód wielokąta. Problem z właśnie z POLEM. W internecie są wzory z promieniami, cotagensami i stopniami ...

1

Scałkuj tego wielokąta i gitara, tak idzie najłatwiej obliczyć powierzchnię.

A obwód, to ze wzorów lub z sum krawędzi długości pitagorasa każdej ściany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1