из курса вам известно, что цифры десятичной записи числа – это просто коэффициенты его представления в виде суммы степеней числа – основания системы счисления:
при переводе чисел из десятичной системы счисления в римскую мы и воспользовались этим правилом (444 = 400 + 40 + 4; 2986 = 2000 + 900 + 80 + 6).
при записи чисел значение каждой цифры зависит от ее положения. место для цифры в числе называется разрядом, а количество цифр в числе разрядностью. на самом деле числа можно записывать как сумму степеней не только числа 10, но и любого другого натурального числа, большего 1.
определение. развернутой формой записи числа называется такая запись: а4а3а2а1а0 = а4*q4 + a3*q3 + a2*q2 + a1*q1 + a0*q0 , где а4,а3,а2,а1,а0 –цифры числа, q –основание степени.
пример1. получить развернутую форму числа 7512410.
решение:
а4 = 7, а3 = 5, а2 =1 ,а1 =2, а0 =4, q=10
4 3 2 1 0
75 12410 = 7*104 + 5*103 + 1*102 + 2*101 + 4*100.
пример2. получить развернутую форму числа 1123.
решение:
2 1 0
1123 = 1*32 + 1*31 +2*30
пример3. получить развернутую форму числа 176,218.
решение: 21 0-1-2а8=176, 218=1*82+7*81+6*80+2*8-1+1*8-2 для самостоятельной работы: 1. запишите в развернутом виде числа: а8=143511,62а2=100111а10=143,511а16=1а3,5с12. запишите в свернутой форме число: 9*101+1*100+5*10-1+3*10-2a*162+1*161+c*160+3*16-1
{ PascalABC.NET, но все кроме writeln() должно работать и на TurboPascal. вводит числа рандомно и находит среднее арифметическое чётных чисел и среднее арифметическое индексов нечётных чисел. }
PROGRAM A4; const num = 16; var MT:array [1..num] of byte;// массив чисел i,j:byte;// счетчики even_sum:integer;// сумма четных even_num:byte;// количество четных
indx_sum:integer;// сумма нечетных индексов indx_num:byte;// количество нечетных индексов
BEGIN // условно ввели набор чисел randomize(); for i:=1 to num do MT[i] := random(256); writeln('Начальный массив ', num ,' случайных чисел'); writeln(MT);
// сам алгоритм even_sum := 0; even_num := 0;
indx_sum := 0; indx_num := 0;
writeln(' '); write('Четные числа: ');
for i:=1 to num do begin if not odd(MT[i]) then begin write(MT[i], ' '); even_sum := even_sum + MT[i]; even_num := even_num + 1; end; if odd(i) then begin indx_sum := indx_sum + i; indx_num := indx_num + 1; end; end;
§1. о системах счисления.
n4. развернутая форма записи числаиз курса вам известно, что цифры десятичной записи числа – это просто коэффициенты его представления в виде суммы степеней числа – основания системы счисления:
25076 = 2*10000 + 5*1000 + 0*100 + 7*10 + 6*1 = 2*104 +5*103 + 0*102 +7*101+6*100
при переводе чисел из десятичной системы счисления в римскую мы и воспользовались этим правилом (444 = 400 + 40 + 4; 2986 = 2000 + 900 + 80 + 6).
при записи чисел значение каждой цифры зависит от ее положения. место для цифры в числе называется разрядом, а количество цифр в числе разрядностью. на самом деле числа можно записывать как сумму степеней не только числа 10, но и любого другого натурального числа, большего 1.
определение. развернутой формой записи числа называется такая запись: а4а3а2а1а0 = а4*q4 + a3*q3 + a2*q2 + a1*q1 + a0*q0 , где а4,а3,а2,а1,а0 –цифры числа, q –основание степени.
пример1. получить развернутую форму числа 7512410.
решение:
а4 = 7, а3 = 5, а2 =1 ,а1 =2, а0 =4, q=10
4 3 2 1 0
75 12410 = 7*104 + 5*103 + 1*102 + 2*101 + 4*100.
пример2. получить развернутую форму числа 1123.
решение:
2 1 0
1123 = 1*32 + 1*31 +2*30
пример3. получить развернутую форму числа 176,218.
решение: 21 0-1-2а8=176, 218=1*82+7*81+6*80+2*8-1+1*8-2 для самостоятельной работы: 1. запишите в развернутом виде числа: а8=143511,62а2=100111а10=143,511а16=1а3,5с12. запишите в свернутой форме число: 9*101+1*100+5*10-1+3*10-2a*162+1*161+c*160+3*16-1PascalABC.NET, но все кроме writeln() должно работать и на TurboPascal.
вводит числа рандомно и находит среднее арифметическое
чётных чисел и среднее арифметическое индексов нечётных чисел.
}
PROGRAM A4;
const
num = 16;
var
MT:array [1..num] of byte;// массив чисел
i,j:byte;// счетчики
even_sum:integer;// сумма четных
even_num:byte;// количество четных
indx_sum:integer;// сумма нечетных индексов
indx_num:byte;// количество нечетных индексов
BEGIN
// условно ввели набор чисел
randomize();
for i:=1 to num do
MT[i] := random(256);
writeln('Начальный массив ', num ,' случайных чисел');
writeln(MT);
// сам алгоритм
even_sum := 0;
even_num := 0;
indx_sum := 0;
indx_num := 0;
writeln(' ');
write('Четные числа: ');
for i:=1 to num do begin
if not odd(MT[i]) then begin
write(MT[i], ' ');
even_sum := even_sum + MT[i];
even_num := even_num + 1;
end;
if odd(i) then begin
indx_sum := indx_sum + i;
indx_num := indx_num + 1;
end;
end;
writeln(' ');
writeln('Количество четных чисел ', even_num);
writeln('Среднее арифметическое четных чисел = ',
even_sum, '/', even_num , ' = ', even_sum/even_num );
writeln(' ');
writeln('Количество нечетных индексов нечётных чисел ', indx_num);
writeln('Среднее арифметическое индексов нечётных чисел ',
indx_sum, '/', indx_num, ' = ', indx_sum/indx_num);
END.