Зададени са координатите x и y на n точки. Последователно съединени те образуват начупена линия, съставена от n-1 отсечки. Да се състави програма за намиране общата дължина на начупената линия.
program linia; uses Math; const n = 3; var p: array[1..n,1..2] of integer; i:integer; l:real; function pow(num, exponent:integer):real; begin pow := Exp( exponent * Ln(abs(num)) ); end; function GetLength(x1, x2, y1, y2:integer):real; begin GetLength := sqrt(pow(x2-x1, 2) + pow(y2-y1, 2)); end; begin for i := 1 to n do begin Write('x', i, ' = '); ReadLn(p[i][1]); Write('y', i, ' = '); ReadLn(p[i][2]); end; l := 0; for i := 2 to n do begin l := l + GetLength(p[i][1], p[i-1][1], p[i][2], p[i-1][2]); end; WriteLn('Length is', l); end.
За намирането на дължината на всяка отсечка използваме Питагоровата формула за хипотенуза. Тъй като в Pascal няма функция за повдигане на число на степен, дефинираме функцията pow(), която прави точно това.
Програмата се компилира под Free Pascal:
aquilax@think /d/p/z/03_linia> fpc 03_linia.pas Free Pascal Compiler version 2.4.0-2 [2010/03/06] for x86_64 Copyright (c) 1993-2009 by Florian Klaempfl Target OS: Linux for x86-64 Compiling 03_linia.pas Linking 03_linia 34 lines compiled, 0.1 sec aquilax@think /d/p/z/03_linia> ./03_linia x1 = 1 y1 = 2 x2 = 3 y2 = 4 x3 = 5 y3 = 6 Length is 5.65685424949238E+000
Няма коментари:
Публикуване на коментар