DP Delphi / Pascal  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Потоки и файловые форматы

Задания проверяют практическое понимание темы «Потоки и файловые форматы»: что гарантирует язык, где начинается ответственность проекта и какой тест отличит исправление от маскировки. Всего 25 вопросов, среди них 15 кодовых. Оценка разбита по разделам: «Потоки TStream», «Файловые потоки», «Буферизация», «Сериализация» и «Совместимость версий».

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На весь тест отведено 70 минут. Код лучше сначала разобрать вручную: правильный вариант должен объяснять механизм, а не только совпадать с одним запуском.
Вопрос 1 из 25
Какое значение напечатает `PartialRead` для пустого `TMemoryStream`, и почему замена `Read` на `ReadBuffer` изменила бы результат?
PascalDelphi / Pascal · Потоки TStream
// Определите реальную гарантию в PartialRead.
program PartialRead;
{$APPTYPE CONSOLE}
uses System.Classes;
var
  Stream: TStream;
  Buffer: array[0..1023] of Byte;
  ReadCount: Integer;
begin
  Stream := TMemoryStream.Create;
  try
    ReadCount := Stream.Read(Buffer, SizeOf(Buffer));
    Writeln(ReadCount);
  finally Stream.Free; end;
end.
Вопрос 2 из 25
Правка по теме «Файловые потоки» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 3 из 25
Какой сценарий по теме «Буферизация» отличит исправную реализацию от версии со скрытым дефектом?
Вопрос 4 из 25
Модуль, использующий тему «Сериализация», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 5 из 25
В теме «Совместимость версий» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 6 из 25
Модуль, использующий тему «Потоки TStream», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 7 из 25
Какое свойство темы «Файловые потоки» становится решающим на граничном входе или при другом порядке действий?
Вопрос 8 из 25
Модуль, использующий тему «Буферизация», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 9 из 25
В теме «Сериализация» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 10 из 25
Какой граничный результат следует ожидать в `VersionedFormat`, когда после `Version := 3;` выполняется `raise EReadError.CreateFmt('Unsupported version %d', [Version]);`?
PascalDelphi / Pascal · Совместимость версий
// Проследите фактическое поведение VersionedFormat.
program VersionedFormat;
{$APPTYPE CONSOLE}
uses System.Classes, System.SysUtils;
const
  Magic: array[0..3] of AnsiChar = ('D','P','F','1');
var
  Version: Word;
begin
  Version := 3;
  if Version > 2 then
    raise EReadError.CreateFmt('Unsupported version %d', [Version]);
end.
Вопрос 11 из 25
В практическом сценарии по теме «Потоки TStream» меняются входные данные и порядок действий. Какой вывод остаётся корректным?
Вопрос 12 из 25
Две реализации темы «Файловые потоки» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 13 из 25
Для темы «Буферизация» готовят регрессионный набор из двух разных сценариев. Какой набор действительно закрывает обе границы?
Вопрос 14 из 25
Какое наблюдение должен зафиксировать тест именно для последовательности `S := TFileStream.Create('header.bin', fmCreate);` → `try S.WriteBuffer(H, SizeOf(H)); finally S.Free; end;` в `BinaryRecord`?
PascalDelphi / Pascal · Сериализация
// Отделите правило языка от удачного запуска BinaryRecord.
program BinaryRecord;
{$APPTYPE CONSOLE}
uses System.Classes;
type
  THeader = record
    Magic: Cardinal;
    Name: string;
    Count: Integer;
  end;
var
  H: THeader;
  S: TFileStream;
begin
  H.Magic := $50415343;
  H.Name := 'demo';
  S := TFileStream.Create('header.bin', fmCreate);
  try S.WriteBuffer(H, SizeOf(H)); finally S.Free; end;
end.
Вопрос 15 из 25
Какое свойство темы «Совместимость версий» становится решающим на граничном входе или при другом порядке действий?
Вопрос 16 из 25
Обычный пример по теме «Потоки TStream» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник?
Вопрос 17 из 25
В теме «Файловые потоки» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 18 из 25
Зачем `BufferedWrite` выполняет много мелких записей через `TBufferedFileStream`?
PascalDelphi / Pascal · Буферизация
// Буфер объединяет множество мелких записей перед обращением к файлу.
program BufferedWrite;
{$APPTYPE CONSOLE}
uses System.Classes;
const
  Data: array[0..3] of AnsiChar = ('A', 'B', 'C', 'D');
var
  Buffered: TBufferedFileStream;
  I: Integer;
begin
  Buffered := TBufferedFileStream.Create('out.bin', fmCreate, 8192);
  try
    for I := 1 to 10000 do
      Buffered.WriteBuffer(Data, SizeOf(Data));
  finally
    Buffered.Free;
  end;
end.
Вопрос 19 из 25
В практическом сценарии по теме «Сериализация» меняются входные данные и порядок действий. Какой вывод остаётся корректным?
Вопрос 20 из 25
Две реализации темы «Совместимость версий» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 21 из 25
В теме «Потоки TStream» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 22 из 25
В `FileShareMode` сначала встречается `S := TFileStream.Create('data.bin', fmOpenRead or fmShareDenyWrite);`, а затем `finally S.Free; end;`. Какой вывод можно сделать только после чтения обеих строк?
PascalDelphi / Pascal · Файловые потоки
// Проследите фактическое поведение FileShareMode.
program FileShareMode;
{$APPTYPE CONSOLE}
uses System.Classes;
var
  S: TFileStream;
begin
  S := TFileStream.Create('data.bin', fmOpenRead or fmShareDenyWrite);
  try
    Writeln(S.Size);
  finally S.Free; end;
end.
Вопрос 23 из 25
Реализацию темы «Буферизация» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться?
Вопрос 24 из 25
Обычный пример по теме «Сериализация» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник?
Вопрос 25 из 25
Реализацию темы «Совместимость версий» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу