Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815

Простой секундомер без графического режима

31.08.2013, 20:26. Показов 2493. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
эта прога выводит на экран электронные часы
не используя графический режим
здесь выводятся только минуты и секунды
в формате 00:00
ее можно дополнить при желании чтобы
показывались также часы и день и месяц и год
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var mindec,min,secdec,sec:integer;
procedure printtime(a,b,c,d:integer);forward;{опережающий вызов printtime}
procedure stopwatch(mindec,min,secdec,sec:integer);{эта процедура вычисляет введенное время }
var a,b,c,d:integer;
 begin
   for a:=0 to mindec do 
     for b:=0 to min do
       for c:=0 to secdec do
         for d:=0 to sec do
      printtime(a,b,c,d);
  end;{end stopwatch}
procedure printtime(a,b,c,d:integer);{эта процедура выводит время на экран}
  begin
    gotoxy(10,5);{выводит часы в 5 строке 10 столбец(или как еготам)на экране можно поменять координнаты}
    delay(1000);{задержка вывода очередного значения на 1 секунду}
    write(a,b,':',c,d);{выводит в формате 00:00}
  end;
begin clrscr;
   writeln('какое время введете столько и будут работать часы');
   writeln('например если ввели 1 десяток секунд(secdec)то чтобы видеть');
   writeln('изменение секунд(sec)вводите в sec число 9 иначе');
   writeln('изменяться на экране будут только данные десятков секунд');
   witeln('если вводите только секунды(sec)все остальное вводите по 0');
  writeln('введите десятки минут от 0 до 5,если их нет вводите 0 ->');
    read(mindec);
  writeln('введите количество минут от 0 до 9,если их нет вводите 0 ->');
    read(min);
  writeln('введите десятки секунд от 0 до 5,если их нет вводите 0 ->');
    read(secdec);
  writeln('введите кол-во секунд до 9,если введете 0 то останетесь без наглядного пособия ->');
    read(sec);
 stopwatch(mindec,min,secdec,sec);
end;
чтобы просмотреть пошагово нажимайте f7
чтобы посмотреть как работает ,то после ввода данных
нажмите f8
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.08.2013, 20:26
Ответы с готовыми решениями:

Как без графического режима заставить слово летать само, и не оставлять хвост?
Как без графического режима заставить слово летать само, и не оставлять хвост? напомните пожалуйста!

Некорректаня работа графического режима.
Здравствуйте, у меня возникла проблема с Паскалем. При входе в графический режим, в частности для построения графиков он работает...

Написать интересную программу с применением функций и процедур графического режима
Надо написать интересную (на ваш взгляд) программу с применением функций и процедур графического режима.

13
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2013, 08:14
Довели бы программу до ума, исправили бы ошибки, потом бы публиковали.
0
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
01.09.2013, 08:55  [ТС]
просьба указать на ошибки
у меня прога работает
разве что при вводе заменить
writeln на write а readln на read
если это действительно "дикие" ошибки
непременно укажите ,удалим прогу и я ее доработаю
с Уважением юрий

Добавлено через 4 минуты
еще после ввода данных
перед выполнением процедуры stopwatch
для очистки экрана можно поставить
clrscr;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2013, 08:56
Одну опечатку я уже исправил, вроде в строке 27, не помню, стоял апостроф вместо ;
И нужно очистить экран перед выводом часов, а то часы прямо на тексте выводятся. И вообще мало понятна работа программы..
1
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
01.09.2013, 08:59  [ТС]
думаете стоит удалить ее?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2013, 09:05
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Думаю да, тем более программ на часы в текстовом режиме на форуме уже несколько есть, можно найти в поиске.
Вот кстати пример оформления, ввод здесь другой.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
uses crt;
var h,m,s,n:integer;
begin
clrscr;
repeat
writeln('Задайте текущее время, часы, минуты, секунды:');
readln(h,m,s);
until(h in [0..23])and(m in [0..59])and(s in [0..59]);
n:=s;
clrscr;
window(35,12,45,14);
textbackground(2);
textcolor(12);
clrscr;
repeat
 gotoXY(2,2);
 if h<10 then write('0',h,':') else write(h,':');
 if m<10 then write('0',m,':') else write(m,':');
 if s<10 then write('0',s) else write(s);
 gotoXY(80,25);
 delay(1000);
 if s=60 then
  begin
   s:=0;
   m:=m+1;
  end;
 if m=60 then
  begin
   m:=0;
   h:=h+1;
  end;
 if h=24 then
  begin
   s:=0;
   m:=0;
   h:=0;
  end;
 if (s-n+1) mod 10=0 then sound(600)
 else nosound;
 s:=s+1;
until keypressed;
window(0,0,80,25);
textbackground(0);
textcolor(15);
clrscr
end.
Добавлено через 58 секунд
Хотя можно и не удалять, доведете до ума и напишете. Я сам лишнее удалю.
1
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
01.09.2013, 09:16  [ТС]
если исправить следующее
1)при вводе заменить
writeln на write а readln на read
2)еще после ввода данных
перед выполнением процедуры stopwatch
для очистки экрана можно поставить
clrscr;
сгодится она на форуме?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2013, 09:21
Смотри сам, понравится программа, пиши. Главное чтобы она была понятна, для чего она нужна, чтобы у нее был приятный интерфейс. А менять readln на read нельзя, это не Паскаль АВС, менять writeln на write тоже нужно с умом, смотря на то, нужен переход на новую строку или нет.
0
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
01.09.2013, 09:33  [ТС]
эта прога выводит на экран электронные часы
не используя графический режим
здесь выводятся только минуты и секунды
в формате 00:00
ее можно дополнить при желании чтобы
показывались также часы и день и месяц и год
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
program clock;uses crt; 
var mindec,min,secdec,sec:integer;
procedure printtime(a,b,c,d:integer);forward;{опережающий вызов printtime}
procedure stopwatch(mindec,min,secdec,sec:integer);{эта процедура вычисляет введенное время }
var a,b,c,d:integer;
 begin
   for a:=0 to mindec do 
     for b:=0 to min do
       for c:=0 to secdec do
         for d:=0 to sec do
      printtime(a,b,c,d);
  end;{end stopwatch}
procedure printtime(a,b,c,d:integer);{эта процедура выводит время на экран}
  begin
    gotoxy(10,5);{выводит часы в 5 строке 10 столбец на экране но можно поменять координнаты}
    delay(1000);{задержка вывода очередного значения на 1 секунду}
    write(a,b,':',c,d);{выводит в формате 00:00}
  end;
begin clrscr;
   writeln('какое время введете столько и будут работать часы');
   writeln('например если ввели 1 десяток секунд(secdec)то чтобы видеть');
   writeln('изменение секунд(sec)вводите в sec число 9 иначе');
   writeln('изменяться на экране будут только данные десятков секунд');
   witeln('если вводите только секунды(sec)все остальное вводите по 0');
  write('введите десятки минут от 0 до 5,если их нет вводите 0 ->');
    readln(mindec);
  write('введите количество минут от 0 до 9,если их нет вводите 0 ->');
    readln(min);
  write('введите десятки секунд от 0 до 5,если их нет вводите 0 ->');
    readln(secdec);
  write('введите кол-во секунд до 9,если введете 0 то останетесь без наглядного пособия ->');
    readln(sec);
  clrscr;{очистка экрана}
 stopwatch(mindec,min,secdec,sec);
end;
Добавлено через 37 секунд
можно ли эту редакцию оставить
или тоже не годится?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2013, 09:42
Как Вы запускаете это? Почему в строке 25
Pascal
1
 witeln
а не writeln?

Добавлено через 52 секунды
Почему в конце end;, а не end.?

Добавлено через 2 минуты
Зачем до вывода 00:00 нужно ждать секунду?
1
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
01.09.2013, 09:49  [ТС]
давайте лучше удалим ее тем более
что выход из проги только ctrl+break
а тот пример который написали очень симпатичный
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2013, 09:57
Вообще-то темы, ничего не нарушающие, у нас удалять нельзя, пусть висит, со временем скроется...

Добавлено через 1 минуту
Вдруг через какое-то время напишете вещь, вот мы ее здесь и опубликуем.
1
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
09.09.2013, 20:05  [ТС]
неправильно однако написал заголовок
это не часы а секундомер
если возможно исправить заголовок этой темы

Добавлено через 1 минуту
а прогу обязательно доработаю
0
 Аватар для Don_Omare
78 / 80 / 70
Регистрация: 18.12.2013
Сообщений: 210
06.01.2014, 21:10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
uses crt;
Var
i,j,k,y,z:integer;
Begin
 While true do
  Begin
   writeln;
   writeln;
   writeln;
   write('      ',i,':',y,j,':',z,k);
   delay(995);
   clrscr;
   k:=k+1;
   If k=10 then
    Begin
     z:=z+1;
     k:=0;
      If z=6 then
       Begin
        j:=j+1; 
        z:=0;
         If j=10 then
          Begin
           y:=y+1; 
           j:=0;
            If y=6 then
             Begin
              i:=i+1;
               y:=0; 
                  
  End;       
  End;       
  End;       
  End;    
  End;
End.
Добавлено через 41 секунду
Допишите старт и остановку, а так полностью работает
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.01.2014, 21:10
Помогаю со студенческими работами здесь

Составить программу инициализации графического режима, предварительно выполнив тестирование графического адаптера
Здравствуйте! Вот, попалась не простая(по моему субъективному мнению) задача, которую я совершенно не понимаю как решить. Звучит она...

Инициализация графического режима!
Кто может - помогите!!!! На экране сообщение: ...Device driver file not found (EGAVGA.BGI)... Но в папке BGI он есть. Папка с...

выход из графического режима
a 100 ;инициализация mov ah,00 ;графический режим 640*350 mov al,10 int 10 ...

Запуск графического режима
Поставил обычную декстопную elementary os, раньше ставил в виртуалку все норм было. Запускается почему то только в консольном режиме, не...

Ошибка графического режима
Помогите плиз! как исправить ошибку? запускаю паскаль в графическом режиме и пишет http://s002.***********/i197/1004/73/caf37084b635.jpg ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru