• 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

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
810 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 1,716 wizyt
0 głosów
1 odpowiedź 150 wizyt
pytanie zadane 7 lipca 2019 w JavaScript przez Brzeczy Początkujący (310 p.)
0 głosów
2 odpowiedzi 961 wizyt
pytanie zadane 14 czerwca 2018 w JavaScript przez MakaBresk Obywatel (1,060 p.)

89,768 zapytań

138,374 odpowiedzi

309,458 komentarzy

59,679 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 1074p. - Argeento
  2. 1010p. - rucin93
  3. 1006p. - Michal Drewniak
  4. 1000p. - Łukasz Eckert
  5. 974p. - TheLukaszNs
  6. 949p. - JMazurkiewicz
  7. 946p. - adrian17
  8. 933p. - Jarosław Roszyk
  9. 889p. - nidomika
  10. 860p. - Mikbac
  11. 847p. - ssynowiec
  12. 799p. - Hubert Chęciński
  13. 772p. - Mawrok
  14. 768p. - overcq
  15. 764p. - Vinox
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...