2001-gre-vs-practice.pdf/Q07 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Вопрос: Q07-e5724f)
Строка 1: Строка 1:
 
 
{{reserve-task|[[Участник:Tiniakov.ad|Tiniakov.ad]] 13:27, 20 декабря 2024 (UTC)}}
 
{{reserve-task|[[Участник:Tiniakov.ad|Tiniakov.ad]] 13:27, 20 декабря 2024 (UTC)}}
  
Строка 5: Строка 4:
  
 
<blockquote>
 
<blockquote>
Тут вставьте перевод вопроса.
+
Рассмотрим следующий фрагмент кода на языке Pascal
Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 возможности разметки],
+
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz (реально оценю, полезный навык).
+
Если код — теги «code-pascal», «code-c» или «code-python» (не «source lang»).
+
  
В IT вообще не принято писать романы, всегда старайтесь писать структурированные (списками-абзацами тексты). Списки в MediaWiki — это просто «*». Не забывайте о них.
+
<source lang="pascal">
Преформатированный моноширинный текст — просто отступ.
+
var i, j: integer;
 +
procedure P(k, m: integer)
 +
begin
 +
  k := k - m;
 +
  m := k + m;
 +
  k := m - k;
 +
end;
 +
i := 2;
 +
j := 3;
 +
P(i, j)
 +
</source>
  
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).
+
Какими будут значения переменных i, j после выполнения этого фрагмента, если переменные i, j передаются в P по ссылке?
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
 
+
Потом конечно сотрите эти инструкции, которые тут курсивом или в блоке цитирования.
+
</blockquote>
+
  
 
=== Ответы ===
 
=== Ответы ===
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
 
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
 
 
* Правильный ответ: тут реально правильный ответ
 
* неправильный ответ
 
* еще какой-то неправильный ответ
 
* еще какой-то неправильный ответ
 
* еще какой-то неправильный ответ
 
 
<i>Если ответы длинные, многострочные, или там графы, используйте
 
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
 
Но такое очень редко встречается, например [[2011-gre-cs-practice-book.pdf/Q05]]. </i>
 
  
 +
* i = 0, j = 2;
 +
* i = 1, j = 5;
 +
* i = 2, j = 3;
 +
* Правильный ответ: i = 3, j = 2;
 +
* среди ответов нет верного.
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
+
{{cstest-source|2001-gre-vs-practice.pdf|15|7}}
{{cstest-source|2001-gre-vs-practice.pdf|тут-номер-страницы-с-вопросом-7|7}}
+
  
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
Рассмотрим вызов процедуры P. На вход ей подаются числа k = 2 и m = 3. Рассмотрим тело процедуры:
 +
1) k := k - m; -- k := 2 - 3 -> в k теперь лежит -1;
 +
2) m := k + m; -- m := -1 + 3 -> в m теперь лежит 2;
 +
3) k := m - k; -- k := 2 - (-1) -> в k теперь лежит 3;
 +
4) на конец выполнения процедуры параметры k и m содержат значения 3 и 2 соответственно.
 +
Поскольку i и j передавались в процедуру по ссылке, то в процессе исполнения процедуры изменяются не локальные копии i и j, а они сами. Следовательно, в конце данного фрагмента кода переменные i и j содержат значения 3 и 2 соответственно. Верный ответ - D.
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
{{question-ok|}}
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],
+
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
  
</i>
+
{{checkme|[[Участник:Tiniakov.ad|Tiniakov.ad]] 13:43, 20 декабря 2024 (UTC)}}
 
+
{{question-ok|}}
+
  
 
[[Категория:Надо не забыть выбрать тему]]
 
[[Категория:Надо не забыть выбрать тему]]

Версия 13:43, 20 декабря 2024

Задача зарезервирована: Tiniakov.ad 13:27, 20 декабря 2024 (UTC)

Вопрос: Q07-e5724f

Рассмотрим следующий фрагмент кода на языке Pascal

var i, j: integer;
procedure P(k, m: integer)
begin
  k := k - m;
  m := k + m;
  k := m - k;
end;
i := 2;
j := 3;
P(i, j)

Какими будут значения переменных i, j после выполнения этого фрагмента, если переменные i, j передаются в P по ссылке?

Ответы

  • i = 0, j = 2;
  • i = 1, j = 5;
  • i = 2, j = 3;
  • Правильный ответ: i = 3, j = 2;
  • среди ответов нет верного.

Объяснение

Исходники — вопрос 7 на 15 странице книги «2001-gre-vs-practice.pdf»

Рассмотрим вызов процедуры P. На вход ей подаются числа k = 2 и m = 3. Рассмотрим тело процедуры: 1) k := k - m; -- k := 2 - 3 -> в k теперь лежит -1; 2) m := k + m; -- m := -1 + 3 -> в m теперь лежит 2; 3) k := m - k; -- k := 2 - (-1) -> в k теперь лежит 3; 4) на конец выполнения процедуры параметры k и m содержат значения 3 и 2 соответственно.

Поскольку i и j передавались в процедуру по ссылке, то в процессе исполнения процедуры изменяются не локальные копии i и j, а они сами. Следовательно, в конце данного фрагмента кода переменные i и j содержат значения 3 и 2 соответственно. Верный ответ - D.Check-me-animated.gif Решено: Tiniakov.ad 13:43, 20 декабря 2024 (UTC)