program 4 - pole powierzchni

Transkrypt

program 4 - pole powierzchni
Program 4. Pole powierzchni (z wzorów Gaussa).
Algorytm
1. Wprowadzenie współrzędnych wierzchołków.
2. Sprawdzenie współrzędnych
3. Obliczenie pola (dwukrotnie).
4. Porównanie pól obliczonych dwukrotnie
Kod programu
Program 4pole
{$apptype console}
Uses SysUtils;
Var x, y: array [0..21] of Real;
i, w, max, min, s, l, k :Integer;
p1, p2, pole :Real;
Begin
Writeln (' Witaj w programie pt. ,,Obliczanie pola powierzchni"');
Writeln;
Writeln;
Repeat
Write ('Podaj ilość wierzchołków wielokąta => (3:20) ');
Readln (w);
Until (w>2) and (w<=20);
For i:=1 to w do
Begin
Write ('Podaj współrzędną X ',i,' => ');
Readln ( x[i] ) ;
Write ('Podaj współrzędną y ',i,' => ');
Readln ( y[i] ) ;
end;
x[0] := x[w];
y[0] := y[w];
x[w+1] := x[1];
y[w+1] := y[1];
// Kontrola współrzędnych
p1:=0;
p2:=0;
For i:=1 to w do
Begin
p1:= p1+(y[i+1]-y[i-1]);
p2:= p2+(x[i+1]-x[i-1]);
end;
if p1<0 Then p1:=-p1;
if p2<0 Then p2:=-p2;
if (p1 <> 0) Or (p2<>0) Then writeln ('Błąd współrzędnych !!!');
// Obliczenie pola
p1:=0;
p2:=0;
For i:=1 to w do
Begin
p1:= p1+x[i]*(y[i+1]-y[i-1]);
p2:= p2+y[i]*(x[i+1]-x[i-1]);
end;
if p1<0 Then p1:=-p1;
if p2<0 Then p2:=-p2;
p1:=p1*1000;
p1:=int(p1);
p1:=p1/1000;
p2:=p2*1000;
p2:=int(p2);
p2:=p2/1000;
if p1<>p2 Then writeln ('Błąd obliczeń !!!');
writeln('2*pole z x... =',p1:9:1);
writeln('2*pole z y... =',p2:9:1);
pole:=p1/2;
writeln('Pole powierzchni wynosi =',pole:9:1);
Writeln;
writeln;
write ('Program napisał Bezimienny Student.');
Readln;
end.
Jan Ruchel
Kraków, październik 2010

Podobne dokumenty