JL Julia  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Условия, циклы и включения

Проверяет базовое понимание темы «Условия, циклы и включения»: чтение фрагментов, выбор корректной конструкции и объяснение результата без опоры на угадывание. Вопросы требуют читать код, находить границу применимости, выбирать проверяемую правку и отличать свойства Julia от поведения конкретного пакета. В тесте 20 вопросов: 12 заданий с кодом и 8 заданий с математической записью. Все формулировки рассчитаны на Julia 1.12.6; для сторонних библиотек используется явно названный API.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 55 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 20
Какой механизм Julia определяет поведение строки `if x == 0`?
c\in\{\mathrm{true},\mathrm{false}\}
JuliaJulia · Ветвления
function label(x)
    if x == 0
        return :zero
    elseif x > 0
        return :positive
    else
        return :negative
    end
end
@show label(-3)
Вопрос 2 из 20
Какой тест точнее всего зафиксирует границу поведения `missing`?
JuliaJulia · Ветвления
function label(x)
    if x == 0
        return :zero
    elseif x > 0
        return :positive
    else
        return :negative
    end
end
@show label(-3)
Вопрос 3 из 20
Что должно остаться истинным после рефакторинга участка с `if x == 0`?
JuliaJulia · Ветвления
function label(x)
    if x == 0
        return :zero
    elseif x > 0
        return :positive
    else
        return :negative
    end
end
@show label(-3)
Вопрос 4 из 20
Как проверить, что новая реализация `if x == 0` не изменила обещанное пользователю поведение?
c\in\{\mathrm{true},\mathrm{false}\}
Вопрос 5 из 20
Какой тезис о `if x == 0` можно честно закрепить в справке?
Вопрос 6 из 20
Какое утверждение точнее всего объясняет участок с `for i in eachindex(A)`?
S=\sum_{i\in\operatorname{eachindex}(A)}A_i
JuliaJulia · Циклы
function edge_sum(A)
    s = zero(eltype(A))
    for i in eachindex(A)
        isodd(i) && (s += A[i])
    end
    return s
end
@show edge_sum([2, 4, 6, 8, 10])
Вопрос 7 из 20
Какую проверку стоит добавить для участка с `for i in eachindex(A)`?
JuliaJulia · Циклы
function edge_sum(A)
    s = zero(eltype(A))
    for i in eachindex(A)
        isodd(i) && (s += A[i])
    end
    return s
end
@show edge_sum([2, 4, 6, 8, 10])
Вопрос 8 из 20
Какой контракт следует закрепить при переработке строки `for i in eachindex(A)`?
JuliaJulia · Циклы
function edge_sum(A)
    s = zero(eltype(A))
    for i in eachindex(A)
        isodd(i) && (s += A[i])
    end
    return s
end
@show edge_sum([2, 4, 6, 8, 10])
Вопрос 9 из 20
Две реализации участка с `for i in eachindex(A)` совпадают на обычных данных. Что необходимо проверить перед выпуском?
S=\sum_{i\in\operatorname{eachindex}(A)}A_i
Вопрос 10 из 20
Что следует сообщить пользователю библиотеки о поведении `for i in eachindex(A)`?
Вопрос 11 из 20
Какое объяснение для `A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]` выдержит проверку на другом допустимом входе?
B_{ij}=g(i,j)\;\text{при}\;p(i,j)
JuliaJulia · Включения массивов (comprehension)
A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]
@show A size(A)
Вопрос 12 из 20
Какой тест точнее всего зафиксирует границу поведения `A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]`?
JuliaJulia · Включения массивов (comprehension)
A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]
@show A size(A)
Вопрос 13 из 20
Какое требование к `A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]` важнее удобной детали текущей реализации?
JuliaJulia · Включения массивов (comprehension)
A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]
@show A size(A)
Вопрос 14 из 20
Как проверить, что новая реализация `A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]` не изменила обещанное пользователю поведение?
B_{ij}=g(i,j)\;\text{при}\;p(i,j)
Вопрос 15 из 20
Какой тезис о `A = [i + 10j for i in 1:3 for j in 0:2 if i + j < 5]` можно честно закрепить в справке?
Вопрос 16 из 20
Какое объяснение для `g = (x^2 for x in 1:10 if isodd(x))` выдержит проверку на другом допустимом входе?
\sum_{x\in G}f(x)
JuliaJulia · Генераторы
g = (x^2 for x in 1:10 if isodd(x))
first_pass = sum(Iterators.take(g, 3))
second_pass = sum(Iterators.take(g, 3))
@show first_pass second_pass
Вопрос 17 из 20
Какую проверку стоит добавить для участка с `g = (x^2 for x in 1:10 if isodd(x))`?
JuliaJulia · Генераторы
g = (x^2 for x in 1:10 if isodd(x))
first_pass = sum(Iterators.take(g, 3))
second_pass = sum(Iterators.take(g, 3))
@show first_pass second_pass
Вопрос 18 из 20
Какое решение устраняет риск вокруг `g = (x^2 for x in 1:10 if isodd(x))`, не меняя поведение на допустимых данных?
JuliaJulia · Генераторы
g = (x^2 for x in 1:10 if isodd(x))
first_pass = sum(Iterators.take(g, 3))
second_pass = sum(Iterators.take(g, 3))
@show first_pass second_pass
Вопрос 19 из 20
При переносе кода с `g = (x^2 for x in 1:10 if isodd(x))` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
\sum_{x\in G}f(x)
Вопрос 20 из 20
Какое ограничение стоит прямо указать в документации к участку с `g = (x^2 for x in 1:10 if isodd(x))`?

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

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

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

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