Условие задачи : Написать программу выводящую на экран «электронные часы», которые работают в течение нескольких минут или пока не нажата любая кнопка пользователя.
Сложность : легкая .
Как мы будем решать эту задачу ?
Сразу стоит сказать что нам понадобиться два цикла for , один для минут один для секунд.
Для начала мы просто сделаем цикл для секунд т.е. от 0 до 60. Но просто секунды нам не нужны. Поэтому мы сразу делаем еще один цикл для минут, от 0 до числа которое введет пользователь -1 . Почему -1? Если вы оставите то число которое ввел пользователь, то у вас цикл будет работать на минуту больше.
Давайте перейдем к каркасу программы :
uses crt ;
var
i, min, sec : integer;
begin
write('Введите количество минут : '); readln(min); {пользователь вводит кол-во минут}
end.
Итого три переменные. Давайте создадим цикл для секунд :
for sec := 0 to 60 do
begin
writeln(минуты,' : ',sec);
Delay(1000);
clrscr; {каждую секунду мы будем очищать экран}
end;

Теперь добавляем наш второй цикл :
for i:=0 to min-1 do
for sec := 0 to 60 do
begin
writeln(i,' : ',sec);
Delay(1000);
clrscr; {каждую секунду мы будем очищать экран}
end;
Осталось сделать так чтобы по нажатию на любую клавишу программы прекращала работу.
if KeyPresses then Halt;

Halt — выход из программы
Весь код программы :
uses crt ;
var
i , sec , min : integer;
begin
write('Введите количество минут : '); readln(min);
for i:=0 to min-1 do
begin
for sec := 0 to 60 do
begin
writeln(i,' : ',sec);
Delay(1000);
clrscr;
if KeyPressed then Halt ;
end;
end;
end.
Вот результат :

Незнаю-может во фри паскале это идёт, но у меня минуты идут быстрее чем обычные секунды, а миллисекунды быстрее секунд…