Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lukin.doc
Скачиваний:
9
Добавлен:
16.12.2018
Размер:
3.27 Mб
Скачать
      1. Работа с датами и временем (модуль dos)

Каждый компьютер имеет часы и календарь. Каждый пользователь может спросить у компьютера, сколько времени и какое сегодня число, а при желании и подправить то и другое. Для работы с временем и датой на Паскале необходим новый для вас модуль DOS. Мы рассмотрим четыре процедуры этого модуля, которые работают с временем и датой:

GetTime

Узнать время

SetTime

Установить время

GetDate

Узнать дату

SetDate

Установить дату

Чтобы воспользоваться этими процедурами, вы должны придумать имена переменным, обозначающим дату и время:

God год (с 1980 по 2099)

Mes месяц (1-12)

Den день месяца

Den_Ned номер дня недели (от 0 (воскресенье) до 6 (суббота))

Chas час

Min минута

Sec секунда

Sotki сотые доли секунды

Все эти переменные должны быть целочисленными, однако не типа Integer, к которому вы привыкли, а типа Word. Таково требование упомянутых процедур. Переменная типа Word должна быть целым числом из диапазона 0 - 65535.

Вот программа, которая узнает у компьютера, какое сегодня число и сколько времени:

USES DOS;

VAR God, Mes, Den, Den_Ned, Chas, Min, Sec, Sotki : Word;

begin

GetDate(God, Mes, Den, Den_Ned);

WriteLn(‘Сегодня ’ , Den, ‘ . ‘ ,Mes, ‘ ‘ ,God, ‘ года‘);

GetTime(Chas,Min,Sec,Sotki);

WriteLn(‘Сейчас ’ , Chas,' час. ' ,Min, ' мин. и ' ,Sec, ' сек.')

end.

Задание 133 «Быстрота реакции»: Определите быстроту своей реакции: На экране через случайный промежуток времени (секунды через 2 - 4) возникает квадрат. Как только он возник, быстрее нажимайте на какую-нибудь клавишу. Пусть компьютер вычислит, сколько сотых долей секунды прошло между этими двумя событиями.

Возможно, вас не удовлетворит работа GetTime в этой программе. Попробуйте сделать определитель быстроты реакции, не связываясь с процедурами модуля DOS. Например, засеките по секундомеру, сколько времени ваш компьютер выполняет пустой цикл for i:=1 to 10000000 do; и создайте на этой основе свою единицу времени.

А вот как установить дату и время:

SetDate(1997, 5, 22) -установить дату 22 мая 1997 года

SetTime(23, 58, 32, 93) -установить время 23 часа 58 мин 32 сек и 93 сотых

Имейте в виду, что эти процедуры устанавливают дату и время не только для Паскаля, а для всего компьютера. Будьте осторожны, а не то файлы, сохраненные вами, будут иметь неверный атрибут времени.

Задание 134 «Определитель дня недели»: Вы вводите любую дату. Компьютер должен определить день недели и напечатать его в виде “понедельник”, “вторник” и т.д. При этом вы не должны испортить календарь, то есть после того, как ваша программа завершит работу, календарь компьютера должен показывать правильную дату, а не ту, что вы ввели.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]