2001-gre-vs-practice.pdf/Q26 — различия между версиями
Материал из DISCOPAL
(→Вопрос: Q26-e5724f) |
StasFomin (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | |||
== Вопрос: Q26-e5724f == | == Вопрос: Q26-e5724f == | ||
− | + | Обозначим за S следующее выражение: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <code-pascal> | |
− | + | for i:=1 to N do V[i] := V[i] + 1 | |
+ | </code-pascal> | ||
− | + | Какие из следующих выражений делают с V то же самое, что и S? | |
− | + | ||
− | + | ;I: | |
− | </ | + | <code-pascal> |
+ | i := 0; | ||
+ | while i <= N do | ||
+ | begin i := i + 1; V[i] = V[i] + 1 end | ||
+ | </code-pascal> | ||
− | + | ;II: | |
− | < | + | <code-pascal> |
− | + | i := 1; | |
+ | while i < N do | ||
+ | begin V[i] = V[i] + 1; i := i + 1 end | ||
+ | </code-pascal> | ||
− | + | ;III: | |
− | + | <code-pascal> | |
− | + | i := 0; | |
− | + | while i < N do | |
− | + | begin V[i + 1] = V[i + 1] + 1; i := i + 1 end | |
+ | </code-pascal> | ||
− | + | === Ответы === | |
− | + | ||
− | + | ||
+ | * Только I | ||
+ | * Только II | ||
+ | * Правильный ответ: Только III | ||
+ | * Только II и III | ||
+ | * Все | ||
=== Объяснение === | === Объяснение === | ||
− | + | {{cstest-source|2001-gre-vs-practice.pdf|24|26}} | |
− | {{cstest-source|2001-gre-vs-practice.pdf| | + | |
+ | Исходное утверждение увеличивает все элементы с индексами 1..N на 1. | ||
+ | |||
+ | Первый вариант обратится к элементу N + 1. | ||
− | + | Второе не обратится к элементу с индексом N. | |
− | + | Третье делает ровно то что нужно. | |
− | + | ||
− | + | ||
− | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 13:56, 13 января 2025 (UTC)}} | |
− | {{ | + | |
− | + | ||
− | [[Категория: | + | [[Категория:Понимание кода]] |
Текущая версия на 13:57, 13 января 2025
Вопрос: Q26-e5724f
Обозначим за S следующее выражение:
for i:=1 to N do V[i] := V[i] + 1
Какие из следующих выражений делают с V то же самое, что и S?
- I
i := 0; while i <= N do begin i := i + 1; V[i] = V[i] + 1 end
- II
i := 1; while i < N do begin V[i] = V[i] + 1; i := i + 1 end
- III
i := 0; while i < N do begin V[i + 1] = V[i + 1] + 1; i := i + 1 end
Ответы
- Только I
- Только II
- Правильный ответ: Только III
- Только II и III
- Все
Объяснение
Исходники — вопрос 26 на 24 странице книги «2001-gre-vs-practice.pdf»
Исходное утверждение увеличивает все элементы с индексами 1..N на 1.
Первый вариант обратится к элементу N + 1.
Второе не обратится к элементу с индексом N.
Третье делает ровно то что нужно.