База ответов ИНТУИТ

Программирование на языке Pascal

<<- Назад к вопросам

Какие переменные будут существовать во время выполнения подпрограммы p2?
program prog;var a: byte;procedure p1; var a: byte; begin  ... end;procedure p2; function f: boolean;  var a: byte;  begin   ...  end; var a: byte; begin  ... end;

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
p1.a
prog.a(Верный ответ)
f.a
p2.a(Верный ответ)
Похожие вопросы
Какие переменные будут существовать во время выполнения подпрограммы f?
program prog;var a: byte;procedure p1; var a: byte; begin  ... end;procedure p2; function f: boolean;  var a: byte;  begin   ...  end; var a: byte; begin  ... end;
Какие переменные будут существовать во время выполнения подпрограммы p1?
program prog;var a: byte;procedure p1; function f: boolean;  var a: byte;  begin   ...  end; var a: byte; begin  ... end;procedure p2;var a: byte; begin  ... end;
Какое значение получит переменная a после выполнения такой программы?
var a: byte;proc p1(k: byte);proc p2(var t: byte); begin t:= t*2 end;var a: byte; begin a:= 1;       k:= 5;       p2(a); end;begin a:= 10; p1(a);end.
Какое значение получит переменная a после выполнения такой программы?
var a: byte;proc p1(var k: byte);proc p2(t: byte); begin t:= t*2 end;var a: byte; begin a:= 1;       k:= 5;       p2(k); end;begin a:= 10; p1(a);end.
Какое значение получит переменная a после выполнения такой программы?
var a: byte;proc p1(var t: byte); begin t:= t*2 end;proc p2(var k: byte);var a: byte; begin a:= 1;       k:= 5;       p1(k); end;begin a:= 10; p2(a);end.
Какие из приведенных ниже отрывков программ хорошо структурированы?
1)	procedure step(v,k: byte; r: longint);var j: byte;begin if r < min then   if k = N-1      then min:= r     else for j:= 1 to N do            if (sm[v,j]<>0)and(mark[j]=0)              then begin                    mark[j]:= 1;                    step(j,k+1,r+sm[v,j]);                    mark[j]:= 0                    end;end;2)	for i:= 1 to N-1 dobeginfor x:= 1 to N doif (sm[last,x]<>0)and(not done[x])then dist[x]:= min(dist[x],dist[last]+sm[last,x]);min_dist:= MaxLongInt;for x:= 1 to N doif (not done[x])and(min>dist[x])then begin min_dist:= dist[x];last:= x; end;done[last]:= true;end;3)while head<>nil do begin  with head^.e^ do  if from^.dist+len < toward^.dist then begin     toward^.dist:= from^.dist + len;     enqueue(toward,queue,head);  end;  next_head:= head ^.next;  dispose(head);  head:= next_head end;4)	procedure infix(var p: ukaz);begin read(c);  case c of  '('            : begin new(p); infix(p^.left) end;  '+','-',*','/' : begin p^.symbol:= c;                          infix(p^.right)                    end;  ')'            : {ничего не делаем};  else             begin p^.symbol:= c;                          p^.right:= nil;                          p^.left:= nil;                    end; end;end;
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 18 32 5 5 6 2 78 4 56 5 2. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out())?
{массив а хранит веса всех предметов, в порядке их ввода, half - "большая" половина суммы всех весов, dif - отклонение текущей найденной суммы от half}procedure rec(k: byte; sum: longint; var dif: longint);var i: byte;begin if sum+a[k]<=half        then for i:= k+1 to n do rec(i,sum+a[k],dif)        else if half-sum<dif               then begin                     dif:= half-sum;                    if dif<2 then out(dif){печать и завершение}                   endend;
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 45 48 32 12 12 15 46 2 2 3 15. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out())?
{массив а хранит веса всех предметов, в порядке их ввода, half - "большая" половина суммы всех весов, dif - отклонение текущей найденной суммы от half}procedure rec(k: byte; sum: longint; var dif: longint);var i: byte;begin if sum+a[k]<=half        then for i:= k+1 to n do rec(i,sum+a[k],dif)        else if half-sum<dif               then begin                     dif:= half-sum;                    if dif<2 then out(dif){печать и завершение}                   endend;
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 36 72 45 2 38 96 15 2 2. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out())?
{массив а хранит веса всех предметов, в порядке их ввода, half - "большая" половина суммы всех весов, dif - отклонение текущей найденной суммы от half}procedure rec(k: byte; sum: longint; var dif: longint);var i: byte;begin if sum+a[k]<=half        then for i:= k+1 to n do rec(i,sum+a[k],dif)        else if half-sum<dif               then begin                     dif:= half-sum;                    if dif<2 then out(dif){печать и завершение}                   endend;
Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок?
{s1,s2: string; i,j,t1,t2: byte}i:=0;res:= '';	t1:= byte(s1[0]);t2:= byte(s2[0]);if i > t2 then i:= t2+1;for j:= 1 to i-1 do res:= res + s2[j];for j:= 1 to t1 do res:= res + s1[j];for j:= i to t2 do res:= res + s2[j];