мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Это старая версия документа!


Задачи на Март 2020

Упражнение

Узнайте, какой «сдвиг вправо» используется в Вашем любимом/рабочем языке программирования: переносящий сдвигаемые биты (циклический) дополняющий старшим разрядом у знаковых типов (арифметический) дополняющий нулями

Занятие 1

Задача № 1

Вводится строка. Может ли эта строка быть IP адресом?

Вводится строка. Может ли эта строка быть маской подсети?

Определить по этим данным адрес сети и номер компьютера в ней.

Задача № 2

IP-адрес был записан на бумажке, которую разорвали на 4 части.

Написать программу, которая по 4-м строкам восстанавливает все возможные IP-адреса

Занятие 2 (Кодирование)

Задача № 1

Написать программу, которая с помощью побитовых операций переводит десятичные числа

  • бинарные(двоичные)
  • восьмиричные
  • шестнадцатеричные

Задача № 2

Вводятся последовательно 4 числа. Могут ли они быть частями IP адреса?

Вводится строка. Могут ли они быть частями быть маски подсети?

Определить по этим данным адрес сети и номер компьютера в ней.

Занятие 3

Продолжение следует..

Задачи на Январь-Февраль 2020

Декодирование - это действие по восстановлению первоначальной формы представления информации. Для декодирования необходимо знать код и правила кодирования.

Средством кодирования и декодирования служит кодовая таблица соответствия. Например, соответствие в различных системах счисления - 24 - XXIV, соответствие алфавита каким-либо символам (Рис. 2).

Занятие 1 (Кодирование)

Задача №1

Написать программу, которая

  1. считывает кодировку из произвольного алфавита А, который является подмножеством латинского (английского), в алфавит Х, который также является подмножеством латинского (английского),
  2. получает сообщение в алфавите А
  3. выводит закодированное указанной кодировкой сообщение в кодировке Х
Задача №2

Написать программу, которая

  1. считывает кодировку из произвольного алфавита А, который является подмножеством латинского (английского), в алфавит Х, который также является подмножеством латинского (английского),
  2. получает сообщение в алфавите Х, предположительно закодированное заданной кодировкой.
  3. выводит декодированное сообщение в алфавите А или предупреждает об ошибке
Задача №3

Написать программу, которая считывает и проверяет кодировку на условие Фано.


Занятие 2 (Кодирование)

На этом занятии входящий алфавит – некоторое подмножество латинского, выходной – 0 и 1. Требуется вывести кодировку, т.е. перечислить все символы входящего алфавита и соответствующие им кодовые слова в выходящем алфавите

Задача №1

Входящий алфавит А состоит из n первых букв латинского (английского) алфавита. На входе – число n.

По числу n, количеству входящих букв, выдать кодировку, удовлетворяющую критерию Фано

Задача №2

Входящий алфавит А состоит из n букв латинского (английского) алфавита. На входе – число n и частичная кодировка в любой форме.

Кодировка некоторых букв уже задана. Выдать кодировку для всех букв, удовлетворяющую критерию Фано.

Задача №3

Входящий алфавит А состоит из n букв латинского (английского) алфавита. На входе – число n и строка S.

Известно слово S в алфавите А, которое мы хотим передать. Предложить кодировку в выходящем алфавите {0, 1}, в которой выходящее сообщение самое короткое.


Занятие 3 (Логика)

Задача №1

Написать программу, которая проверяет, для какого имени ложно высказывание:

Первая буква гласная \/ Четвертая буква согласная?

  1. Петр
  2. Алексей
  3. Наталья
  4. Елена
Задача №2

Написать программу, которая проверяет, для какого имени ложно высказывание:

(Первая буква имени гласная → Четвертая буква имени согласная).

  1. ЕЛЕНА
  2. ВАДИМ
  3. АНТОН
  4. ФЕДОР

Задачи на октябрь 2019

Задача №1

Имеется набор данных, состоящий из пар положительных целых чисел.

Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.

Задача №2

На вход программы поступает последовательность из N целых положительных чисел. Все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен).

Необходимо определить количество пар, для которых произведение элементов делится на 26.

Задача №3

На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не меньше чем 4 (разница в индексах элементов пары должна быть 4 или более, порядок элементов в паре неважен).

Необходимо определить количество таких пар, для которых произведение элементов делится на 29.

Задача №4

На вход программы поступают целое число К (0 < К < 10) и последовательность из N целых положительных чисел. Все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен).

Необходимо определить такую пару элементов, что их сумма делится на К и она максимальна среди таких сумм.

З.Ы.

Поскольку предполагается, что N достаточно велико, то Тупой Перебор допустим, но снижает оценку.

Задачи на Ноябрь-Декабрь 2019

Если не указано иное, графы считаются простыми, невзвешенными и неориентированными.

Задача №1

Ввести граф по диаграме (картинке).

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

Оценивание

30 баллов – иногда ошибается

40 баллов – находит путь, но не кратчайший

50 баллов – всегда находит кратчайший путь.

Задача №2

Ввести граф по диаграмме (картинке).

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

Оценивание

30 баллов – иногда ошибается

40 баллов – находит путь, но не кратчайший

50 баллов – всегда находит кратчайший путь.

Задача №3

Программа получает граф в виде файла со списком смежности в формате:

Буква вершины по порядку <пробел> список инцендентных вершин через пробелы <конец строки>.

Данные могут быть повреждены –

Оценивание

30 баллов – может определить число компонент связности в корректноом списке

40 баллов – может определить число компонент связности или некорректность данных

50 баллов – выводит в виде списка все компоненты связности

Задача №4

Программа получает взвешенный граф в виде файла с матрицей смежности.

Построить его минимальное остовное дерево, т.е вывести его матрицу смежности, либо предупредить о несвязности графа.

Оценивание

30 баллов – иногда ошибается

40 баллов – строит, но не минимальное

50 баллов – строит минимальное.