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

Объяснение кода листинга программы

  1. Функция 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.
  2. Функция Compare принимает три аргумента: const x, const y и var z: все они типа LongInt. Она использует две переменные xx и yy: обе они инициализируются результатами вызова функции DiffNumb для x и y соответственно. Затем функция выполняет следующие действия:
    • Если значение xx отличается от значения yy, то устанавливает значение Result в True и начинает выполнять следующие действия:
      • Если xx больше yy, то устанавливает значение z равным x.
      • Иначе устанавливает значение z равным y.
    • Возвращает значение Result.
  3. В основной части программы вводятся значения x и y с помощью функции ReadLn. Затем вызывается функция Compare с аргументами x, y и z. В зависимости от результата сравнения выводится соответствующее сообщение.

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы