15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.
A function or subroutine names a reusable calculation. Our policy accepts nonnegative total and completed counts and returns zero when completed reaches or exceeds total. Otherwise it returns their difference. Trace (4,1), (4,4), (4,5), and (0,0). Keep printing separate from calculation. Write down why negative inputs are outside this exercise’s domain, then design an explicit rejection policy before accepting external input.
Object Pascal classes and Objective-Pascal are distinct. First learn class, construction, and Free using the Linux lab. Objective-Pascal adds Objective-C interoperability through mode switches; this lab does not provide that Apple runtime.
program AgilaStudy;
{$mode objfpc}{$H+}{$assertions on}
function Remaining(Total, Done: Integer): Integer;
begin
if Done >= Total then Result := 0 else Result := Total - Done;
end;
begin
writeln(Remaining(4, 1));
end.
Expected result: 3
Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.