У исполнителя Вычислитель две команды, которым присвоены номера: 1 — раздели на 2; 2 — вычти 3.Первая из них уменьшает число в 2 раза, вторая уменьшает его на 1.Составьте алгоритм получения из числа 34 числа 1, содержащий не более пяти команд. В ответе запишите только номера команд.
Если нам надо хранить и положительные и отрицательные значения в 1 байте, то старший бит будет отведён под знак (+ или -) а на само число останется только 7 бит.
поэтому значения (х) которые можно записать в 7 бит со знаком будут в диапазоне
-128 ≤ x ≤ +127
16 (Dec) = 0001 000 (Bin)
32 (Dec) = 0010 0000 (Bin)
-25 (Dec) = 1110 0111 (Bin)
максимальное положительное значение 0111 1111 = +127
минимальное отрицательное значение 1000 0000 = -128
Вещественное число (дробное) выглядит как
234,56 = 23456 *
где
23456 – мантисса
-2 - знак порядка и порядок
Представление вещественных чисел в двух байтах будет в следующем виде
ABxx xMMM MMMM MMMM
A – знак числа (1 Бит)
B – знак порядка (1 Бит)
ххх – порядок (3 Бита) максимальное значение 111(Bin) = 7(Dec)
MMM MMMM MMMM - мантисса (11 бит) максимальное значение 111 1111 1111(Bin) = 2047(Dec)
Программа на языке Паскаль:
{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}
{Copyright (c) 1993-2017 by Florian Klaempfl and others}
{Target OS: Linux for x86-64}
program test;
var
X : array [1..5] of integer; {массив из 5 элементов}
i : integer; {Счётчик цикла}
d : integer; {Произведение положительных}
L : integer; {Количество отрицательных и нулей}
begin
{Ввести таб Х[1:5]}
write('Введите 5 чисел в массив Х: ');
for i := 1 to 5 do read(X[i]);
d := 1;
L := 0;
for i := 1 to 5 do
if (x[i] > 0) then
d := d * x[i]
else
L := L + 1;
{Вывести d, L}
writeln('Произведение d = ', d);
writeln('Количество отрицательных - ', L)
end.