program RecursiveDivision;
function Divide(dividend, divisor: Integer): Integer;
begin
// Handle division by zero
if divisor = 0 then
begin
WriteLn('Error: Division by zero');
Halt; // Terminate the program
end;
// Base case: If the dividend is less than the divisor, return 0
if dividend < divisor then
Divide := 0
else
// Recursive case: Subtract divisor from dividend and add 1 to the result
Divide := 1 + Divide(dividend - divisor, divisor);
end;
var
dividend, divisor, result: Integer;
begin
dividend := 28;
divisor := 4;
// Call the recursive function
result := Divide(dividend, divisor);
WriteLn('Result of division: ', result);
end.
(*
run:
Result of division: 7
*)