begin Randomize; Writeln('Элементы массива'); k := 0; s := 0; for i := 1 to n do begin x[i] := Random(50); Write(x[i]:3); end; Writeln; Writeln('Элементы со значением в интервале [7;10]'); for i := 1 to n do if (x[i] >= 7) and (x[i] <= 10) then begin k := k + 1; s := s + x[i]; Write(x[i]:3) end; if k = 0 then Writeln('не найдены') else Writeln(#13#10, ' Элементов:', k, ', среднее арифметическое=', s / k:5:3) end.
В Вашем варианте после 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.
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.