• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Równoległobok wpisany w prostokąt

Object Storage Arubacloud
0 głosów
1,031 wizyt
pytanie zadane 3 marca 2018 w C i C++ przez Undisputed Gaduła (3,040 p.)

Witajcie.
Ćwiczę programowanie w C++ i natrafiłem na taki problem.
Treść zadania:
http://solve.edu.pl/tasks/view/261

I oto mój kod, jednak strona nie zalicza mi tego programu...
Byłbym wdzięczny za jakieś wskazówki.

 

                                                                                                                                 
#include <iostream>

using namespace std;

int main()
{
  int a,b,pa,qa,pb,qb; //dane wejsciowe                                                                                                                                  
  float aa,bb,pole_prostokata, pole_trojkata, pole_rowno, bok1, bok2, bok3, bok4;//aa i bb to suma stosunków || bok1,bok2,bok3,bok4 to boki po podzieleniu               
  cin >> a >> b >> pa >> qa >> pb >> qb;
  pole_prostokata=a*b;
  aa=pa+qa;
  bb=pb+qb;
  bok1=a/aa*pa;
  bok2=b/bb*pb;
  bok3=a/aa*qa;
  bok4=b/bb*qb;
  pole_trojkata=0.5*bok1*bok2+0.5*bok4*bok1+0.5*bok3*bok2+0.5*bok4*bok3;
  pole_rowno=pole_prostokata-pole_trojkata;
  cout << pole_rowno;
  return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 3 marca 2018 przez Beginer Pasjonat (22,110 p.)
Trzeba najpierw policzyć długości  odcinków boków, na jakie zostały podzielone. I tak na przykład dla boku a:

Xaq = (qa * a) / (pa + qa)

Xap = (pa * a) / (pa + qa)

Analogicznie dla boku b.

Mając te długości już bardzo łatwo można policzyć pola, i odjąć od całego pola prostokąta. To będzie szukane pole równoległoboku.
komentarz 3 marca 2018 przez Undisputed Gaduła (3,040 p.)
Tak też robiłem :)
bok1 to Xaq twoje itd. Zobacz
komentarz 3 marca 2018 przez Beginer Pasjonat (22,110 p.)
Ok!

W takim razie wprowadź jakieś proste dane, żeby można było łatwo skontrolować, np. a = 10,  b =20, i jakieś proste stosunki podziału boków np. 4 : 5. Niech program wyliczy te odcinki: bok1, bok2, itd.

Policzenie pola to jest zupełnie proste, nie trzeba wcale liczyć trójkątów.
0 głosów
odpowiedź 3 marca 2018 przez Paweł Dymek Bywalec (2,300 p.)
edycja 3 marca 2018 przez Paweł Dymek
Kartka, długopis w rękę i jedziemy.

Narysuj sobie taki prostokąt, wpisz w niego równoległobok.

Ponieważ nie znamy wysokości równoległoboku, a jej policzenie jest trudne, zajmiemy się dwiema parami trójkątów, które zajmują pozostałe pole w prostokącie, i tak:

pa/(pa+qa)*a - pierwszy bok

qb/(pb+qb)*b - drugi bok

trójkąty sa prostokątne, więc dowolna przyprostokątna jest wysokością

pole = 1/2 a h

ale ponieważ mamy dwa identyczne trójkąty to wywalamy 1/2  ze wzoru i otrzymamy pole ich obu:

(pa/(pa+qa)*a) * (qb/(pb+qb)*b)

analogicznie dla pozostałych dwóch trójkątów

(qa/(pa+qa)*a) * (pb/(pb+qb)*b)

Pole prostokąta to a*b

Zatem pole równoległoboku to:

a * b - (pa/(pa+qa)*a) * (qb/(pb+qb)*b) - (qa/(pa+qa)*a) * (pb/(pb+qb)*b)
komentarz 4 marca 2018 przez Beginer Pasjonat (22,110 p.)
Weź kartkę, długopis i rozwiąż ENIGMĘ.

www.enigma-open.pl

Podobne pytania

0 głosów
2 odpowiedzi 2,063 wizyt
0 głosów
1 odpowiedź 177 wizyt
pytanie zadane 7 lipca 2019 w JavaScript przez Brzeczy Początkujący (310 p.)
0 głosów
2 odpowiedzi 1,426 wizyt
pytanie zadane 14 czerwca 2018 w JavaScript przez MakaBresk Obywatel (1,060 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...