Программа получает из файла данные о координатах школы (sx и sy) и n домов микрорайона (x1, y1, x2, y3, … , xn, yn).
Cтруктура файла «f.txt» такова:
В первой строке указываем два числа – «координаты школы»
На второй строке пишем число N
Следующие N строк – это координаты соответствующих домов
program gs;
type
xy = record { запись для массива с X,Y координатами }
x: real; { координата Х }
y: real; { координата Y }
end;
var
f: text; { переменная файла }
cx, cy: real; { переменные координат школы }
n, i: integer;
m1: array [1 .. 100] of xy; { массив с координатами домов }
rast: array [1 .. 100] of real; { массив с расстояниями }
min: real; { переменная минимального расстояния }
rmin: integer; { переменная номера дома, где МИН расстояние }
begin
assign(f, 'f.txt');
reset(f); { открываем файл для чтения }
readln(f, cx, cy); { считываем с файла коордиенаты школы }
readln(f, n); { считываем с файла кол-во доммов }
for i := 1 to n do
readln(f, m1[i].x, m1[i].y); { считываем с файла координаты домов }
for i := 1 to n do
rast[i] := sqrt(sqr(m1[i].x - cx) + sqr(m1[i].y - cy));
{ вычисляем расстояниЯ от школы к домам }
writeln('Vsego ', n, ' domov mikroraiona'); { выводим на экран кол-во домов }
writeln('Massiv rasstoyanii ot shkoly do kazhdogo doma:');
for i := 1 to n do
writeln(rast[i]:0:2); { выводим массив с расстояниями }
min := rast[1]; { ***начало вычисления МИНИМ растояния*** }
for i := 2 to n do
if rast[i] < min then
begin
min := rast[i];
rmin := i;
end; { ***конец вычисления МИНИМ растояния*** }
writeln('Nomer doma s minimalinym (', min:0:2,
') rasstoyaniem ot shkoly: ', rmin);
close(f);
readln;
end.