Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Task for TravelLine
- // Author: Alex Krasheninnikov
- // Date 24.05.2022
- PROGRAM NumberConverter(INPUT, OUTPUT);
- TYPE
- AbstractNumber = RECORD
- Value: INTEGER;
- Digits: ARRAY [1 .. 10] OF INTEGER;
- Length: INTEGER;
- NumberSytemBase: INTEGER;
- END;
- VAR
- Number: AbstractNumber;
- PROCEDURE MakeDigitsInSuchNumberSystemBase(VAR LocalNumber: AbstractNumber);
- {Получаем цифры числа в заданной системе счисления и записываем их в объект числа}
- VAR
- Counter, Value: INTEGER;
- BEGIN {MakeDigitsInSuchNumberSystemBase}
- Counter := 1;
- Value := LocalNumber.Value;
- WHILE Value <> 0
- DO
- BEGIN
- LocalNumber.Digits[Counter] := Value MOD LocalNumber.NumberSytemBase;
- Value := Value DIV LocalNumber.NumberSytemBase;
- Counter := Counter + 1
- END;
- LocalNumber.Length := Counter - 1
- END; {MakeDigitsInSuchNumberSystemBase}
- FUNCTION ReadAbstractNumber(VAR InputFile: TEXT): AbstractNumber;
- {Получаем объект числа}
- VAR
- LocalNumber: AbstractNumber;
- BEGIN {ReadAbstractNumber}
- READLN(InputFile, LocalNumber.Value, LocalNumber.NumberSytemBase);
- MakeDigitsInSuchNumberSystemBase(LocalNumber);
- ReadAbstractNumber := LocalNumber
- END; {ReadAbstractNumber}
- FUNCTION MultiplyDigits(LocalNumber: AbstractNumber): INTEGER;
- {Получаем результат перемножения цифр числа}
- VAR
- Counter, Result: INTEGER;
- BEGIN {MultiplyDigits}
- Result := 1;
- FOR Counter := 1 TO LocalNumber.Length
- DO
- Result := Result * LocalNumber.Digits[Counter];
- MultiplyDigits := Result
- END; {MultiplyDigits}
- FUNCTION SumDigits(LocalNumber: AbstractNumber): INTEGER;
- {Получаем результат сложения цифр числа}
- VAR
- Counter, Result: INTEGER;
- BEGIN {SumDigits}
- Result := 0;
- FOR Counter := 1 TO LocalNumber.Length
- DO
- Result := Result + LocalNumber.Digits[Counter];
- SumDigits := Result
- END; {SumDigits}
- BEGIN {NumberConverter}
- Number := ReadAbstractNumber(INPUT);
- WRITELN(OUTPUT, (MultiplyDigits(Number) - SumDigits(Number)))
- END. {NumberConverter}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement