Провести анализ программы, состоящей из четырех инструкций, подставив в качестве исходной величины число 50. Указать значения всех промежуточных результатов и значение окончательного результата. x=a+5 y=x//3 z=y%7 r=y-z
def dijkstra(graph, node): """ Simulate the dijkstra algorithm in a graph """ distance_to = {} distance_to[node] = 0 distance_path = {} while (distance_to): # in case we have a disjoint graph op_node = min_distance(distance_to) distance_path[op_node] = distance_to[op_node] del distance_to[op_node] for x, x_len in graph[op_node].items(): if x not in distance_path: if x not in distance_to: distance_to[x] = distance_path[op_node] + x_len elif distance_to[x] > distance_path[op_node] + x_len: distance_to[x] = distance_path[op_node] + x_len return distance_path
1) begin var s1:=ReadlnString('Текст:'); Writeln('k = ',s1.Where(c->Pos(c,'01')>0).Count); var s2:=s1.Select(c->c='0'?'A':c).Select(c->c='1'?'M':c); s2.Println; end.
Пример: Текст: Текст с 1 и 0: 110+101=1011 k = 12 Текст с M и A: MMA+MAM=MAMM
2) var s1,s2:string; i,k:integer; begin writeln('Введите текст:'); readln(s1); k:=0; s2:=''; for i:=1 to length(s1) do if s1[i]='0' then begin s2:=s2+'A'; k:=k+1; end else if s1[i]='1' then begin s2:=s2+'M'; k:=k+1; end else s2:=s2+s1[i]; writeln(s2); writeln('k = ',k); end.
Пример: Введите текст: Текст с 1 и 0: 110+101=1011 Текст с M и A: MMA+MAM=MAMM k = 12