В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
dgbimv
dgbimv
12.12.2021 21:10 •  Информатика

Написать программу на паскале задано целое число n. в ячейку памяти вычислительной машины записывается его двоичное представление (размер ячейки – 1 байт). над содержимым ячейки выполняется преобразование: циклический сдвиг влево на одну позицию. все цифры двоичного числа сдвигаются влево на одну позицию, при этом старший бит переходит в младший. преобразование повторяется восемь раз (после последнего преобразования число становится исходным). напишите программу, которая по введенному натуральному десятичному числу n, вычисляет наибольшее из десятичных чисел, полученных в процессе преобразования. например: 201 представлено в ячейке памяти как 11001001. после первого сдвига влево получаем число 10010011, это соответствует десятичному числу 147. формат входных данных первая строка ввода содержит неотрицательное целое число n. формат выходных данных выведите единственное целое число r — наибольшее число, полученное в процессе преобразований. ограничения 0 ≤ n ≤ 255 пример входных и выходных данных входные данные выходные данные 1 128 143 248

Ответ:
ЛордТарнум
ЛордТарнум
09.10.2020 04:00
PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018Внимание! Если программа не работает, обновите версию!

function Dec2Bin(t: integer): string;

begin

 var r: string := '';

 while t >= 2 do

   (r, t) := (t mod 2 + r, t shr 1);

 r := t + r;

 Result := '0' * (8 - r.Length) + r

end;


function Bin2Dec(s: string): integer;

begin

 Result := 0;

 var p := 1;

 for var i := s.Length downto 1 do

 begin

   Result += (s[i].ToDigit) * p;

   p *= 2

 end

end;


function GenSeqCycle(n: integer): sequence of integer;

begin

 var s := Dec2Bin(n);

 loop 8 do

 begin

   yield Bin2Dec(s);

   s := s[2:] + s[1]

 end

end;


begin

 GenSeqCycle(ReadInteger).Max.Println

end.


Написать программу на паскале задано целое число n. в ячейку памяти вычислительной машины записывает
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?