1) *mer?.doc - отбирает файлы с расширением .doc и именем (я буду называть именем всё без расширения), оканчивающимся на mer и еще какую-то букву. Будет отобрано только файл 2. 2) ?*mer?.doc - тут по сравнению с предыдущим добавляется условие, что перед mer должно быть что-то еще. Если в случае был 1 файл, то и в этом не больше одного. 3) *mer*?.doc - файлы с именем, содержащим mer, но не оканчивающимся на него и расширением .doc. Отберутся файлы 2, 3, 5 - три файла. 4) *?mer*?.doc - тут mer должно еще и не быть в начале, по сравнению с предыдущим. Будут отобраны файлы 2 и 5.
Программу надо сформатировать и тогда её структура будет видна лучше. А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
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.