fork download
  1. program PointProcessing;
  2.  
  3. uses
  4. SysUtils;
  5.  
  6. const
  7. MAX_POINTS = 100; // Максимальное количество точек
  8.  
  9. var
  10. X: array[1..MAX_POINTS] of Double; // Массив абсцисс
  11. Y: array[1..MAX_POINTS] of Double; // Массив ординат
  12. n, i: Integer;
  13. count: Integer;
  14. sumDistances: Double;
  15. lastX, lastY: Double;
  16.  
  17. begin
  18. // Ввод количества точек
  19. Write('Введите количество точек (n): ');
  20. ReadLn(n);
  21.  
  22. if (n < 1) or (n > MAX_POINTS) then
  23. begin
  24. WriteLn('Количество точек должно быть в диапазоне от 1 до ', MAX_POINTS);
  25. Exit;
  26. end;
  27.  
  28. // Ввод координат точек
  29. for i := 1 to n do
  30. begin
  31. Write('Введите координаты точки ', i, ' (X', i, ', Y', i, '): ');
  32. Read(X[i], Y[i]);
  33. end;
  34.  
  35. // Подсчет количества точек, ордината которых больше абсциссы
  36. count := 0;
  37. for i := 1 to n do
  38. begin
  39. if Y[i] > X[i] then
  40. Inc(count);
  41. end;
  42.  
  43. // Вычисление расстояний от последней точки до остальных
  44. lastX := X[n];
  45. lastY := Y[n];
  46. sumDistances := 0;
  47.  
  48. for i := 1 to n - 1 do
  49. begin
  50. sumDistances := sumDistances + Sqrt(Sqr(lastX - X[i]) + Sqr(lastY - Y[i]));
  51. end;
  52.  
  53. // Вывод результатов
  54. WriteLn('Количество точек, ордината которых больше абсциссы: ', count);
  55. WriteLn('Сумма расстояний от последней точки до остальных: ', sumDistances:0:2);
  56. end.
Success #stdin #stdout 0s 5276KB
stdin
Standard input is empty
stdout
Введите количество точек (n): Количество точек должно быть в диапазоне от 1 до 100