Алгоритм перевода целого десятичного числа в двоичное будет следующим:
1. Последовательно выполнять деление нацело исходного целого десятичного числа и получаемых частных на основание системы счисления (2).
2. На каждом шаге записывать полученные частные и остатки от деления.
3. Деление продолжается до тех пор, пока не получится частное, меньшее делителя, то есть меньшее 2.
4. Выписать в обратном порядке, начиная с последнего частного все полученные остатки.
program z1;
var a: array [1..15] of real;
i, k, b: integer;
proizv: real;
begin
proizv:= 1;
a[1]:= 0.01;
a[2]:= -3;
a[3]:= 0;
a[4]:= 1.25;
a[5]:= -371;
a[6]:= 0.5;
a[7]:= -0.1;
a[8]:= 1.2;
a[9]:= -5;
a[10]:= -172.3;
a[11]:= 19783;
a[12]:= -2.7;
a[13]:= 43.51;
a[14]:= 0;
a[15]:= -0.02;
b:= -3;
k:= 0;
for i:=1 to 15 do
begin
if (a[i] <> 0) and (a[i] > b) then
begin
proizv:= proizv * a[i];
k:= k+1;
end;
end;
writeln('Количество чисел, подходящих условию: ', k);
writeln('Произведение чисел, подходящих условию: ', proizv);
end.
Объяснение:
На фото нарисована блок-схема, она немного криво сфоткана, надеюсь разберёшься. Если есть вопросы - задавай :)
program z1;
var a: array [1..15] of real;
i, k, b: integer;
proizv: real;
begin
proizv:= 1;
a[1]:= 0.01;
a[2]:= -3;
a[3]:= 0;
a[4]:= 1.25;
a[5]:= -371;
a[6]:= 0.5;
a[7]:= -0.1;
a[8]:= 1.2;
a[9]:= -5;
a[10]:= -172.3;
a[11]:= 19783;
a[12]:= -2.7;
a[13]:= 43.51;
a[14]:= 0;
a[15]:= -0.02;
b:= -3;
k:= 0;
for i:=1 to 15 do
begin
if (a[i] <> 0) and (a[i] > b) then
begin
proizv:= proizv * a[i];
k:= k+1;
end;
end;
writeln('Количество чисел, подходящих условию: ', k);
writeln('Произведение чисел, подходящих условию: ', proizv);
end.
Объяснение:
На фото нарисована блок-схема, она немного криво сфоткана, надеюсь разберёшься. Если есть вопросы - задавай :)