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