==== Задачи на Март 2020 ==== == Упражнение == Узнайте, какой "сдвиг вправо" используется в Вашем любимом/рабочем языке программирования: переносящий сдвигаемые биты (циклический) дополняющий старшим разрядом у знаковых типов (арифметический) дополняющий нулями === Занятие 1 === == Задача № 1 == Вводится строка. Может ли эта строка быть IP адресом? Вводится строка. Может ли эта строка быть маской подсети? Определить по этим данным адрес сети и номер компьютера в ней. == Задача № 2 == IP-адрес был записан на бумажке, которую разорвали на 4 части. Написать программу, которая по 4-м строкам восстанавливает все возможные IP-адреса === Занятие 2 === == Задача № 1 == Написать программу, которая с помощью побитовых операций переводит десятичные числа * бинарные(двоичные) * восьмиричные * шестнадцатеричные == Задача № 2 == Вводятся последовательно 4 числа. Могут ли они быть частями IP адреса? Вводится строка. Могут ли они быть частями быть маски подсети? Определить по этим данным адрес сети и номер компьютера в ней. === Занятие 3 === Продолжение следует.. ==== Задачи на Январь-Февраль 2020 ==== Декодирование - это действие по восстановлению первоначальной формы представления информации. Для декодирования необходимо знать код и правила кодирования. Средством кодирования и декодирования служит кодовая таблица соответствия. Например, соответствие в различных системах счисления - 24 - XXIV, соответствие алфавита каким-либо символам (Рис. 2). === Занятие 1 (Кодирование) === == Задача №1 == Написать программу, которая - считывает кодировку из произвольного алфавита А, который является подмножеством латинского (английского), в алфавит Х, который также является подмножеством латинского (английского), - получает сообщение в алфавите А - выводит закодированное указанной кодировкой сообщение в кодировке Х == Задача №2 == Написать программу, которая - считывает кодировку из произвольного алфавита А, который является подмножеством латинского (английского), в алфавит Х, который также является подмножеством латинского (английского), - получает сообщение в алфавите Х, предположительно закодированное заданной кодировкой. - выводит декодированное сообщение в алфавите А или предупреждает об ошибке == Задача №3 == Написать программу, которая считывает и проверяет кодировку на условие Фано. ---- === Занятие 2 (Кодирование) === На этом занятии входящий алфавит -- некоторое подмножество латинского, выходной -- 0 и 1. Требуется вывести кодировку, т.е. перечислить все символы входящего алфавита и соответствующие им кодовые слова в выходящем алфавите == Задача №1 == Входящий алфавит А состоит из n первых букв латинского (английского) алфавита. На входе -- число n. По числу n, количеству входящих букв, выдать кодировку, удовлетворяющую критерию Фано == Задача №2 == Входящий алфавит А состоит из n букв латинского (английского) алфавита. На входе -- число n и частичная кодировка в любой форме. Кодировка некоторых букв уже задана. Выдать кодировку для всех букв, удовлетворяющую критерию Фано. == Задача №3 == Входящий алфавит А состоит из n букв латинского (английского) алфавита. На входе -- число n и строка S. Известно слово S в алфавите А, которое мы хотим передать. Предложить кодировку в выходящем алфавите {0, 1}, в которой выходящее сообщение самое короткое. ---- === Занятие 3 (Логика) === == Задача №1 == Написать программу, которая проверяет, для какого имени ложно высказывание: Первая буква гласная \/ Четвертая буква согласная? - Петр - Алексей - Наталья - Елена == Задача №2 == Написать программу, которая проверяет, для какого имени ложно высказывание: (Первая буква имени гласная → Четвертая буква имени согласная). - ЕЛЕНА - ВАДИМ - АНТОН - ФЕДОР ---- ==== Задачи на октябрь 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 баллов -- строит минимальное.