2011-gre-cs-practice-book.pdf/Q40 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
Строка 1: Строка 1:
{{reserve-task|[[Участник:Urmat A|Urmat A]] 15:01, 19 декабря 2024 (UTC)}}== Вопрос: Q40-08c765 ==
+
{{reserve-task|[[Участник:Urmat A|Urmat A]] 15:01, 19 декабря 2024 (UTC)}}
 +
== Вопрос: Q40-08c765 ==
  
<i>Тут вставьте перевод вопроса.
+
Рассмотрим следующий псевдокод:
Используйте [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 возможности разметки],
+
<source>
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz .
+
int i
Если код — теги «code-pascal», «code-c» или «code-python».
+
main ()
 +
{
 +
    i = 3
 +
    S ()
 +
    R ()
 +
}
 +
void S ()
 +
{
 +
    print i // prints the value of i on the current line of output
 +
    print " " // prints a blank space on the current line of output
 +
}
 +
void R ()
 +
{
 +
    int i
 +
    i = 2
 +
    S ()
 +
}
 +
</source>
  
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).
+
Каков будет вывод программы, если псевдокод использует либо статическую (лексическую) область видимости, либо динамическую область видимости?(Область видимости [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8#:~:text=%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20(%D0%B0%D0%BD%D0%B3%D0%BB.,%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC%20%D1%81%D0%B5%D0%B1%D1%8F%20%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C%D1%81%D1%8F%20%D0%BA%20%D0%BD%D0%B5%D0%B9.]
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
 
+
Потом конечно сотрите инструкции, которые тут курсивом.</i>
+
  
 
=== Ответы ===
 
=== Ответы ===
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
Статическое область видимости - Динамическое область видимости
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
+
# 3 2 3 2
 
+
# 3 3 2 2
* Правильный ответ: тут реально правильный ответ
+
# 3 3 2 3
* неправильный ответ
+
# Правильный ответ: 3 3 3 2
* еще какой-то неправильный ответ
+
# 3 3 3 3
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
 
+
<i>Если ответы длинные, многострочные, или там графы, используйте
+
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
Но такое очень редко встречается. </i>
+
 
+
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
 
{{cstest-source|2011-gre-cs-practice-book.pdf|тут-номер-страницы-с-вопросом-40|40}}
 
  
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
{{cstest-source|2011-gre-cs-practice-book.pdf|34|40}}
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
*В статической области определения S() будет искать i в своей области видимости. Поскольку S() не имеет своей локальной переменной i, она будет использовать глобальную i, которая равна 3. Поэтому будет 3 3.
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],  
+
*В динамической области определения, когда S() вызывается из R(), она будет искать i в контексте последнего вызова функции. Поскольку R() имеет локальную переменную i, равную 2, S() увидит это значение. Поэтому будет 3 2.
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
{{question-ok|}}
  
</i>
+
{{checkme|[[Участник:Urmat A|Urmat A]] 17:26, 19 декабря 2024 (UTC)}}
 
+
{{question-ok|}}
+

Версия 17:26, 19 декабря 2024

Задача зарезервирована: Urmat A 15:01, 19 декабря 2024 (UTC)

Вопрос: Q40-08c765

Рассмотрим следующий псевдокод:

Указан неподдерживаемый язык.

Вы должны указать язык следующим образом: <source lang="html4strict">...</source>

Поддерживаемые языки:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


int i
main ()
{
    i = 3
    S ()
    R ()
}
void S ()
{
    print i // prints the value of i on the current line of output
    print " " // prints a blank space on the current line of output
}
void R ()
{
    int i
    i = 2
    S ()
}

Каков будет вывод программы, если псевдокод использует либо статическую (лексическую) область видимости, либо динамическую область видимости?(Область видимости [1]

Ответы

Статическое область видимости - Динамическое область видимости

  1. 3 2 3 2
  2. 3 3 2 2
  3. 3 3 2 3
  4. Правильный ответ: 3 3 3 2
  5. 3 3 3 3

Объяснение

Исходники — вопрос 40 на 34 странице книги «2011-gre-cs-practice-book.pdf»

  • В статической области определения S() будет искать i в своей области видимости. Поскольку S() не имеет своей локальной переменной i, она будет использовать глобальную i, которая равна 3. Поэтому будет 3 3.
  • В динамической области определения, когда S() вызывается из R(), она будет искать i в контексте последнего вызова функции. Поскольку R() имеет локальную переменную i, равную 2, S() увидит это значение. Поэтому будет 3 2.Check-me-animated.gif Решено: Urmat A 17:26, 19 декабря 2024 (UTC)