2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как можно считать время в Pascal?
Сообщение09.11.2013, 09:19 
В задачи надо определенное количество раз считать время(вводится вручную) по типу чч:мм

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение09.11.2013, 10:31 
Цитата:
GetTime (procedure) (WinDos unit)
=======================================
Returns the current time set in the operating
system.

Declaration:
procedure GetTime(var Hour, Minute, Second, Sec100: Word);

Target:
Windows, Real, Protected

Remarks:
Ranges of the values returned are Hour 0..23,
Minute 0..59, Second 0..59, and Sec100
(hundredths of seconds) 0..99.

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение09.11.2013, 15:15 
ewert, мне показалось, имелось в виду преобразование строки типа "07:34" в запись с часами и минутами.

aleks9, вам часы нужны, или можно всё преобразовать в минуты? Хотя это не так важно. Важно, всегда ли час в строке состоит из двух цифр, и есть ли в паскале функция поиска символа в строке, и обязательна ли работа на всех паскалях, или только на каком-то конкретном.

-- Сб ноя 09, 2013 18:19:29 --

Ну или не в запись а вот такими var-параметрами, как выше. (В Delphi и, надеюсь, в FreePascal есть для этой цели out-параметры, которые можно только установить, но нельзя считать, и потому можно вызывать функцию с подставленными в такие параметры неинициализированными переменными.)

-- Сб ноя 09, 2013 18:20:18 --

И да, aleks9, что вы умеете делать со строками? Это поможет быстрее разобраться, какую часть функции вы напишете сами. :wink:

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение09.11.2013, 19:48 

(Оффтоп)

arseniiv в сообщении #786608 писал(а):
out-параметры, которые можно только установить, но нельзя считать

Стоп, что? Вы мне хотите сказать, что
  1. procedure f(out a: integer); 
  2. begin 
  3.   a := 5; 
  4.   writeln("a + 1 = ", a + 1); 
  5. end; 

не скомпилируется?

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение10.11.2013, 00:32 

(2 Joker_vD.)

Угу. В Turbo Pascal 7.1 (сейчас специально загрузил :-)) среди ключевых слов out нет, и вот такой код
Используется синтаксис Pascal
  1. var
  2.   a: Integer;
  3.  
  4. procedure FillInt(out x: Integer)
  5. begin
  6.   x = 42;
  7. end;
  8.  
  9. begin
  10.   FillInt(a);
  11.   Writeln(a);
  12.   Readln;
  13. end.
даёт ошибку компиляции Error 86: ":" expected. с помещением курсора под x в строке 4.

UPD. А, дошло, о чём вы! Да, не то написал. После присваивания значение читать можно, но до соответствующая переменная будет неинициализированной, и как раз в этом случае чтение её значения должно работать так же как чтение значения неинициализированной переменной в другом месте (не помню, это вызывает ошибку компиляции или просто выдаёт мусор).

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение10.11.2013, 09:12 
arseniiv в сообщении #786881 писал(а):
это вызывает ошибку компиляции или просто выдаёт мусор

просто мусор

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение10.11.2013, 16:56 
Аватара пользователя
Почему бы не парсить строку, раз уж известен формат чч:мм. Попахивает чем-то вроде
Используется синтаксис Pascal
procedure StrToTime(const str_time: string; var Hour, Minute: Integer);

 
 
 
 Re: Как можно считать время в Pascal?
Сообщение10.11.2013, 18:05 
Alhimik в сообщении #787105 писал(а):
Почему бы не парсить строку, раз уж известен формат чч:мм.
Почему бы просто не вбить в гугл название своего компилятора паскаля плюс "преобразовать строку в дату" и не получить список названий готовых функций, которых есть с десяток?

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group