Создать функцию, которая для двух данных чисел определяет в каком числе произвольных чисел больше - Turbo Pascal
Формулировка задачи:
создать функцию,которая для двух данных чисел определяет в каком числе произвольных чисел больше
Решение задачи: «Создать функцию, которая для двух данных чисел определяет в каком числе произвольных чисел больше»
textual
Листинг программы
function DiffNumb(x: LongInt): Byte; var Result, temp: Byte; s: Set Of 0..9; begin s := []; Result := 0; x := Abs(x); repeat temp := x mod 10; x := x div 10; if Not(temp in s) then Inc(Result); Include(s, temp); until (x = 0); DiffNumb := Result; end; function Compare(const x, y: LongInt; var z: LongInt): Boolean; var Result: Boolean; xx, yy: Byte; begin xx := DiffNumb(x); yy := DiffNumb(y); Result := (xx <> yy); if (Result) then begin if (xx > yy) then z := x else z := y; end; Compare := Result; end; var x, y, z: LongInt; begin Write('Input x: '); ReadLn(x); Write('Input y: '); ReadLn(y); if (Compare(x, y, z)) then begin if (z = x) then WriteLn('First') else WriteLn('Second'); end else WriteLn('Same'); end.
Объяснение кода листинга программы
- Функция
DiffNumb
принимает два аргумента типаLongInt
и возвращает один байт (Byte
). Она использует переменнуюs
, которая представляет собой множество от 0 до 9, и переменнуюResult
, которая инициализируется значением 0. Затем функция выполняет следующие действия:- Инициализирует переменную
x
абсолютным значением входного аргументаx
. - В цикле повторяется, пока
x
не станет равным 0.- Вычисляет остаток от деления
x
на 10 и сохраняет его в переменнойtemp
. - Делит
x
на 10 и сохраняет результат в переменнойx
. - Если
temp
не содержится в множествеs
, то увеличивает значениеResult
на 1. - Добавляет
temp
в множествоs
.
- Вычисляет остаток от деления
- Завершает цикл, когда
x
становится равным 0. - Возвращает значение
Result
.
- Инициализирует переменную
- Функция
Compare
принимает три аргумента:const x
,const y
иvar z
: все они типаLongInt
. Она использует две переменныеxx
иyy
: обе они инициализируются результатами вызова функцииDiffNumb
дляx
иy
соответственно. Затем функция выполняет следующие действия:- Если значение
xx
отличается от значенияyy
, то устанавливает значениеResult
вTrue
и начинает выполнять следующие действия:- Если
xx
большеyy
, то устанавливает значениеz
равнымx
. - Иначе устанавливает значение
z
равнымy
.
- Если
- Возвращает значение
Result
.
- Если значение
- В основной части программы вводятся значения
x
иy
с помощью функцииReadLn
. Затем вызывается функцияCompare
с аргументамиx
,y
иz
. В зависимости от результата сравнения выводится соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д