Для перевода 1.2 из десятичного в двоичное есть замечание: чем точнее мы хотим приблизиться к 1.2, тем больше раз нужно производить операцию умножения на 2. Так, если 1.00110 в переводе из двоичного в десятичное даст 1.1875, то 1.00110011001100110011001100110011001100110011.. даст более приближённое значение, в том числе и 1.2.
Задание 2В числе 116 нет числа 128, поэтому в колонку "128" пишем нолик. Переходим к следующей - "64". В числе 116 есть число 64:
116 - 64 = 52. Пишем единичку в колонку "64" и переходим к следующей - "32". В числе 52 есть число 32, отнимаем, пишем единичку в колонке и переходим дальше. В числе 20 есть 16, единичку и к следующей. В числе 4 нет восьмёрки, пишем 0 и переходим дальше. В 4 есть число 4, пишем единичку и к следующей. Так как у нас 0, то в последующих колонках мы можем записать нули.
ответ1.00110₂ и 1110100₂
var
n : integer; // длина мвссива
a : integer; // количество замен
begin
write('введите длину массива ');
readln(n);
var d : array of integer := new integer[n]; // создаем массив длиной n
d := ArrRandom(n, 6, 100); // заполняем массив случайными числами от 6 до 100
writeln('был сгенерирован массив ', d);
for var i := 0 to n-1 do begin
if (d[i] mod 3 = 0) and (d[i] mod 6 <> 0) then begin // проверяем содержимое ячейки массимассива на условие задачи
d[i] := 1; // заменяем значение ячейки на 1
a += 1; // увеличиваем счетчик количества замен на 1
end;
end;
writeln('массив после замены ', d);
writeln('было произведено замен ', a);
end.
итак...
генерируем массив указанной длины n
заполняем его случайными числами в диапозоне 6..100
так как паскаль нумерует ячейки массива начиная с 0 то задаем цикл от 0 до n-1
проверяем значение ячеек на соответствие условию
для этого делим значение на число и смотрим поделилось без остатка значит кратно ему, поделилось с остатком значит не кратно.
если соответствует условию то меняем значение на 1 и увеличиваем счетчик количества замен на 1
выводим сам массив и количество произведенных замен.