Найти вектор минимальной длины - Pascal
Формулировка задачи:
Здравствуйте! Помогите пожалуйста с написанием программы, которая выбирает вектор минимальной длины из заданного множества n-мерных векторов через функцию. Буду очень благодарен всем кто откликнется на помощь!
Решение задачи: «Найти вектор минимальной длины»
textual
Листинг программы
const n=2; k=5;
var
a, b: array [1..n] of Real;
m, t: Real;
i, j: Integer;
begin
WriteLn('Введите координаты ',n,'-мерных векторов (',k,'):');
for j:=1 to n do Read(b[j]); m:=vLen(b);
for i:=2 to k do begin
for j:=1 to n do Read(a[j]); t:=vLen(b);
if m>t then begin
m:=t; b:=a;
end;
end;
Write('Вектор с минимальной длиной ',m,': (',b[1]);
for j:=2 to n do Write(', ',b[j]); WriteLn(')');
end.
Объяснение кода листинга программы
- Объявление и инициализация констант:
n= 2k= 5
- Объявление переменных:
a, b- массивы размерностиnиз вещественных чиселm, t- вещественные числа для хранения длин векторовi, j- целочисленные переменные для использования в циклах
- Определение начала выполнения программы (команда
begin). - Вывод сообщения пользователю с просьбой ввести координаты векторов:
WriteLn('Введите координаты ',n,'-мерных векторов (',k,'):'
- Заполнение массива
bсчитанными значениями:- Цикл, в котором считываются координаты векторов и вычисляется длина каждого вектора
for j:=1 to n do Read(b[j]); m:=vLen(b);
- Цикл, в котором происходит сравнение длин векторов и нахождение минимальной:
for i:=2 to k do begin- Считывание координат векторов в массив
aи расчет длины вектораt for j:=1 to n do Read(a[j]); t:=vLen(b);- Сравнение длин и, если новая длина меньше предыдущей, обновление значения длины и массива
b if m>t then begin m:=t; b:=a; end;
- Вывод результата:
Write('Вектор с минимальной длиной ',m,': (',b[1]);- Вывод координат вектора с минимальной длиной
for j:=2 to n do Write(', ',b[j]); WriteLn(')');
- Конец выполнения программы (команда
end).