Сравниваем 2 строки на одинаковые буквы
Для сравнения двух строк на одинаковые буквы можно использовать стандартную функцию strcmp() из библиотеки.
В данном примере две строки "hello" и "holle" сравниваются на одинаковые буквы. Функция strcmp() возвращает 0, если строки совпадают, и любое другое число, если строки не совпадают. Если строки содержат одинаковые буквы, выводится сообщение "Строки содержат одинаковые буквы", иначе - "Строки содержат разные буквы".
Для сравнения двух строк на одинаковые буквы можно использовать стандартную функцию strcmp() из библиотеки.
В данном примере две строки "hello" и "holle" сравниваются на одинаковые буквы. Функция strcmp() возвращает 0, если строки совпадают, и любое другое число, если строки не совпадают. Если строки содержат одинаковые буквы, выводится сообщение "Строки содержат одинаковые буквы", иначе - "Строки содержат разные буквы".
Числа с плавающей точкой для гуманитариев. Что это такое и как они работают
На данную тему уже написано большое количество статей, однако многие из них используют пугающие математические формулы и нотации, что может быть сложно для понимания новичкам. В этой статье автор простым языком попытался раскрыть данную тему и помочь решить ряд вопросов.
Читать статью
На данную тему уже написано большое количество статей, однако многие из них используют пугающие математические формулы и нотации, что может быть сложно для понимания новичкам. В этой статье автор простым языком попытался раскрыть данную тему и помочь решить ряд вопросов.
Читать статью
Алгоритмы компрессии данных: принципы и эффективность
В современном информационном обществе объем данных стремительно растет, и с каждым годом все больше информации генерируется и обрабатывается. В связи с этим важным аспектом стало умение эффективно управлять данными, чтобы не только сохранить информацию, но и оптимизировать ее использование и передачу. Одним из основных инструментов для достижения этой цели является компрессия данных.
Читать статью
В современном информационном обществе объем данных стремительно растет, и с каждым годом все больше информации генерируется и обрабатывается. В связи с этим важным аспектом стало умение эффективно управлять данными, чтобы не только сохранить информацию, но и оптимизировать ее использование и передачу. Одним из основных инструментов для достижения этой цели является компрессия данных.
Читать статью
🔥 Шаблоны и метапрограммирование в C++
Урок для тех, кто уже чётко понимает что такое ООП, может отличить инкапсуляцию от сокрытия данных и знает что такое полиморфизм.
Здесь вы узнаете про шаблоны, как это представляет себе язык, про явную и частную специализацию, про паттерн Singleton.
Смотреть видео
Урок для тех, кто уже чётко понимает что такое ООП, может отличить инкапсуляцию от сокрытия данных и знает что такое полиморфизм.
Здесь вы узнаете про шаблоны, как это представляет себе язык, про явную и частную специализацию, про паттерн Singleton.
Смотреть видео
YouTube
Курс по ООП в С++: шаблоны и метапрограммирование
Курсы по программированию: https://clck.ru/37iG2b
Потренироваться проходить собеседования: https://clck.ru/3C2CY3
Присоединиться к моему сообществу: https://boosty.to/vladimir_balun
Консультации:
https://getmentor.dev/mentor/vladimir-balun-191
https://s…
Потренироваться проходить собеседования: https://clck.ru/3C2CY3
Присоединиться к моему сообществу: https://boosty.to/vladimir_balun
Консультации:
https://getmentor.dev/mentor/vladimir-balun-191
https://s…
🔥 Теоретический минимум по Computer Science
Computer Science рассказывает о том, как работает компьютер, что такое двоичная система, что за структуры данных и как их использовать.
Это видео — база по Computer Science, которую должен знать каждый программист. Здесь про блок схемы, вентили и работу двоичных систем.
Смотреть видео
Computer Science рассказывает о том, как работает компьютер, что такое двоичная система, что за структуры данных и как их использовать.
Это видео — база по Computer Science, которую должен знать каждый программист. Здесь про блок схемы, вентили и работу двоичных систем.
Смотреть видео
Узнаем сколько лет человеку по дате его рождения
В этом коде мы запрашиваем у пользователя его дату рождения, а затем получаем текущую дату с помощью функции time. Затем мы используем структуру tm для извлечения года, месяца и дня из текущей даты и вычисляем количество полных лет с помощью формулы now->tm_year + 1900 - year. Если текущий месяц и день меньше, чем месяц и день рождения, мы уменьшаем возраст на 1. Наконец, мы выводим результат на экран.
#код
В этом коде мы запрашиваем у пользователя его дату рождения, а затем получаем текущую дату с помощью функции time. Затем мы используем структуру tm для извлечения года, месяца и дня из текущей даты и вычисляем количество полных лет с помощью формулы now->tm_year + 1900 - year. Если текущий месяц и день меньше, чем месяц и день рождения, мы уменьшаем возраст на 1. Наконец, мы выводим результат на экран.
#код
📚Очередной #дайджест статей:
👉Малоизвестные возможности языка C
👉Параллельный метод сортировки массива std::thread
👉Первый проект длиною в полтора года…
👉Волновой алгоритм
👉Почему язык C никогда не помешает вам совершать ошибки
👉Автоматический обход блокировок
👉Все, что вы никогда не хотели знать о CMake (Redux)
👉Малоизвестные возможности языка C
👉Параллельный метод сортировки массива std::thread
👉Первый проект длиною в полтора года…
👉Волновой алгоритм
👉Почему язык C никогда не помешает вам совершать ошибки
👉Автоматический обход блокировок
👉Все, что вы никогда не хотели знать о CMake (Redux)
Пользуетесь ли вы какими-либо иностранными новостными ресурсами по программированию на регулярной основе? Если да, то какими?
#интерактив
#интерактив
Важно: правила площадки❗️
1️⃣ За спам, рекламу, ботоводство, скам — бан и удаление всех комментариев
2️⃣ За оскорбления группы/канала/админа/других участников, политические дебаты — первый раз удаление, второй раз — профилактический бан на неделю, третий раз — бан
3️⃣ За ссылки на нелегальные ресурсы — первый раз удаление, второй раз — бан
Напоминаем, что написать нам можно сюда: @proglibrary_feedback_bot
Пожалуйста, соблюдайте правила — мы со своей стороны тоже будем стараться максимально оперативно модерировать комментарии.
1️⃣ За спам, рекламу, ботоводство, скам — бан и удаление всех комментариев
2️⃣ За оскорбления группы/канала/админа/других участников, политические дебаты — первый раз удаление, второй раз — профилактический бан на неделю, третий раз — бан
3️⃣ За ссылки на нелегальные ресурсы — первый раз удаление, второй раз — бан
Напоминаем, что написать нам можно сюда: @proglibrary_feedback_bot
Пожалуйста, соблюдайте правила — мы со своей стороны тоже будем стараться максимально оперативно модерировать комментарии.
Как сделать увлекательное видео по программированию
Создание скринкаста может стать для вас отличным способом поделиться своими знаниями и помочь другим разработчикам в вашей команде. Однако не все видеоуроки одинаково эффективны. В этом руководстве описано, как создавать увлекательные и информативные видеоролики по программированию, которые произведут впечатление на ваших коллег.
Читать статью
Создание скринкаста может стать для вас отличным способом поделиться своими знаниями и помочь другим разработчикам в вашей команде. Однако не все видеоуроки одинаково эффективны. В этом руководстве описано, как создавать увлекательные и информативные видеоролики по программированию, которые произведут впечатление на ваших коллег.
Читать статью
#вопросы_с_собеседований
Что такое Undefined behavior?
Undefined behavior — это непредсказуемое поведение программы, которое происходит, когда в коде содержится операция, которая не определена стандартом языка.
Такое поведение может возникнуть, когда код пытается обратиться к неопределенной переменной, делить на ноль, выходить за пределы массива или выполнять другие операции, которые противоречат правилам языка.
Ошибки в таком коде могут проявляться разнообразными способами, включая прекращение работы программы, непредсказуемые выходные данные, повреждение памяти или даже повреждение операционной системы. Избегайте Undefined behavior в своем коде, чтобы обеспечить надежность и безопасность системы.
Что такое Undefined behavior?
Что такое rvalue, lvalue?
lvalue — это всё, что имеет имя, rvalue — это то, что имени не имеет. Исторически сложились такие названия, потому что lvalue всегда было то, что писалось с левой стороны присваивающего выражения, а rvalue — это то, что появлялось только справа от этого выражения.
#код
lvalue — это всё, что имеет имя, rvalue — это то, что имени не имеет. Исторически сложились такие названия, потому что lvalue всегда было то, что писалось с левой стороны присваивающего выражения, а rvalue — это то, что появлялось только справа от этого выражения.
#код
Пишем простые крестики-нолики на C++
В этой статье напишем классические крестики-нолики на двух игроков. Так как в каждой такой статье мы должны учиться чему-то новому, то на этот раз познакомимся с тернарными операторами и сразу же применим их на практике. Как всегда в конце будет ряд идей по тому, как можно улучшить игру.
Смотреть статью
В этой статье напишем классические крестики-нолики на двух игроков. Так как в каждой такой статье мы должны учиться чему-то новому, то на этот раз познакомимся с тернарными операторами и сразу же применим их на практике. Как всегда в конце будет ряд идей по тому, как можно улучшить игру.
Смотреть статью
Telegraph
Пишем простые крестики-нолики на C++
Продолжаю небольшой цикл статей про простые проекты, которые будут полезны новичкам. В прошлый раз мы написали BlackJack в упрощенном виде, а в этой статье напишем классические крестики-нолики на двух игроков. Так как в каждой такой статье мы должны учиться…
Расскажите, какие YouTube-каналы смотрите по тематике программирования?
#интерактив
#интерактив
Вышмат для тех, кто интересуется DS, ML, AI
👉 Подробности – https://proglib.io/w/6426c2a6
Как говорят наши студенты «Я понимаю, куда движется сфера IT, уже в каждой компании есть отдел, который отвечает за ИИ, эта сфера точно останется востребованной ближайшие 10-15 лет, поэтому сейчасл лучшее время начать учиться»
💰Стоимость?
– Доступна беспроцентная рассрочка от 2 499 рублей в месяц. Или сразу 29 990 рублей.
Как проходит обучение?
– Записанные лекции от преподавателей МГУ
– Домашние задания и развернутая обратная связь
– Чат с куратором и студентами
Когда можно приступать?
– В любой момент
Оставить заявку на пробную версию курса «Математика для Data Science» – https://proglib.io/w/6426c2a6
👉 Подробности – https://proglib.io/w/6426c2a6
Как говорят наши студенты «Я понимаю, куда движется сфера IT, уже в каждой компании есть отдел, который отвечает за ИИ, эта сфера точно останется востребованной ближайшие 10-15 лет, поэтому сейчасл лучшее время начать учиться»
💰Стоимость?
– Доступна беспроцентная рассрочка от 2 499 рублей в месяц. Или сразу 29 990 рублей.
Как проходит обучение?
– Записанные лекции от преподавателей МГУ
– Домашние задания и развернутая обратная связь
– Чат с куратором и студентами
Когда можно приступать?
– В любой момент
Оставить заявку на пробную версию курса «Математика для Data Science» – https://proglib.io/w/6426c2a6
std::variant
Это фича C++17, обеспечивающая типобезопасное объединение, позволяющее хранить и манипулировать значениями разных типов в одном объекте. Она является частью стандартной библиотеки C++ и определена в заголовке .
Шаблонный класс std::variant похож на упрощенную версию union, но с дополнительной безопасностью типов и поддержкой различных операций.
Основными функциями std::variant являются index(), valueless_by_exception(), operator=, emplace.
В этом примере мы создаем объект var, который может содержать значения типов int, float или std::string. Мы присваиваем var различные значения и получаем их с помощью std::get.
Однако, если мы попытаемся получить значение, используя неправильный тип (например, std::get(var), когда вариант содержит std::string, это вызовет исключение std::bad_variant_access.
#код
Это фича C++17, обеспечивающая типобезопасное объединение, позволяющее хранить и манипулировать значениями разных типов в одном объекте. Она является частью стандартной библиотеки C++ и определена в заголовке .
Шаблонный класс std::variant похож на упрощенную версию union, но с дополнительной безопасностью типов и поддержкой различных операций.
Основными функциями std::variant являются index(), valueless_by_exception(), operator=, emplace.
В этом примере мы создаем объект var, который может содержать значения типов int, float или std::string. Мы присваиваем var различные значения и получаем их с помощью std::get.
Однако, если мы попытаемся получить значение, используя неправильный тип (например, std::get(var), когда вариант содержит std::string, это вызовет исключение std::bad_variant_access.
#код
Очередной #дайджест по C/C++:
🤖 Внутри boost::concurrent_flat_map
🤖 C++23: следующий стандарт C++
🤖 Конечный автомат с std::variant
🤖 Отчет о поездке: C++ on Sea 2023
🤖 Ограничьте пользовательские конверсии
И пара полезных инструментов:
QGIS — это бесплатная кросс-платформенная (lin/win/mac) географическая информационная система с открытым исходным кодом.
shotcut — кроссплатформенный (Qt), видеоредактор с открытым исходным кодом (GPLv3)
🤖 Внутри boost::concurrent_flat_map
🤖 C++23: следующий стандарт C++
🤖 Конечный автомат с std::variant
🤖 Отчет о поездке: C++ on Sea 2023
🤖 Ограничьте пользовательские конверсии
И пара полезных инструментов:
QGIS — это бесплатная кросс-платформенная (lin/win/mac) географическая информационная система с открытым исходным кодом.
shotcut — кроссплатформенный (Qt), видеоредактор с открытым исходным кодом (GPLv3)
OpenCat — платформа с открытым исходным кодом для разработки четвероногих роботов в стиле Boston Dynamics, которая идеально подходит для STEM, программирования робототехники, приложений для робототехники IoT, сервисов приложений для робототехники с улучшенным ИИ и исследований.
Открыть библиотеку
Открыть библиотеку
Использование выражений сгиба
С C++17 мы можем использовать складывать выражения для объединения последовательности std::arrays, это элегантное и эффективное решение продемонстрировано выше.
#код
С C++17 мы можем использовать складывать выражения для объединения последовательности std::arrays, это элегантное и эффективное решение продемонстрировано выше.
#код
SIMD (Single Instruction Multiple Data)
Это технология, позволяющая одновременно выполнять одну и ту же операцию над несколькими наборами данных. В современных процессорах SIMD-инструкции реализованы для ускорения работы с векторными операциями. В C++ SIMD-инструкции доступны через библиотеку immintrin.h.
В данном примере функция addVectors принимает на вход указатели на три массива a, b и c, каждый из которых содержит 8 элементов типа float. С помощью функции _mm256_loadu_ps происходит загрузка первого и второго векторов в регистры, затем с помощью функции _mm256_add_ps происходит их покомпонентное сложение. Результат сохраняется в третий вектор с помощью функции _mm256_storeu_ps.
#код
Это технология, позволяющая одновременно выполнять одну и ту же операцию над несколькими наборами данных. В современных процессорах SIMD-инструкции реализованы для ускорения работы с векторными операциями. В C++ SIMD-инструкции доступны через библиотеку immintrin.h.
В данном примере функция addVectors принимает на вход указатели на три массива a, b и c, каждый из которых содержит 8 элементов типа float. С помощью функции _mm256_loadu_ps происходит загрузка первого и второго векторов в регистры, затем с помощью функции _mm256_add_ps происходит их покомпонентное сложение. Результат сохраняется в третий вектор с помощью функции _mm256_storeu_ps.
#код