Модуль для операций с векторами - Pascal
Формулировка задачи:
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами на плоскости: 1) сложение; 2) вычитание; 3) скалярное умножение векторов; 4) умножение вектора на число; 5) длина вектора.
Вектор представить типом «Запись» с полями X, Y: Real. Используя этот модуль, решить задачу:Дан массив А — массив векторов. Отсортировать его в порядке убывания длин векторов.
Модуль создал, осталось сортировка. Нужна помощь
Решение задачи: «Модуль для операций с векторами»
textual
Листинг программы
- uses vect;
- const max=20;
- var a:array[1..max] of Vector;
- n,i,j:byte;
- x:Vector;
- begin
- randomize;
- repeat
- write('Введите количество векторов от 2 до ',max,' n=');
- readln(n);
- until n in [2..max];
- writeln('Исходные вектора');
- for i:=1 to n do
- with a[i] do
- begin
- x:=-5+10*random;
- y:=-5+10*random;
- write(i:2,'(x=',x:5:2,' y=',y:5:2,' dlina=',Dlina(a[i]):5:2,') ');
- if i mod 2=0 then writeln;
- end;
- writeln;
- //сортировка
- for i:=1 to n-1 do
- for j:=i+1 to n do
- if Dlina(a[i])< Dlina(a[j]) then
- begin
- x:=a[i];
- a[i]:=a[j];
- a[j]:=x;
- end;
- writeln('Вектора в порядке убывания длин');
- for i:=1 to n do
- with a[i] do
- begin
- write(i:2,'(x=',x:5:2,' y=',y:5:2,' dlina=',Dlina(a[i]):5:2,') ');
- if i mod 2=0 then writeln;
- end;
- end.
Объяснение кода листинга программы
- Подключение модуля
vect
с операциями над векторами. - Определение константы
max
со значением 20. - Объявление массива
a
размеромmax
с элементами типаVector
. - Объявление переменных
n
,i
,j
типаbyte
. - Объявление переменной
x
типаVector
. - Инициализация генератора случайных чисел.
- Ввод количества векторов
n
с проверкой ввода. - Вывод сообщения
Исходные вектора
. - Генерация случайных координат для каждого вектора в диапазоне от -5 до 5.
- Вывод информации о каждом векторе: номер, координаты, длина.
- Сортировка векторов в массиве
a
по убыванию их длин. - Вывод отсортированных векторов.
- Конец программы.
Здесь
Vector
предположительно представляет собой структуру или класс, содержащий координаты и операции с векторами, и определенный в подключаемом модулеvect
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д