V
vital
Нижеприведенные задания яндекс дает только для того что бы решить - стоит смотреть ваше резюме или нет. Не то что бы я туда собирался, просто задания интересные.. ТОЛЬКО Я НИХРЕНА НЕ ВИЖУ ЧТО НЕ ТАК?
Тут я не знаю. И на первый взгляд и при проверке все прекрасно компилируется и работает.
Ради интереса дописал в конец ф-и 2 строчки:
showmessage(timerostr(result));
getmonotoniustime;// И получил кучу окошек в к-х постепенно шло время. Все. Имхо, и ничто это не изменит.
Тут сначала было подумал что если передать массив с отрицательными индексами то будет ошибка(кардинал начинается от 0). Передал сделал что-то в духе
var
ar:array[-5..0] of string;
////
foo(ar);
Но все прекрасно заработало. И вот тут я удивляюсь - почему?? Вставил ещё строчку showmessage(inttostr(Low(ar)); И увидел не -5 а 0... За этим я ещё слажу в хелп. но в чем тогда здесь загвостка?
Вот, хреновый из меня программЁр. Расскажите кто-нить что тут и как.
Код:
Всегда ли будет корректно работать приведенный код?
type
PSomeRecord = ^TSomeRecord;
TSomeRecord = record
F1: Byte;
F2: DWORD;
end;
function GetSomeRecord: PSomeRecord;
var
A: Byte;
B: DWORD;
begin
A := 1;
B := 2;
GetMem(Result, SizeOf(A) + SizeOf(B));
Result^.F1 := A;
Result^.F2 := B;
end;
Тут я не знаю. И на первый взгляд и при проверке все прекрасно компилируется и работает.
Код:
Всегда ли функция GetMonotoniousTime будет выдавать монотонный отсчет времени?
var
LastTime: TDateTime = 0;
function GetMonotoniousTime: TDateTime;
var
SysTime: TSystemTime;
begin
GetSystemTime(SysTime);
Result := SystemTimeToDateTime(SysTime);
if Result = LastTime then Result := Result + 1;
LastTime := Result;
end;
Ради интереса дописал в конец ф-и 2 строчки:
showmessage(timerostr(result));
getmonotoniustime;// И получил кучу окошек в к-х постепенно шло время. Все. Имхо, и ничто это не изменит.
Код:
Всегда ли правомерен и безопасен приведенный код:
procedure Foo(Args: array of string);
var
I: Cardinal;
begin
for I := Low(Args) to High(Args) do
Windows.MessageBox(0, PChar(Args[I]), nil, 0);
end;
Тут сначала было подумал что если передать массив с отрицательными индексами то будет ошибка(кардинал начинается от 0). Передал сделал что-то в духе
var
ar:array[-5..0] of string;
////
foo(ar);
Но все прекрасно заработало. И вот тут я удивляюсь - почему?? Вставил ещё строчку showmessage(inttostr(Low(ar)); И увидел не -5 а 0... За этим я ещё слажу в хелп. но в чем тогда здесь загвостка?
Вот, хреновый из меня программЁр. Расскажите кто-нить что тут и как.