древнейших шифров разработал Полибий (III ст. к н.е.) - греческий историк, полководец, государственный деятель. В шифре, который назвали “квадрат Полибия”, каждая буква алфавита (или пара букв, соответствующих близким по произношению звукам) содержится в таблице. Во время кодирования сообщения каждая буква заменяется парой чисел номерами столбца и строки таблицы, на пересечении которых она размещена. Для кодирования сообщений на английском языке может быть использована таблица.
Слово CODE в закодированном виде 31 43 41 51
Входные данные:
В первой строке файла polybius.dat записано целое число N (0<N<100). В следующих N строках через пробел записано целое число L - длина слова (0<L<256) и шифры букв с данной таблицы Полибия.
Выходные данные:
файл polybius.sol нужно вывести декодируемые слова заглавными латинскими буквами, каждое в отдельной строке в той же последовательности, как они записаны в файле polybius.dat.
Примеры
Входные данные Выходные данные
2
4 22 43 43 41
4 13 54 31 52 GOOD
LUCK
Задача B. "День рождения"
Пес Шарик любит рыбные котлеты. На свой День рождения он решил всех угостить друзей рыбными котлетами. Пес посчитал, что ему нужно N рыбин. (0<N<1000). Пес - рыбак со стажем, поэтому каждый день он совершенствуется и ловит на S (0<S<N) рыбин больше, чем в предыдущий день. В первый день пес традиционно ловит K (0<K<N) рыбин. Но кот Матроскин любит живую рыбу и всегда съедает половину улова за день. Если количество рыб в улове за день нечетное, тогда кот съедает меньше на одну рыбину чем оставляет. Зная привычку кота, пес Шарик пытается определить за сколько дней до дня рождения ему нужно отправиться на рыбалку, чтобы наловить нужное количество рыбин и не поссориться с котом - главным гостем на его дне рождения.
Входные данные:
В стандартном входном потоке через пробел записано три целых числа N, S, K.
Выходные данные:
В стандартный выходной поток вывести наименьшее число дней, которые нужны псу, чтобы наловить необходимое количество рыбин и не поссориться с котом.
Примеры
Входные данные Выходные данные
20 2 3 5
Задача С. "Сервер"
На сервере хранится информация о работе клиентов в сети. Информация записывается в следующем виде: первые четыре числа указывают адрес с которой обращается программа-клиент, а следующие четыре - по какому адресу обращается. Нужно установить адрес самого активного клиента и адреса всех ресурсов к которым он обращался. Гарантированно, активный только один.
Входные данные:
В стандартном входном потоке в первой строке записано целое число N (0<N<1000) в следующих N строках по восемь целых чисел, значение которых от 0 до 255.
Выходные данные:
В стандартный выходной поток в первой строке нужно вывести четыре числа через точку (адрес самого активного клиента) и в следующей строке подряд 15 символов "-", в следующих строках - количество обращений, пробел, символ "-", пробел и адрес. Адреса посещение выводить по убыванию количества посещений, а если одинаковое количество посещений нужно выводить в порядке возрастания адреса.
Примеры
Входные данные Выходные
2 - 46.63.83.191
1 - 46.63.83.192
1 - 46.63.83.193
и их количество возрастает на 1 с уменьшением от единственного крупнейшего корабля и заканчивая одноклеточными кораблями. Например, если P=4, тогда количество кораблей 10. 1 корабль – 4 клетки, 2 корабля по 3 клетки, 3 корабля по 2 клетки 4 корабля по 1 клетке.
Зная координаты расположения кораблей и шаг N-1 нужно рассчитать наименьшее количество ходов, которая позволит поразить все корабли хотя бы один раз. Шаг выстрелов начинается от левого верхнего угла игрового поля – ячейки с координатами 1 1, то есть ячейки 1 N-1 . При достижении края игрового поля шаги отсчитываются пробел записаны два целых числа N, P.
В следующих строках через пробел записано по четыре целых числа – координаты расположения кораблей, координаты его начала и конца (x1<=x2, y1<=y2).
Выходные данные:
файл battleship.sol нужно вывести единственное число – количество выстрелов.
Примеры
Входные данные Выходные данн
Дано прямоугольную таблицу размером N на M (0<N, M<50). В некоторых ячейках таблицы записано число 0, а в некоторых -1. 0 – ячейка свободна и в нее можно переместиться, -1 – ячейка с препятствием и телепортироваться в эту ячейку нельзя. Ваша задача-найти наименьшее число шагов между указанными ячейками. За один шаг можно двигаться только в соседние горизонтальные или вертикальные ячейки, не допускается диагональный движение. Нумерация строк и столбцов таблицы начинается с 1.
Входные данные:
В стандартном входном потоке в первой строке через пробел вводятся два числа N M. Во второй строке через пробел записаны координаты начальной и конечной ячеек. В следующих N строках через пробел записано по M чисел 0 или -1.
Выходные данные:
В стандартный выходной поток вывести наименьшее количество шагов для перемещения из одной ячейки в другую. Если пути не существует, необходимо вывести слово No
Вответ:
Кто-то создает программное обеспечение с открытым исходным кодом, а я провожу много времени размышляя над тем, как сделать программное обеспечение лучше. Бесконечный поток о на форумах Stack Overflow, GitHub, Slack, в электронных письмах и личных сообщениях неизбежен. К счастью, в итоге вы знаете многих людей, которые добились определенного успеха и сделали фантастические вещи, и знание о том, что вы приняли в этом участие благодаря вам и вашей , является хорошей мотивацией для новых достижений.
У вас возникает вопрос: какие качества программного обеспечения приводят разработчика к успеху или к неудаче? Как я могу улучшить свой софт и бо́льшему количеству людей стать успешным? Я могу ясно сформулировать некоторые основные принципы или полагаюсь на интуицию в зависимости от конкретного случая? (Рождение и воплощение одной мысли это два совершенно разных действия).
Возможно это что-то вроде принципов Дитера Рамса качественному дизайну программного обеспечения?
Хороший проект является инновационным.
Хороший проект делает продукт полезным.
Хороший проект эстетичен.
Хороший проект делает продукт понятным.
Хороший проект ненавязчив.
Хороший проект честен.
Хороший проект длителен.
Хороший проект продуман до мельчайших деталей.
Хороший проект безвреден для окружающей среды.
В хорошем проекте дизайна настолько мало, насколько это возможно.
Общая картина, вероятно, является более важной, чем то, о чём я сегодня пишу, но я знаю, что ее "советы" иногда непрактичны или вовсе неприменимы, или, чего хуже, являются трюизмами. Это как сказать: "Сделай это настолько просто, насколько возможно, но не слишком простым". ("Make it as simple as possible, but no simpler". Оригинал прим.). Понятное дело, что все мы хотим, чтобы вещи были более простыми. Но иногда мы не знаем, что именно нужно сделать для достижения данной цели.
И даже если у Вас сложилось правильное "общее представление" о том, что вы делаете, нет никакой гарантии того, что Ваш проект будет успешен. Методы претворения идеи в жизнь имеют такое же важное значение, как и сама идея. Дьявол кроется в деталях.
Я не могу дать эффективный универсальный совет, но, возможно, существует менее другой путь. Вдохновили меня Томас Грин и Мэриан Петре, чьи “когнитивные размерности” определяют набор “дискуссивных инструментов”, для “повышения уровня дискурса” о пригодности таких "информационных артефактов", как код.
Абстрактный градиент;
Близость отображения;
Последовательность;
Размытость;
Склонность к ошибкам;
Сложные умственные операции;
Скрытые зависимости;
Преждевременное обязательство;
Прогрессивная оценка;
Ролевая выразительность;
Вторичное обозначение;
Вязкость;
Видимость.
Ни одна платформа не является совершенной. Она (какая-то абстрактная платформа) была создана для изучения визуальной среды программирования, и в некоторых случаях для специфических приложений. (Рассмотрим ситуацию, которая моделирует наблюдение всего кода одновременно. Любое программное обеспечение сегодня достаточно маленькое, для того, чтобы быть видимым во всей полноте на одном экране? Возможно модульный принцип был бы лучше?). Я считаю, что трудно присвоить некоторые проблемы юзабилити той или иной размерности. (Как скрытые зависимости, так и ролевая выраженность (role-expressiveness) предусматривают, что при этого кода будет делаться нечто иное, отличающееся от того, что делалось раньше). Тем не менее, это хорошая пища для размышлений о “когнитивных последствиях” проектирования программного обеспечения.
Я не буду определять "общие рамки". Но у меня действительно есть некоторые наблюдения, которыми я хотел бы поделиться, и это столь же подходящее время, как и любое другое, для выполнения апостериорной рационализации года: примерно столько я потратил на D3 4.0.
Я не возвращаюсь к “крупномасштабному” проекту D3. Я вполне доволен такими понятиями, как соединение данных, масштабы и разметки, отдельные от визуального представления. Здесь также есть интересное исследование и это не последний мой фокус. Я разбиваю D3 на модули чтобы сделать его пригодным для использования в большем количестве приложений, чтобы его было проще расширить для остальных приложений, и проще разрабатывать — но, в процессе работы с ним. я также выявляю и фиксирую большое количество дефектов и недостатков API. Эти вещи легко можно упустить из виду, но в то же время, они во многом ограничивают действия людей.
Иногда я переживаю о том, что данные изменения тривиальны, особенно если рассматривать их индивидуально. Я надеюсь, что смогу убедить Вас в обратном. Я волнуюсь, потому что я думаю, что мы (т.е. люди, которые пишут программное обеспечение) склонны недооценивать юзабилити интерфейсов программирования, вместо этого рассматривая более объективные качества, которые проще измерить: функциональность, производительность, правильность.
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Викреслити букви , що повторюються отримаеться назва обекта презентацii ж с о л к а в н ж б й б о к н в д