DP Delphi / Pascal  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Модули и области видимости

Этот тест проверяет не память на названия, а способность разбирать код, видеть границы механизма и выбирать исправление, которое не ломает соседние сценарии. Внутри 20 вопросов, из них 12 с фрагментами Object Pascal. Отдельные результаты показываются по разделам: «Устройство модуля», «Секции interface и implementation», «Зависимости uses» и «Инициализация модулей».

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На весь тест отведено 55 минут. Код лучше сначала разобрать вручную: правильный вариант должен объяснять механизм, а не только совпадать с одним запуском.
Вопрос 1 из 20
Проследите изменение состояния в PriceApi: в `PriceApi` сначала встречается `function WithTax(const Value: TPrice): TPrice;`, а затем `Result := Value * (1 + TaxRate);`. Какой вывод можно сделать только после чтения обеих строк?
PascalDelphi / Pascal · Устройство модуля
// Проследите фактическое поведение PriceApi.
unit PriceApi;
interface

type
  TPrice = Currency;
function WithTax(const Value: TPrice): TPrice;

implementation

const TaxRate = 0.20;
function WithTax(const Value: TPrice): TPrice;
begin
  Result := Value * (1 + TaxRate);
end;
end.
Вопрос 2 из 20
Какой сценарий по теме «Секции interface и implementation» отличит исправную реализацию от версии со скрытым дефектом?
Вопрос 3 из 20
Правка по теме «Зависимости uses» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить? Рассмотрите вариант, где меняется состояние, но внешний интерфейс остаётся прежним.
Вопрос 4 из 20
Какой сценарий по теме «Инициализация модулей» отличит исправную реализацию от версии со скрытым дефектом?
Вопрос 5 из 20
Какое свойство темы «Устройство модуля» становится решающим на граничном входе или при другом порядке действий?
Вопрос 6 из 20
Модуль, использующий тему «Секции interface и implementation», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 7 из 20
Модуль, использующий тему «Зависимости uses», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 8 из 20
В теме «Инициализация модулей» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 9 из 20
Две реализации темы «Устройство модуля» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 10 из 20
В практическом сценарии по теме «Секции interface и implementation» меняются входные данные и порядок действий. Какой вывод остаётся корректным?
Вопрос 11 из 20
В теме «Зависимости uses» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 12 из 20
Какое наблюдение должен зафиксировать тест именно для последовательности `initialization` → `finalization` в `RuntimeLog`?
PascalDelphi / Pascal · Инициализация модулей
// Определите реальную гарантию в RuntimeLog.
unit RuntimeLog;
interface
procedure WriteStartup;
implementation
uses System.SysUtils;
var
  Buffer: TStringBuilder;
procedure WriteStartup;
begin
  Buffer.AppendLine('started');
end;
initialization
  Buffer := TStringBuilder.Create;
finalization
  Buffer.Free;
end.
Вопрос 13 из 20
Реализацию темы «Устройство модуля» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться?
Вопрос 14 из 20
Для темы «Секции interface и implementation» готовят регрессионный набор из двух разных сценариев. Какой набор действительно закрывает обе границы?
Вопрос 15 из 20
Почему зависимость `Orders` от `Customers` становится частью публичного контракта модуля, а не только деталью реализации?
PascalDelphi / Pascal · Зависимости uses
// Проследите фактическое поведение Orders.
unit Orders;
interface
uses Customers;
type
  TOrder = record
    Customer: TCustomer;
  end;
implementation
uses System.SysUtils;
end.
Вопрос 16 из 20
Две реализации темы «Инициализация модулей» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 17 из 20
Для темы «Устройство модуля» обычный путь и граничный путь дают разные риски. Какой вывод учитывает оба, не подменяя один другим?
Вопрос 18 из 20
В `CounterState` сначала встречается `Result := LastId;`, а затем `LastId := 100;`. Какое наблюдаемое следствие относится именно к сценарию CounterState?
PascalDelphi / Pascal · Секции interface и implementation
// Отделите правило языка от удачного запуска CounterState.
unit CounterState;
interface
function NextId: Integer;
implementation
var
  LastId: Integer;
function NextId: Integer;
begin
  Inc(LastId);
  Result := LastId;
end;
initialization
  LastId := 100;
end.
Вопрос 19 из 20
Правка по теме «Зависимости uses» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 20 из 20
Реализацию темы «Инициализация модулей» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться?

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

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

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

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