Определить, равны ли суммы первой и последней цифр чисел - Pascal ABC
Формулировка задачи:
заданы два целых числа. Определить используя функции и процедуры.
-равны ли суммы их первой и последней цифр.
-выстроить количество цифр <1> в каждом числе по возрастанию.
-попадает ли сумма цифр каждого числа в интервал(10,20).
-равны ли произведение чётных цифр каждого числа.
Pascal
Решение задачи: «Определить, равны ли суммы первой и последней цифр чисел»
textual
Листинг программы
function Zad1(const x, y: Integer): Boolean; function SumFirstAndLast(x: Integer): Byte; var Result: Byte; begin x := Abs(x); Result := x mod 10; while (x > 9) do x := x div 10; Inc(Result, x); SumFirstAndLast := Result; end; begin Zad1 := (SumFirstAndLast(x) = SumFirstAndLast(y)); end; function Zad3(const x, y: Integer): Boolean; function From10To20(x: Integer): Boolean; var temp: Byte; begin x := Abs(x); temp := 0; repeat Inc(temp, x mod 10); x := x div 10; until ((x = 0) And (temp > 20)); From10To20 := ((temp > 9) And (temp < 21)); end; begin Zad3 := (From10To20(x) And From10To20(y)); end; function Zad4(const x, y: Integer): Boolean; function MultEven(x: Integer): LongWord; var Result: LongWord; temp: Byte; begin Result := 1; repeat temp := x mod 10; x := x div 10; if (Not Odd(temp)) then Result := Result * temp; until (x = 0); MultEven := Result; end; begin Zad4 := (MultEven(x) = MultEven(y)); end;
Объяснение кода листинга программы
- Функция
Zad1принимает два целых числаxиyв качестве параметров и возвращает логическое значениеTrue, если сумма первой и последней цифры чисел равна, иFalseв противном случае. В этой функции используется вспомогательная функцияSumFirstAndLast, которая принимает целое числоxи возвращает его первую цифру (x mod 10) и сумму всех цифр (x div 10), а затем увеличивает сумму первой цифры на единицу. - Функция
SumFirstAndLastиспользуется в функцииZad1для вычисления суммы первой и последней цифры числаx. Эта функция принимает целое числоxи возвращает его первую цифру и сумму всех цифр. Для этого она делит число на 10, пока оно не станет однозначным, и затем увеличивает сумму первой цифры на единицу. - Функция
Zad3принимает два целых числаxиyв качестве параметров и возвращает логическое значениеTrue, если сумма цифр чисел от 10 до 20 равна, иFalseв противном случае. Эта функция использует вспомогательную функциюFrom10To20, которая принимает целое числоxи возвращаетTrue, если сумма цифр чисел от 10 до 20 больше или равна 10, иFalseв противном случае. ФункцияFrom10To20вычисляет сумму цифр чисел от 10 до 20, используя цикл повторения, который увеличивает сумму на единицу при каждом проходе. - Функция
Zad4принимает два целых числаxиyв качестве параметров и возвращает логическое значениеTrue, если произведение четных чисел равно, иFalseв противном случае. Эта функция использует вспомогательную функциюMultEven, которая принимает целые числаxиyи возвращает произведение четных чисел. ФункцияMultEvenвычисляет произведение четных чисел, используя цикл повторения, который умножает текущую цифру на предыдущую, пока не будет достигнуто основание числа.