Задачи по Pascal. Простые электронные часы.

pascalУсловие задачи : Написать программу выводящую на экран «электронные часы», которые работают в течение нескольких минут или пока не нажата любая кнопка пользователя.

Сложность : легкая .

Как мы будем решать эту задачу ?
Сразу стоит сказать что нам понадобиться два цикла 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;
Информация
Delay(1000) — будет у нас делать задержку в 1 секунду

Теперь добавляем наш второй цикл :

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;
Информация
KeyPresses — нажатие клавиши
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.

Вот результат :

ris110

Один комментарий

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

Написать ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *