Гы... повеселили меня

Ну, во-первых, функция figures_amount вполне сокращается до одной строки:
function figures_amount(x:integer):integer;
begin
figures_amount:=length(str(x));
end;
Во-вторых, в задачке с русскими буквами, думаю, имеется в виду, найти, сколько раз встречается буква А, сколько раз - Б, и т.д.
Код: Выделить всё
var letters:array['А'..'Я'] of integer;
i:byte; s:string;
begin
for i:=1 to length(s) do
if s[i] in ['А'..'Я'] then inc(letters[s[i]]);
end.
Естественно, вначале надо обнулить весь массив letters и задать строку s
Со степенью такое решение (для целых чисел) тоже не пройдет, если основание степени будет отрицательным, прога радостно рухнет. Вот нормальный вариант
Код: Выделить всё
function step(x,n:integer):real;
var i:integer;s:real;
begin
s:=1;
for i:=1 to abs(n) do s:=s*x;
if n<0 then s:=1/s;
step:=s;
end;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.