Type St = record iquo: integer; {целая часть} irem: integer; {числитель дроби} idiv: integer; {знаменатель дроби} end;
function iMax(i, j: integer): integer; begin if i > j then iMax := i else iMax := j end;
function iMin(i, j: integer): integer; begin if i < j then iMin := i else iMin := j end;
function FR(i, j, k: integer): St; var nmax, nmin: integer;
begin nmax := iMax(iMax(i, j), k); nmin := iMin(iMin(i, j), k); with Result do begin iquo := nmax div nmin; idiv := nmin; irem := nmax mod nmin end end;
var a, b, c: integer; r: St;
begin write('Введите через пробел три целых числа:'); readln(a, b, c); r := FR(a, b, c); writeln('Результат работы функции: ', r.iquo, ' целых и ', r.irem, '/', r.idiv) end.
Тестовое решение:
Введите через пробел три целых числа:343 253 37 Результат работы функции: 9 целых и 10/37
1. Упростим исходную логическую функцию Для удобства записи будем использовать общепринятые сокращения. Операцию логического сложения (дизъюнкцию) "∨" будем обозначать знаком "+". Логическое умножение (конъюнкцию) "∧" будем обозначать знаком умножения (точкой) или опускать, как принято в алгебре. Вместо знака логического отрицания будем использовать надчеркивание. 2. Переведем в двоичную систему счисления заданные значения A, B, C: 3. Построим таблицу истинности для функции у 4. Переведем результат в десятичную систему счисления
a, b, c = map(int, input("Введите кол-во часов, минут, секунд: ").split())
print(f"{a*3600+b*60+c} секунд")
Объяснение: