Какое-то запутанное условие. Решение "в лоб", без оптимизаций:
Procedure Razmen(a : Integer); Begin If a>=500 then Begin Writeln('500 - ',a div 500); Razmen(a-(a div 500)*500); end else If a>=100 then Begin Writeln('100 - ',a div 100); Razmen(a-(a div 100)*100); end else If a>=50 then Begin Writeln('50 - ',a div 50); Razmen(a-(a div 50)*50); end else If a>=10 then Begin Writeln('10 - ',a div 10); Razmen(a-(a div 10)*10); end else If a>=5 then Begin Writeln('5 - ',a div 5); Razmen(a-(a div 5)*5); end else Writeln('1 - ',a); end; Begin Razmen(1530); end.
// PascalABC.NET 3.1, сборка 1201 от 18.03.2016 begin var n:=ReadInteger('n='); var m:=18; var a:=MatrixRandom(m,n,-999,999); var imax:=0; var jmax:=0; for var i:=0 to m-1 do begin for var j:=0 to n-1 do begin Write(a[i,j]:5); if abs(a[i,j])>abs(a[imax,jmax]) then begin imax:=i; jmax:=j end end; Writeln end; Writeln('Максимум по модулю А[',imax+1,',',jmax+1, ']=',a[imax,jmax]) end.
Решение "в лоб", без оптимизаций:
Procedure Razmen(a : Integer);
Begin
If a>=500 then
Begin
Writeln('500 - ',a div 500);
Razmen(a-(a div 500)*500);
end
else
If a>=100 then
Begin
Writeln('100 - ',a div 100);
Razmen(a-(a div 100)*100);
end
else
If a>=50 then
Begin
Writeln('50 - ',a div 50);
Razmen(a-(a div 50)*50);
end
else
If a>=10 then
Begin
Writeln('10 - ',a div 10);
Razmen(a-(a div 10)*10);
end
else
If a>=5 then
Begin
Writeln('5 - ',a div 5);
Razmen(a-(a div 5)*5);
end
else Writeln('1 - ',a);
end;
Begin
Razmen(1530);
end.