Почему числовые типы данных в C имеют такой размер?

Каждый программист, которому приходилось писать на C или C-подобных языках, наверняка сталкивался с тем, что размер переменных одного и того же типа на разных машинах может быть различным. Немного разобравшись…

Обложка поста

Факты из истории компьютерного оборудования

Все мы используем персональные компьютеры и принимаем их как должное в нашей повседневной жизни. Достаточно легко забыть, что компьютеры окружают нас только последние несколько десятилетий, и первые из них были…

Обложка поста

Типы языков программирования

Для погружения в программирование нужно всего 3 вещи: Решить, с какого языка/технологии вы хотите начать. Решить, на каком ресурсе вы хотите обучаться. Выделить время на само программирование. Звучит просто, однако…

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

Под корректными комбинациями пар будем понимать правильно открытые и закрытые скобки. На вход подаётся число пар скобок, на выходе должны быть все возможные их комбинации в виде набора строк. Первая…

Обложка поста

11 навыков, которыми вы должны овладеть, чтобы зарабатывать по $100 тысяч в год, будучи инженером в Google

Инженеры в Google очень востребованы, и им платят соответственно. Так, например, стажеры в этой компании получают от 70 до 90 тысяч долларов в год, в то время как разработчики программного…

Идея и создание веб-приложения Br.Asst. — Browser assistant

В век постоянного и частого выхода обновлений для различных браузеров информационным системам нельзя от них отставать. Для контроля версий и регулярного обновления веб-обозревателей команда CHEERS! Unlimited решила создать Br.Asst…

asst

Величайшая программа из когда-либо написанных

Как вы думаете, какую из существующих программ можно назвать самой великой? Можете ли вы сказать про одну из своих программ, что она круче всех остальных? Есть мнение и, прямо скажем, далеко не…

Обложка поста

Алгоритм, который генерирует целое число, отсутствующее в файле

Дан входной файл, содержащий четыре миллиарда целых 32-битных чисел. Предложите алгоритм, генерирующий число, отсутствующее в файле. Имеется 1 Гбайт памяти для этой задачи. Дополнительно: а что если у вас всего 10 Мбайт?

Как обрабатывать JSON в командной строке

Какой-нибудь инструмент для работы с json в командной строке был бы удобен при отладке REST API. Можно делать запрос, получать ответ и сразу же разбирать его, выделяя нужные объекты и…

Самые типичные ошибки и вопросы, связанные с Git, и удобные способы их решения

Если вы хотите получше узнать те части Git, про которые раньше боялись спросить, то этот список для вас. Тут собраны наиболее типичные ситуации и способы их решения как из личного…

Обложка поста

Моделирование поведения жидкости в ASCII

Небольшая программка, моделирующая поведение жидкости в ASCII-режиме и терминале 80×25 символов.

Верблюжья нотация или нижние подчёркивания: научный подход

Если по странному стечению обстоятельств вы программист, который не беспокоится, использовать ли верблюжий регистр или нижние подчёркивания для обозначения переменных, то пришло время определиться. Постарайтесь выбрать независимо от соглашений по…

Обложка поста

Логическая задача на расставление костей домино на шахматной доске

Дана шахматная доска размером 8×8, из которой были вырезаны два противоположных по диагонали угла, и 31 кость домино; каждая кость домино может закрыть два квадратика на поле. Можно ли вымостить…

Обложка поста

«Магия. Не трогать», — и другие забавные комментарии, которые встречались в реальном коде

«Когда я писал этот код, только Бог и я понимали, что он означает. Теперь понимает только Бог.» По поводу авторства этой цитаты проводилось целое расследование. «Посвящаю этот код и всю мою…

Обложка поста

20 самых непопулярных вопросов на StackOverflow

Не все вопросы на StackOverflow находят поддержку. Иногда люди сами не понимают, что спрашивают, временами задают отвлечённые вопросы, а порой просят решить простую студенческую задачку или просто спрашивают глупости. Список вопросов…

8cc — компилятор языка C

8cc — это компилятор для языка С. Он поддерживает все особенности С11 и вместе с тем его код настолько небольшой и простой, насколько это возможно. Исходный код есть на GitHub, или…

Почему динамические языки программирования создают трудности при сопровождении больших объемов кода

Евгений Брикман — ведущий разработчик Play Framework для LinkedIn сказал в видео-презентации, записанной на JaxConf 2013, что большие кодовые базы труднее поддерживать, если они написаны на динамических языках. На одном…

Forbes: список лучших языков, чтобы познакомиться с ними за месяц

8 вариантов провести месяц с пользой и встать на путь к своему будущему Месяц программирования принесёт огромную пользу независимо от того, какой язык выбрать. Но с учётом ваших интересов, попробуйте один из следующих:…

Пример конфигурации для Vim

Простая конфигурация для Vim от Anthony Martinez, учитывающая работу с C++, C, Matlab, Markdown и просто редактирование текста.

Логическая задача на взвешивание

Дано 20 баночек с таблетками. В 19 баночках лежат таблетки весом 1 г, а в одной — весом 1.1 г. Даны весы, показывающие точный вес. Как за одно взвешивание найти…

Обложка поста

Безопасность потоков в С++

Допустим, вы пишете конвейер, в котором 2 потока, используя общий буфер, обрабатывают данные. Поток-producer эти данные создает, а поток-consumer их обрабатывает (Producer–consumer problem). Следующий код представляет собой самую простую модель:…

Обложка поста
Обложка поста

Выбор оптимальных DNS-серверов

Да, мы знаем, на что это похоже, но сейчас мы расскажем вам, как «ускорить Интернет». В некоторых случаях скорость ответа DNS-серверов может значительно влиять на время загрузки страниц. Дело в…

Обложка поста

Методы, реализующие операции умножения, вычитания и деления целых чисел, используя только оператор суммирования

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

Обложка поста

Приключения в Android: уведомления пользователей

Позвольте мне рассказать вам одну историю. В Spire мы постоянно создаем и поддерживаем передовые платформы. И это учитывая то, что наша команда состоит всего лишь из 4 разработчиков и одного…

Реализации echo.c в разных ОС

Команда echo в Unix предназначена для отображения строки текста. Она просто выводит текст на стандартное устройство вывода. Далее представлена небольшая подборка реализаций этой команды на языке С в различных ОС.

История синтаксического анализа

В настоящее время все процессы, где применяется синтаксический анализ, используют парсеры — программы для проведение визуального или программно-автоматизированного синтаксического и лексического анализа или разбора какого-либо документа с целью извлечения из него…

Написание ИИ для хоккея. Часть 3

Этот урок является заключительным в своей серии. Прежде, чем читать эту часть, советуем взглянуть на первую и вторую части. На этот раз мы улучшим искусственный интеллект наших игроков так, чтобы…

Учимся правильно оформлять код на C на примере open source проектов

В каждом проекте есть свои соглашения по написанию и оформлению кода. Некоторые менеджеры ограничиваются только базовыми правилами, некоторые составляют подробные списки рекомендаций. В некоторых проектах правил оформления кода нет совсем…

Обложка поста

Работа виртуальных функций в C++

Виртуальная функция определяется vtable (виртуальной таблицей). Если какая-либо функция класса объявлена как виртуальная, создастся vtable, которая хранит адреса виртуальных функций этого класса. Для всех таких классов компилятор добавляет скрытую переменную…

Обложка поста

Где вы будете плыть быстрее — в воде или сиропе?

Исаак Ньютон и Христиан Гюйгенс обсуждали этот вопрос в 1600-е годы, но так и не дали на него исчерпывающий ответ. Три столетия спустя два химика из Университета Миннесоты, Брайан Геттельфингер…

Напишите метод, который будет подсчитывать количество цифр «2», используемых в записи чисел от 0 до n (включительно)

Как всегда, сначала мы попробуем решить задачу «в лоб».

Написание ИИ для хоккея. Часть 2

Прежде чем читать эту часть, советуем вам взглянуть на предыдущий урок. А в этой статье мы продолжим реализацию искусственного интеллекта для игры в хоккей с использованием «рулевого поведения» (steering behaviors)…