Сформировать модуль, который сортирует по возрастанию дробные элементы массива - Pascal
Формулировка задачи:
сформировать модуль, который сортирует по фазрастанию ДРОБНЫЕ элементы массива. заранее спасибо за помощь
Решение задачи: «Сформировать модуль, который сортирует по возрастанию дробные элементы массива»
textual
Листинг программы
unit SortDrob; interface type Natur = 1..high(longInt);{натуральные числа типа longint} Frac = record p:integer; {Числитель дроби} q:Natur {Знаменатель дроби} end; mass=array[1..100] of Frac; procedure Vvod(var m:mass; var n:integer); procedure Vyvod(var m:mass;n:integer); procedure Sort(var m:mass;n:integer); {Раздел реализации модуля} implementation procedure Vvod; var i:integer; begin write('Введите размер массива - '); readln(n); writeln('Исходный массив:'); for i:=1 to n do begin m[i].p:=random(20)-9; m[i].q:=random(20)+1; write(m[i].p,'/',m[i].q,' '); end; writeln; end; procedure Vyvod; var i:integer; begin writeln('Отсортированный массив:'); for i:=1 to n do write(m[i].p,'/',m[i].q,' '); end; {вспомогательная функция, только внутри модуля} function Bolshe(a,b:Frac):boolean; begin Bolshe:=a.p*b.q > a.q*b.p end; procedure Sort; var i,j:integer; x:Frac; begin for i:=1 to n-1 do for j:=i to n do if Bolshe(m[i],m[j])then begin x:=m[i]; m[i]:=m[j]; m[j]:=x; end; end; end.
Объяснение кода листинга программы
Данный код представляет собой модуль Pascal, который реализует функцию сортировки массива дробных чисел по возрастанию. В начале определены основные типы и переменные:
Natur
- тип, представляющий натуральные числа типаlongInt
;Frac
- запись типа, содержащая числительp
и знаменательq
дроби;mass
- массив дробных чисел типаFrac
;n
- переменная, хранящая размер массива. Далее определены три процедуры:Vvod
- процедура ввода данных, которая считывает размер массиваn
и заполняет его случайными дробными числами;Vyvod
- процедура вывода отсортированного массива;Sort
- основная процедура сортировки массива. Внутри процедурыSort
используется циклfor
, который выполняет сортировку массива методом пузырька. В каждой итерации цикла сравниваются два соседних элемента массива и если текущий элемент больше следующего, то они меняются местами. Этот процесс повторяется до тех пор, пока массив не будет полностью отсортирован. Также в коде определена вспомогательная функцияBolshe
, которая сравнивает два элемента массива и возвращаетtrue
, если первый элемент больше второго, иfalse
в противном случае. В итоге, данный код реализует функцию сортировки массива дробных чисел по возрастанию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д