Модуль для операций с векторами - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д