Главная страница
Навигация по странице:

  • Задание 11 из 11

  • Задание 10 из 11

  • Задание 9 из 11

  • Задание 8 из 11

  • Операции побитового сдвига

  • ПРО IT задание № 11. ПРО IT Задание 11. Старт для выхода на орбиту нашего конкурса также даст введенный вами код


    Скачать 5.13 Mb.
    НазваниеСтарт для выхода на орбиту нашего конкурса также даст введенный вами код
    АнкорПРО IT задание № 11
    Дата15.06.2022
    Размер5.13 Mb.
    Формат файлаdocx
    Имя файлаПРО IT Задание 11.docx
    ТипДокументы
    #594144

    Задание 1

    В далёком 1961 году первый полёт в космос было решено провести в автоматическом режиме, как сейчас бы сказали – на автопилоте. Тогда никто из учёных и врачей не мог с точностью гарантировать, как на самом деле космонавт отреагирует на экстремальные условия: невесомость, вид родной планеты из космоса. Чтобы космонавт в возбужденном состоянии не включил раньше времени тормозную двигательную установку на спуск, и был придуман логический замок. Для перехода на ручной режим управления космонавт должен был нажать в строго определенном порядке три из девяти пронумерованных кнопок на специальном пульте. Воспользоваться этим кодом можно было только на орбите, распечатав специальный конверт.
    Старт для выхода на орбиту нашего конкурса также даст введенный вами код.
    Некоторое число X из десятичной системы счисления перевели в системы счисления с основаниями 16, 8. Часть символов при записи утеряна. Позиции утерянных символов обозначены *:

    X = 1D*₁₆ = *3*₈.
    Стартовый код – количество чисел, соответствующих этому условию. Найдите его. Ответ запишите числом, без дополнительных пробелов и символов до и после ответа (например: 10).

    Задание 11 из 11

    Космонавты записали показатели важного прибора в список (см. Дополнительные материалы к заданию 11), который состоит из 100 целых чисел от -20 до 20. Определите, сколько различных пар чисел (пара – это любые два числа) из списка в сумме равны 7. В ответ запишите только количество пар числом без дополнительных пробелов и символов до и после ответа (например: 10).

    Различными считаются пары, у которых оба числа различные (например, пары чисел (9, -5) и (5, -1) – различны, а пары (9, -5) и (-5, 9) – нет). Если для списка [10, -5, 4, 9, -1, 5, -8, -1] нужно определить, сколько различных пар чисел в сумме равны 4, то ответом будет 2 (т.е существует 2 различные пары чисел в сумме равные 4, это (9, -5) и (5, -1)).

    11 -2 -4 -10 -9 4 -5 -18 -16 5 -6 -19 0 -7 11 -17 11 9 -7 -11 19 -16 -11 -4 19 -6 -6 -15 1 11 -1 -16 12 0 -15 -13 11 -19 -15 -18 -20 7 -8 17 -4 16 6 -5 -3 -8 17 -2 2 1 -2 19 -6 13 -7 -8 9 -13 4 -19 -4 20 20 -10 9 13 18 15 -15 -16 20 15 19 -13 6 17 -9 -6 -3 -1 19 5 2 -14 -20 15 20 -7 -13 16 -16 16 -4 1 -20 -11

    Задание 10 из 11

    Космонавты кодируют сигнал с помощью последовательностей из нулей и единиц длины - 22 (длина - это общее количество нулей и единиц), в которых никакие три единицы не должны стоять рядом. Определите количество таких последовательностей.

    Ответ запишите числом, без дополнительных пробелов и символов до и после ответа (например: 1001).



    Задание 9 из 11

    Для поиска орбиты, подходящей для запуска новейшего спутника, используют специальный алгоритм, где n – натуральное число:
    F(n)=n+1 при n<3,

    F(n)=n+2*F(n+2) , когда n>=3 и четно,

    F(n)=F(n-2)+n-2, когда n>=3 и нечетно.
    Сколько существует чисел n, для которых значение F(n) определено и будет трехзначным? Ответ запишите числом, без дополнительных пробелов и символов до и после ответа (например: 10).



    Задание 8 из 11

    На рисунке – схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.

    Чтобы доставить вовремя деталь для ракеты с завода из города А на космодром, находящийся в городе М, водитель попросил выяснить у службы логистики следующие сведения:

    1) Сколько существует различных путей из города А в город М, проходящих через город Ж, но не проходящих через город Д?

    2) Какова длина самого короткого пути из города А в город М, проходящего через город Г, но не проходящего через город Ж? Длиной пути считать количество дорог, составляющих этот путь.

    В ответ запишите сумму полученных двух чисел, цифрами без дополнительных пробелов и символов до и после ответа (например: 10).





    Задание 7

    Для решения прикладных космических задач используется специальный автомат «Тетра», который получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

    1. Складываются первая и вторая, а также вторая и третья цифры исходного числа.

    2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

    Пример. Исходное число: 348. Суммы: 3 + 4 = 7; 4 + 8 = 12. Результат: 127.

    Найдите наименьшее число, наибольшее число и количество чисел в результате обработки которых автомат «Тетра» выдает число 1512. В ответ запишите разницу максимального и минимального числа, умноженную на количество таких чисел, цифрами без дополнительных пробелов и символов до и после ответа (например: 100).



    Ответить

    Задание 6 из 11

    03:49:59

    В космический полет на орбиту Земли космонавт Виктор берет с собой запас леденцов на палочке для всего экипажа. Когда его напарник спросил, сколько штук он взял на этот раз, Виктор ответил ему задачей:

    Количество леденцов равно сумме натуральных чисел x, для которых ИСТИННО высказывание:

    (x – факториал натурального числа) И НЕ (x > 1000).

    Сколько леденцов на палочке взял космонавт в полет? Ответ запишите числом, без дополнительных пробелов и символов до и после ответа (например: 10).




    Задание 4 из 11

    производится тестирование системы управления движением пилотируемого космического корабля.

    Тестовая система работает с положительными однобайтовыми двоичными числами и умеет выполнять команды, которым присвоены номера:

    1. сдвинь влево

    2. вычти 2

    3. сдвинь вправо

    4. вычти 1

    Выполняя первую из них, исполнитель сдвигает число на один двоичный разряд влево, выполняя вторую – вычитает из него 2, выполняя третью – сдвигает на один двоичный разряд вправо, выполняя четвертую – вычитает из него 1.

    «Выполнение команд «сдвинь влево» и «сдвинь вправо» является логическим сдвигом».

    На вход системе для теста подается натуральное число и последовательность команд, для выполнения преобразований. По результату делается вывод об исправности системы управления движением корабля. Какой результат говорит о том, что всё исправно, если на вход подано число 202 и выполняется цепочка команд 432111234. Запишите результат в десятичной системе. Ответ запишите числом, без дополнительных пробелов и символов до и после ответа (например: 10).



    1. сдвинь влево (умножить на 2)

    2. вычти 2 (вычесть 2 из десятичного числа)

    3. сдвинь вправо (разделить на 2)

    4. вычти 1 (вычесть 1 )

    Пример:

    4) 202-1=201

    3) 201/2=100 (дробная часть отбрасывается, число должно быть в пределах одного байта)

    2) 100-2=98

    1) 98*2=196

    1) 196*2%256=136

    1) 136*2%256=272-256=16

    2) 16-2=14

    3) 12/2=7

    4) 7-1=6

    Ответ: 6








    ID

    Название

    1

    Rock

    2

    Jazz

    3

    Metal

    4

    Alternative & Punk

    5

    Rock And Roll

    6

    Blues

    7

    Latin

    8

    Reggae

    9

    Pop

    10

    Soundtrack
    11

    Bossa Nova

    12

    Easy Listening

    13

    Heavy Metal

    14

    R&B/Soul

    15

    Electronica/Dance

    16

    World

    17

    Hip Hop/Rap

    18

    Science Fiction

    19

    TV Shows

    20

    Sci Fi & Fantasy

    21

    Drama

    22

    Comedy

    23

    Alternative

    24

    Classical

    25

    Opera


    Задание 2 из 11

    1

    Экипаж Международной космической станции подготовил 10-минутное видеопоздравление с околоземной орбиты участникам Всероссийской олимпиады учителей информатики ПРО-IT 2022 года. Каждый кадр имеет разрешение 640x480 пикселей и цветовую палитру в 2¹⁶ = 65536 цветов. Каждый пиксель кодируется с помощью минимально возможного и одинакового для всех пикселей количества бит. Картинки записываются одна за другой без разделителей и заголовков файла. Частота смены кадров в конечном ролике – 24 кадра/сек. В качестве звукового сопровождения выбран формат стерео с глубиной кодирования 10 бит и частотой дискретизации 40 кГц. Найдите размер видео в МБайтах, если известно, что его длительность 5 минут. В качестве ответа укажите число – минимальное целое количество Мбайт достаточное для хранения такого файла. Ответ запишите числом, без дополнительных пробелов и символов до и после ответа (например: 10).



    Решение:

    Геннадий создает мультипликационный ролик, где каждый кадр - отдельно отрисованная картинка. Известно, что каждая картинка имеет разрешение :640*480 пикселей и цветовую палитру в 2^ 16=65536 цветов. Каждый пиксель кодируется с помощью минимально возможного и одинакового для всех пикселей количества бит. Картинки записываются одна за другой без разделителей и заголовков файла. Частота смены кадров в конечном ролике - 24 кадра/сек. В качестве звукового сопровождения выбран формат стерео с глубиной кодирования 10 бит и частотой дискретизации 40 кГц . Найдите размер мультфильма в Мбайтах, если известно, что его Длительность 5 минут. В качестве ответа укажите число - минимальное целое количество Мбайт достаточное для хранения такого файла.​

    Ответ:

    1) 640*480*16 = 4 915 200 бит = 614 400 байт = 600 Кбайт - объём кадра

    2) 600*24 = 14400 Кбайт/с - битрейт видео

    3) 10*40000 = 400 000 бит/с = 50 000 байт/с - битрейт аудио

    4) 5*60*((14400*1024)+50000) = 4 438 680 000 байт = 4 233,05 Мбайт

    Ответ: 4 233,05 Мбайт

    Аудио в стерео формате, поэтому шаги 3 и 4 в решении другие

    3) 2*10*40000 = 800 000 бит/с = 100 000 байт/с - битрейт аудио

    4) 5*60*((14400*1024)+100000) = 4 453 680 000 байт = 4 247,36 Мбайт

    Операции побитового сдвига

    Операций сдвига две – битовый сдвиг влево (оператор <<) и битовый сдвиг вправо (оператор >>). Битовый сдвиг вправо сдвигает биты числа вправо, дописывая слева нули. Битовый сдвиг влево делает противоположное: сдвигает биты влево, дописывая справа нули. Вышедшие за пределы числа биты отбрасываются.

    Например, сдвиг числа 5 влево на 2 позиции

    00000101 << 2 == 00010100

    Сдвиг числа 19 вправо на 3 позиции

    00010011 >> 3 == 00000010

    Независимо от архитектуры (big-endian, или little-endian, или middle-endian) числа в двоичном виде представляются слева направо, от более значащего бита к менее значащему. Побитовый сдвиг принимает два операнда – число, над которым необходимо произвести сдвиг, и число бит, на которое необходимо произвести сдвиг.

    ?

    int a = 12;

    printf("%d << 1 == %d\n", a, a << 1);

    printf("%d << 2 == %d\n", a, a << 2);

    printf("%d >> 1 == %d\n", a, a >> 1);

    printf("%d >> 2 == %d\n", a, a >> 2);

    Так как сдвиг вправо (>>) дописывает слева нули, то для целых чисел операция равносильна целочисленному делению пополам, а сдвиг влево умножению на 2. Произвести битовый сдвиг для числа с плавающей точкой без явного приведения типа нельзя. Это вызвано тем, что для си не определено представление числа с плавающей точкой. Однако можно переместить число типа float в int, затем сдвинуть и вернуть обратно

    ?

    float b = 10.0f;

    float c = (float) (*((unsigned int*)&b) >> 2);

    printf("%.3f >> 2 = %.3f", b, c);

    Но мы, конечно же, получим не 5.0f, а совершенно другое число.

    Особенностью операторов сдвига является то, что они могут по-разному вести себя с числами со знаком и без знака, в зависимости от компилятора. Действительно, отрицательное число обычно содержит один бит знака. Когда мы будем производить сдвиг влево, он может пропасть, число станет положительным. Однако, компилятор может сделать так, что сдвиг останется знакопостоянным и будет проходить по другим правилам. То же самое и для сдвига вправо.

    ?

    unsigned int ua = 12;

    signed int sa   = -11;

    printf("ua = %d, ua >> 2 = %d\n", ua, ua >> 2);

    printf("sa = %d, sa >> 2 = %d\n", sa, sa >> 2);

    printf("(unsigned) sa = %u, sa >> 2 = %u\n", sa, sa >> 2);

    printf("sa = %d, ((unsigned) sa) >> 2 = %d", sa, ((unsigned) sa) >> 2);

    В данном случае при первом сдвиге всё работает, как и задумано, потому что число без знака. Во втором случае компилятор VSE2013 оставляет знак. Однако если посмотреть на представление этого числа, как беззнакового, сдвиг происходит по другим правилам, с сохранением самого левого бита. В последней строчке, если привести число со знаком к числу без знака, то произойдёт обычный сдвиг, и мы получим в результате положительное число.

    Побитовые операторы и операторы сдвига не изменяют значения числа, возвращая новое. Они также как и арифметические операторы, могут входить в состав сложного присваивания

    ?

    int a = 10;

    int b = 1;

    a >>= 3;

    a ^= (b << 3);

    и т.д.


    написать администратору сайта