Главная /
Программирование на языке Pascal /
Какие из приведенных ниже отрывков программ хорошо структурированы?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; s
Какие из приведенных ниже отрывков программ хорошо структурированы?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 do
begin
for x:= 1 to N do
if (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 do
if (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;
вопрос
Правильный ответ:
1
2
3
4
Сложность вопроса
58
Сложность курса: Программирование на языке Pascal
75
Оценить вопрос
Комментарии:
Аноним
Какой человек ищет данные тесты интуит? Это же очень просты вопросы
30 мар 2016
Аноним
спасибо за ответ
24 фев 2016
Другие ответы на вопросы из темы программирование интуит.
- # Какой алгоритм реализует приведенная ниже программа?const nnn=10000; type s1 = ^s2; s2 = record n,k,v: integer; next: s1; end; var f: text; head,p,q: s1; x,i,kr,vr,nxt,kol_ver: integer; a: array[1..nnn] of integer; begin assign(f,'in'); reset(f); readln(f,kol_ver); new(head); with head^ do readln(f,n,k,v); head^.next:= nil; while not eof(f) do begin new(q); with q^ do readln(f,n,k,v); q^.next:= nil; if q^.v <= head^.v then begin q^.next:= head; head:= q; continue end; p:= head; while p^.next<>nil do begin if q^.v > p^.next^.v then p:= p^.next else begin q^.next:= p^.next; p^.next:= q; break; end; end; if p^.next = nil then p^.next:= q; end; close(f); p:=head; while p<>nil do begin write(p^.v,' '); p:=p^.next; end; writeln('*'); for i:= 1 to kol_ver do a[i]:= 0; kr:= 0; vr:= 0; nxt:= 0; p:= head; while (p^.next <> nil)and(kr<kol_ver)do with p^ do begin if a[n]=0 then if a[k]=0 then begin inc(kr); inc(vr,v); inc(nxt); a[n]:= nxt; a[k]:= nxt; end else begin a[n]:= a[k]; inc(vr,v); end else if a[k]=0 then begin a[k]:= a[n]; inc(vr,v); end else if a[n]<>a[k] then begin x:= a[k]; for i:= 1 to kol_ver do if a[i]=x then a[i]:=a[n]; inc(vr,v) end; p:= next end; writeln(vr) end.
- # Какие переменные может использовать секция внешних связей модуля B?unit A; unit C; unit F; interface interface interface uses C,D; uses D,F; var f; var a; var c; implementation implementation implementation uses A; uses F; uses B; var ff; var aa; var cc; end; end; end; unit B; unit D; interface interface uses C; var d; var b; implementation implementation uses B; uses D; var dd; var bb; end; end;
- # Для того, чтобы скомпилировать все без исключения модули программы, нужно воспользоваться командой:
- # В текстовом файле f указатель находится перед концевым пробелом в предпоследней строке, а последняя строка - пустая. Какие из перечисленных ниже функций вернут FALSE в этой ситуации?
- # После завершения работы подпрограммы значение переданной в нее переменной-аргумента не может измениться, если соответствующий параметр был: