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