Программу надо сформатировать и тогда её структура будет видна лучше. А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
var s, k: integer; label met; begin s:=-12; k:=90; Writeln('s=',s,', k=',k); s:=s+10; Writeln('s=',s); met: Writeln('Метка met:'); k:=k+10; Write('k=',k); if k<200 then s:=50 else s:=s+k; Writeln(', s=',s); if k<200 then goto met; Writeln('Результат: s=',s) end.
А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
var
s, k: integer;
label
met;
begin
s:=-12;
k:=90;
Writeln('s=',s,', k=',k);
s:=s+10;
Writeln('s=',s);
met:
Writeln('Метка met:');
k:=k+10; Write('k=',k);
if k<200 then s:=50 else s:=s+k;
Writeln(', s=',s);
if k<200 then goto met;
Writeln('Результат: s=',s)
end.
Результат выполнения программы:
s=-12, k=90
s=-2
Метка met:
k=100, s=50
Метка met:
k=110, s=50
Метка met:
k=120, s=50
Метка met:
k=130, s=50
Метка met:
k=140, s=50
Метка met:
k=150, s=50
Метка met:
k=160, s=50
Метка met:
k=170, s=50
Метка met:
k=180, s=50
Метка met:
k=190, s=50
Метка met:
k=200, s=250
Результат: s=250
AB!C+A!BC+A!B!C+!A!BC+!A!B!C = AB!C+!B
(A+B+!C)(!A+!B+!C)(!A+!B+C)(!A+B+!C) = F
раскроем скобки 2 и 4
(!A+!B+!C)(!A+B+!C) = (!A!A+!AB+!A!C)+ !B!A+!BB+!B!C+ (!C!A+!CB+!C!C)
!A+!AB+!A!C =!A(1+B+!C)=!A
!C!A+!CB+!C!C = !C(!A+B+1)=!C
!A + !B!A+!BB+!B!C+ !C = !A(1+!B)+0+!C(!B+1)=!A+!C=AC
(Вместо второй и четвертой скобки вписываем результат предыдущих вычислений)
F = (A+B+!C)(!A+!B+C)AC
Умножаем первую скобку и AC
(A+B+!C)AC = AAC+BAC+!CAC = AC+BAC+0=AC(1+B)=AC
Первая скобка поглощена. Умножаем вторую скобку
(!A+!B+C)AC = !AAC+!BAC+CAC = 0+!BAC+CA = CA(!B+1)=CA
Объяснение:(A+B+!C)(!A+!B+!C)(!A+!B+C)(!A+B+!C) = CA