Библиотека задач по C++ | тесты, код, задания
الذهاب إلى القناة على Telegram
Задачи и тесты по C++ для тренировки и обучения. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/7a480301 Для обратной связи: @proglibrary_feeedback_bot
إظهار المزيد5 786
المشتركون
-55924 ساعات
-6 7327 أيام
-14 14430 أيام
أرشيف المشاركات
😎Сишарпист, погрузись в мир встраиваемых систем — программируй микроконтроллеры!
👉Начните на бесплатном вебинаре продвинутого олайн-курса «Программист С» — «Встраиваемые системы и программирование микроконтроллеров»: регистрация
На вебинаре мы:
— проведем обзор различных микроконтроллеров и их характеристик
— рассмотрим проектирование встраиваемых систем от идеи до реализации
— разберем на конкретном примере программирование микроконтроллеров
— сделаем отладку и тестирование встраиваемых систем.
Вебинар будет полезен:
— разработчикам и инженерам, которые интересуются встраиваемыми системами и программированием микроконтроллеров.
🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2Vtzqxjd818
⚙️ Задача Running Sum of 1d Array
Дан массив чисел. Мы определяем текущую сумму массива как RunningSum[i] = sum(nums[0]…nums[i]). В каждой новой ячейке нового массива будет сумма от 0-го элемента и до i-го
#tasks #junior
💡 Решение
class Solution {
public:
vector runningSum(vector& nums) {
vector ans(nums.size());
ans[0] = nums[0];
for (int i = 1; i < nums.size(); i++)
ans[i] = ans[i-1] + nums[i];
return ans;
}
};
⚙️ Найдите нечетное целое число
Напишите функцию, которая принимает массив и находит целое число, которое появляется нечетное количество раз
Подход к решению
- Можно решить с помощью ассоциативного контейнера, просто посчитав количество вхождений
- Также из за того, что нужно найти только одно число то нет необходимости хранить их все, и из-за того, что есть побитовая операция XOR, которая гарантирует, что если дважды применить её к одному и тому же числу, то получится исходное число, можно решить задачу за один проход массива
👉 Find the Odd Integer (edabit)
#junior #tasks
Решение 1
int findOdd(std::vector arr) {
std::map nums;
for (int i = 0; i < arr.size(); ++i) {
nums[arr[i]] += 1;
}
int result = 0;
for (auto num : nums) {
if (num.second % 2 != 0) {
result = num.first;
break;
}
}
return result;
}
Решение 2
int findOdd(std::vector arr) {
int number = 0;
for (auto a : arr) {
number = number ^ a;
}
return number;
}
⚙️ Задач Excel Sheet Column Title (leetcode)
Есть номер столбца columnsNumber, верните соответствующий заголовок столбца, как он отображается в таблице Excel
Пример
Ввод: columnNumber = 1
Вывод: «A»
Ввод: columnNumber = 28
Вывод: «AB»
👉 Excel Sheet Column Title (leetcode)
#junior #tasks
💡Решение
class Solution {
public:
std::string convertToTitle(int n) {
if (n == 0) return «»;
std::string result;
const std::string map = «ABCDEFGHIJKLMNOPQRSTUVWXYZ»;
while (n != 0) {
result.push_back(map[(n — 1) % 26]);
n = (n — 1) / 26;
}
std::reverse(result.begin(), result.end());
return result;
}
};
⚙️ camelCase ⇄ snake_case
Создайте две функции toCamelCase() и toSnakeCase(), каждая из которых принимает одну строку и преобразует ее либо в CamelCase, либо в Snake_case
Подход к решению
- Можно решать с помощью регулярных выражений или посимвольного перебора
👉 camelCase ⇄ snake_case (edabit)
#junior #tasks
💡Решение
std::string toCamelCase(std::string str) {
bool capitalizeNext = false;
std::string camelCaseStr;
for (char c : str) {
if (c == '_') {
capitalizeNext = true;
}
else {
if (capitalizeNext) {
camelCaseStr += toupper(c);
capitalizeNext = false;
}
else {
camelCaseStr += c;
}
}
}
return camelCaseStr;
}
std::string toSnakeCase(std::string str) {
std::ostringstream snakeCaseStr;
for (char c : str) {
if (isupper(c)) {
snakeCaseStr << '_' << static_cast(tolower(c));
}
else {
snakeCaseStr << c;
}
}
return snakeCaseStr.str();
}
🔮 Самые частые суффиксы для алгоритмов
• std::*_n — вместо диапазона значений используется количество
• std::*_if — предикат вместо значения
• std::*_copy — результат копируется в новый структуру данных
👉 Ссылка на список алгоритмов
👩💻 Зачем разработчикам на С++ юнит-тесты и как с ними работать?
Расскажет Андрей Рыжиков — разработчик в НИИ обработки аэрокосмических изображений. Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
▫️напишете юнит-тесты для небольшого полноценного приложения;
▫️найдете ошибки с их помощью;
▫️увидите, как тесты помогают создавать надежные программы и приучают структурировать код;
▫️обсудите стоимость и целесообразность написания тестов, границы их применимости.
Занятие пройдёт 20 февраля в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
📢Зарегистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqwTAdWy🔮 Задача FizzBuzz
Сама по себе задача не сложная для решения, но она очень популярная и поэтому о ней стоит знать
Подход к решению
- Можно решить с помощью операторов ветвления
- Для конвертации int в std::string можно использовать std::to_string(...)
Решение
#include <string>
using namespace std;
string fizzBuzz(int num){
if (num % 3 == 0 and num % 5 == 0) {
return «FizzBuzz»;
} else if (num % 3 == 0) {
return «Fizz»;
} else if (num % 5 == 0) {
return «Buzz»;
} else {
return std::to_string(num);
}
}
🖥 Курс Эффективное использование С++
📚 Лекция 1. Начнем с основ: библиотеки, утилиты, средства разработки и сборка проектов в С++. Присоединяйтесь, чтобы узнать, как максимально эффективно использовать ресурсы вашего проекта!
🔍 Лекция 2. Глубже в тему работы с памятью: избегаем утечек ресурсов с помощью RAII и умных указателей. Узнаем, как управлять памятью без лишних хлопот
➡️ Лекция 3. Переходим к Move semantics, rvalue reference и perfect forwarding. Открываем новые возможности и улучшаем производительность нашего кода
🔄 Лекция 4. Обсудим callbacks: лямбда-выражения, bind и function. Узнаем, как делать наш код более гибким и модульным
🧵 Лекция 5. Многопоточность в C++. Разбираемся с потоками, блокировками, задачами, атомарными операциями и очередями сообщений
💡 Лекция 6. Обзор возможностей современных стандартов C++. Узнаем, какие новшества есть в мире С++ и как они могут улучшить наш код
👉 Ссылка на курс
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»
🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/447880e9
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ
3. Практические задания после лекций
4. Ссылки на дополнительные материалы для самостоятельного изучения
⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/447880e9
💡 Вышла четвёртая часть перевода туториала по Xv6
xv6 — это учебная реализация шестой версии Unix. В ней рассмотрены разные аспекты работы операционных систем. Но, самое полезное здесь заключается в том, что к ней есть список лабораторных работ, которые и дают сильный буст в понимании систем в общем и Linux (Unix) в частности
📚 Сами статьи
• Xv6: учебная Unix-подобная ОС. Глава 1: Интерфейсы операционной системы
• Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы
• Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц
• Xv6: учебная Unix-подобная ОС. Глава 4: Прерывания и системные вызовы
Что будет выведено при запуске кода?
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
📋 Изменение букв
- Создайте функцию, которая изменяет буквы на одну вперед (+1) или назад (-1) в соответствии с массивом
📚 Подход к решению
- Главной целью является познакомиться с ASCII-кодировкой символов
Tweaking Letters (edabit)
#junior #algorithms #tasks
💡Решение
std::string tweakLetters(std::string s, std::vector arr) {
for (size_t i = 0; i < arr.size(); i++)
{
int count = arr[i];
while (count) {
s[i] += count;
if (s[i] < 'a') {
count += 'a' — s[i];
s[i] = 'z';
continue;
}
if (s[i] > 'z') {
count -= s[i] — 'z';
s[i] = 'a';
continue;
}
count = 0;
}
}
return s;
}
Освойте легендарный язык программирования на онлайн-курсе Skillbox «Профессия Разработчик на C++ с нуля». И получите гарантию трудоустройства!
За 7 месяцев вы научитесь:
— Программировать на C++. Изучите синтаксис, циклы, условия и функции языка.
— Работать с базами данных. Освоите язык SQL.
— Использовать Git. Будете работать с распределённой системой контроля версий.
— Понимать принципы объектно-ориентированного программирования. Поймёте, как работать с объектами и классами.
— Разрабатывать микросервисы. Будете разрабатывать сложные программы из разных независимых компонентов.
— Создавать игры для UE4. Научитесь создавать арканоиды и шутеры для движка Unreal Engine.
Узнать подробнее о курсе и получить скидку до 50% можно здесь: https://epic.st/PBbtAP
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Каким будет результат следующего фрагмента кода на C++?
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
