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; // показываем возвращаемые из функции переменные
Для того чтобы перевести из двоичной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью двойки (показатель системы из которой переводим). Определяем степень (последнее число имеет нулевую степень, каждое следующее +1): 43210 11110 Получаем: 11110=1*2^4+1*2^3+1*2^2+1*2^1+0*2^0=16+8+4+2+0=30 11110 (2)=30 (10)
Для того чтобы перевести из восьмеричной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью восьмерки (показатель системы из которой переводим). Определяем степень (последнее число имеет нулевую степень, каждое следующее +1): 210 372 Получаем: 372 (8) = 3*8^2+7*8^1+2*8^0=192+56+2=250
Для того чтобы перевести из шестнадцатеричной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью шестнадцати (показатель системы из которой переводим). Определяем степень (последнее число имеет нулевую степень, каждое следующее +1): 210 32А Учитывая соответствие букв в шестнадцатеричной системе числам в десятичной: А - 10 B - 11 C - 12 D - 13 E - 14 F - 15 получаем: 32А (16) = 3*16^2+2*16^1+10*16^0=768+32+10=810.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
очень Составьте программу, выясняющую, есть ли в двухмерном массиве C(P, Q) строка, элементы которой образуют геометрическую прогрессию
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.