"...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?
про пятеричные записи ничего не понял... :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию
var x,a,b: longint;
begin
for var i := 999 DownTo 100 do begin
a := 0;
b := 1;
x := i;
while x>0 do begin
if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);
x := x div 5;
end;
if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);
end;
end.
прога проводит расчет для всх трехзначных чисел от 999 до 100
итого мы видим что максимальное подходящее число это 960
при необходимости прогу можно переделать чтобы она находила только максимальное число.
procedure CalcArray (const Ax: array of Integer; var S: Integer; var M: Real); // var в параметрах означает, что переменная используется для возврата значения
var
i, c: Integer;
begin
S := 0;
c := 0;
for i := 0 to High (Ax) do begin
S := S + Ax [i]; // здесь накапливаем сумму элементов
c := c + 1;
end;
M := S / c; // когда найдена сумму, рассчитываем среднеарифметическое
end;
var
A: array [0..4] of Integer; // размерность массивов можно делать любой, но начинаться с 0
B: array [0..14] of Integer;
C: array [0..9] of Integer;
i, s: Integer;
m: Real;
begin
SetConsoleCP (1251);
SetConsoleOutputCP (1251);
Randomize; // инициализация датчика случайных чисел
WriteLn ('Массив 1:');
for i := Low (A) to High (A) do begin
A [i] := Random (10); // заполняем элементы массива случайными значениями
Write (IntToStr (A [i]) + ' '); // выводим их для просмотра
end;
CalcArray (A, s, m); // вызов процедуры
WriteLn; // показываем возвращаемые из функции переменные
WriteLn ('Сумма элементов = ' + IntToStr (s));
WriteLn ('Среднеарифметическое = ' + FloatToStr (m));
WriteLn; // аналогично поступаем с другими массивами
WriteLn ('Массив 2:');
for i := Low (B) to High (B) do begin
B [i] := Random (10);
Write (IntToStr (B [i]) + ' ');
end;
CalcArray (B, s, m);
WriteLn;
WriteLn ('Сумма элементов = ' + IntToStr (s));
WriteLn ('Среднеарифметическое = ' + FloatToStr (m));
WriteLn;
WriteLn ('Массив 3:');
for i := Low (C) to High (C) do begin
C [i] := Random (10);
Write (IntToStr (C [i]) + ' ');
end;
CalcArray (C, s, m);
WriteLn;
WriteLn ('Сумма элементов = ' + IntToStr (s));
WriteLn ('Среднеарифметическое = ' + FloatToStr (m));
end.