В Вашем варианте после while необходимо писать begin, а после Writeln - end. Но само по себе решение некрасивое.Вот Вам еще два на выбор.1. Без массиваvar s,n:integer;begin Write('Введите сумму: '); Read(s); n:=s div 5000; if n>0 then begin Writeln('Банкнот "5000" всего: ',n); s:=s mod 5000 end; n:=s div 1000; if n>0 then begin Writeln('Банкнот "1000" всего: ',n); s:=s mod 1000 end; n:=s div 500; if n>0 then begin Writeln('Банкнот "500" всего: ',n); s:=s mod 500 end; n:=s div 100; if n>0 then begin Writeln('Банкнот "100" всего: ',n); s:=s mod 100 end; n:=s div 50; if n>0 then begin Writeln('Банкнот "50" всего: ',n); s:=s mod 50 end; n:=s div 10; if n>0 then begin Writeln('Банкнот "10" всего: ',n); s:=s mod 10 end; if s>0 then Writeln('Недоплачено: ',s)end.Пример:Введите сумму: 162504Банкнот "5000" всего: 32Банкнот "1000" всего: 2Банкнот "500" всего: 1Недоплачено: 42. С массивомconst k:array[1..6] of integer=(5000,1000,500,100,50,10);var s,n,i:integer;begin Write('Введите сумму: '); Read(s); for i:=1 to 6 do begin n:=s div k[i]; if n>0 then begin Writeln('Банкнот "',k[i],'" всего: ',n); s:=s mod k[i] end end; if s>0 then Writeln('Недоплачено: ',s)end.ПримерВведите сумму: 15470Банкнот "5000" всего: 3Банкнот "100" всего: 4Банкнот "50" всего: 1Банкнот "10" всего: 2