Объяснение:
Условие неполное, но могу предположить что в ящике по 1 яблоку каждого сорта.
Тогда для 2 сортов нужно достать 3 яблока
для 3 сортов - 4 яблока
для 4 сортов - 5 яблок
для n сортов нужно достать n+1 яблоко.
Если доставать яблок столько, сколько сортов, (или меньше), то возможна ситуация что все яблоки которые достанем будут разных сортов.
Если же доставать яблок на одно больше, чем количество сортов, и даже если все кроме последнего окажутся разных сортов, то последнее обязательно будет одного и того же сорта с каким-нибудь из остальных.
А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
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