Advertisement
deced

Untitled

Mar 16th, 2021
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.65 KB | None | 0 0
  1. type
  2.     TArray = array of Double;
  3.  
  4. function GetArraySize(): Integer;
  5. begin
  6.     Writeln('Введите количество точек');
  7.     Readln(Result);
  8. end;
  9.  
  10. function GetIntArray(Size: Integer; MainMsg, ElementName: String): TArray;
  11. var
  12.     I: Integer;
  13. begin
  14.     SetLength(Result, Size);
  15.     Writeln(MainMsg);
  16.     for I := 0 to High(Result) do
  17.     begin
  18.         Write(ElementName + '[' + IntToStr(I) + '] = ');
  19.         Readln(Result[I]);
  20.     end;
  21. end;
  22.  
  23. function GetArraySum(Arr: TArray): Double;
  24. var
  25.     I: Integer;
  26. begin
  27.     Result := 0;
  28.     for I := 0 to High(Arr) do
  29.         Result := Result + Arr[I];
  30. end;
  31.  
  32. function Get2ArrSum(Arr1, Arr2: TArray): Double;
  33. var
  34.     I: Integer;
  35. begin
  36.     Result := 0;
  37.     for I := 0 to High(Arr1) do
  38.         Result := Result + (Arr1[I] * Arr2[I]);
  39. end;
  40.  
  41. var
  42.     XArr, YArr, MArr: TArray;
  43.     Mass, Xc, Yc: Double;
  44.     Size: Integer;
  45.  
  46. var
  47.     OutputFile: TextFile;
  48.  
  49. begin
  50.     Size := GetArraySize();
  51.     XArr := GetIntArray(Size, 'Введите массив координат X точек', 'x');
  52.     YArr := GetIntArray(Size, 'Введите массив координат Y точек', 'y');
  53.     MArr := GetIntArray(Size, 'Введите массив масс M', 'm');
  54.     Mass := GetArraySum(MArr);
  55.     Xc := Get2ArrSum(XArr, MArr) / Mass;
  56.     Yc := Get2ArrSum(YArr, MArr) / Mass;
  57.     AssignFile(OutputFile, 'output.txt');
  58.     Rewrite(OutputFile);
  59.     Writeln('Координаты центра масс (', Xc:0:3, ';', Yc:0:3, ')');
  60.     Writeln(OutputFile, 'Координаты центра масс (', Xc:0:3, ';', Yc:0:3, ')');
  61.     CloseFile(OutputFile);
  62.     Readln;
  63. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement