[Pascal] Zadanie z matematyki

0

no wiec zadanie polega na tym zeby napisac program obliczający pole powierzchni n-wielokąta.

ja po prostu potrzebuje wzor wg. ktorego moge obliczyc pole n-wielokata, oczywiscie rozwazamy układ wspolrzednych czyli musi byc miejsce na wpisanie wspolrzednych wierzcholkow wielokata.

Mam nadzieje ze ktos mi pomoze.

--
Umiem troche, ale nie wszystko :) a na koncu i tak BLUE SCREEN

0

Proponuję przeprowadzić triangulację. Najprościej to zrobić tak:

  1. Wybierasz dowolny wierzchołek n-kąta: w(1)
  2. a := 2; b := 3;
  3. Liczysz pole trójkąta w(1), w(a), w(b)
  4. Jeżeli b > n to idź do 6
  5. a := b; b := b + 1; Idź do 3
  6. Zsumuj wszystkie obliczone pola. Wynik jest polem wielokąta.

Pole trójkąta o danych 3 współrzędnych możesz policzyć np. z wyznacznika:
|x1 y1 1|
S = 0.5*|x2 y2 1|= 0.5*(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))
|x3 y3 1|

--
Jest jeszcze jeden błąd ... :)
--------Oficjalny kanał----------
Service for programmers w IRC: #4programmers, warszawa.ircnet.pl (POLNet)

0

dokładnie tak !

0

Przykladowy program:

program Pole_Wielokata;
uses crt;
var X:array[1..10] of real; {tablica wsp. x wierzch. wielokata}
Y:array[1..10] of real; {tablica wsp. y wierzch. wielokata}
n:integer; {ilosc wierzcholkow}
Pole:real; {Pole wielokata}
j:integer; {zmienna indeksowa}
begin
{wczytywanie wspolrzednych}
Clrscr;
Write('Podaj ilosc wierzcholkow ');
Readln(n);
Writeln(' UWAGA!');
Writeln('Wspolrzedne wierzcholkow nalezy podawac w takiej kolejnosci aby odcinki');
Writeln('je laczace tworzyly zadany wielokat.');
Repeat until keypressed; {czeka na nacisniecie klawisza}
readkey; {czysci zawartosc bufora klawiatury}
Writeln('Podaj wspolrzedne: ');
For j:=1 to n do
begin
Write(' X,Y ',j,' wierzcholka: ');
readln(X[j],Y[j]);
end;
{obliczanie pola}
Pole:=0;
For j:=1 to n-1 do
Pole:=Pole+0.5*(X[j+1]-X[j])(Y[j]+Y[j+1]); {realizacja sumy}
Pole:=Pole+0.5
(X[1]-X[n])*(Y[1]+Y[n]); {powrot do wierz. pocz.}
Writeln('Pole wielokata wynosi: ',Abs(Pole)4);
repeat until keypressed;
end.

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