bool isEven(int x) {
return !(x & 1);
}«Один бит — вся правда. Код для дзен-программистов.»
bool isEven(int x) {
const bool table[] = {true, false, true, false, true, false, true, false};
return table[abs(x) % 8];
}«Табличный метод древних шумеров. 8 значений хватит всем.»
bool isEven(int x) {
int sum = 0;
unsigned int ux = abs(x);
while (ux) {
sum += ux & 1;
ux >>= 1;
}
return !(sum % 2);
}«Считаем единички как настоящие боги битов.»
bool isEven(int x) {
if (x == 0) return true;
if (x == 1) return false;
return isEven(x - 2);
}«Рекурсия — это когда функция вызывает себя, чтобы спросить: "Ну чётное или нет?"»
bool isEven(int x) {
return !(x % 2) ? !(0) : !(1);
}«Логика двойного отрицания для истинных джедаев.»
bool isEven(int x) {
int evens[] = {0,2,4,6,8,10,12,14,16,18,20};
for (int i = 0; i < 11; i++) {
if (abs(x) == evens[i]) return true;
}
return false;
}«Таблица чётности до 20. Для чисел больше — не гарантируем.»
template<int N>
struct EvenChecker {
static constexpr bool value = !(N % 2);
};
bool res = EvenChecker<42>::value;
«Шаблоны времени компиляции для тех, кто считает чётность ещё до запуска программы.»
В контексте рубрики «Кодим на C/C++» раздаём ценные советы в комментариях. С каждого подписчика — по совету!
#программирование #C #cpp #задачи #computer_science #разбор_задач
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65🔥25❤23🤯7👻7👨💻5🤨4😱2🗿2😨1🆒1
📚 Подборка книг по C++ от Бьёрне Страуструпа
Страуструп представляет возможности C++ в контексте поддерживаемых ими стилей программирования, таких как объектно-ориентированное и универсальное программирование. Его экскурсия на удивление обширна. Освещение начинается с основ, затем широко распространяется по более продвинутым темам, уделяя особое внимание новым языковым возможностям. В этом издании рассматриваются многие новые функции C++20, реализованные основными поставщиками C++, включая модули, концепции, сопрограммы и диапазоны. В нем даже представлены некоторые используемые в настоящее время библиотечные компоненты, включение которых в стандарт не запланировано до C++23.
💾 Скачать книги
Это авторитетное руководство не ставит своей целью научить вас программировать (об этом читайте в книге Страуструпа "Программирование: принципы и практика использования C++", второе издание), и оно не будет единственным ресурсом, который вам понадобится для овладения C++ (об этом читайте в книге Страуструпа "Язык программирования C++", четвертое издание). Издание и рекомендуемые онлайн-источники). Однако, если вы программист на C или C++, желающий лучше познакомиться с текущим языком C++, или программист, разбирающийся в другом языке, желающий получить точное представление о природе и преимуществах современного C++, вы не найдете более короткого или простого введения.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
Страуструп представляет возможности C++ в контексте поддерживаемых ими стилей программирования, таких как объектно-ориентированное и универсальное программирование. Его экскурсия на удивление обширна. Освещение начинается с основ, затем широко распространяется по более продвинутым темам, уделяя особое внимание новым языковым возможностям. В этом издании рассматриваются многие новые функции C++20, реализованные основными поставщиками C++, включая модули, концепции, сопрограммы и диапазоны. В нем даже представлены некоторые используемые в настоящее время библиотечные компоненты, включение которых в стандарт не запланировано до C++23.
💾 Скачать книги
Это авторитетное руководство не ставит своей целью научить вас программировать (об этом читайте в книге Страуструпа "Программирование: принципы и практика использования C++", второе издание), и оно не будет единственным ресурсом, который вам понадобится для овладения C++ (об этом читайте в книге Страуструпа "Язык программирования C++", четвертое издание). Издание и рекомендуемые онлайн-источники). Однако, если вы программист на C или C++, желающий лучше познакомиться с текущим языком C++, или программист, разбирающийся в другом языке, желающий получить точное представление о природе и преимуществах современного C++, вы не найдете более короткого или простого введения.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
👍30❤15🔥6❤🔥1
📚 Книги C++ Бьёрн Страуструп.zip
180.8 MB
📚 Подборка книг по C++ от Бьёрне Страуструпа
📘 Язык программирования C++ [2013] Бьёрн Страуструп
«Библия C++». Классическое 4-е издание. Полное описание языка (C++11), стандартной библиотеки, идиом. Для профессионалов, кто хочет понимать язык «из первых рук». Объём — под 1400 страниц.
📕 Программирование. Принципы и практика с использованием C++ (2е издание) [2016]
Учебник для новичков, написанный творцом языка. Не про «синтаксис за 21 день», а про инженерное мышление, алгоритмы и архитектуру. Старт с нуля, но быстро выходит на серьезный уровень.
📗 A Tour of C++ Second Edition [2018]
«Карманный Страуструп» на английском. Кратчайший обзор возможностей C++ (до C++17) для опытных программистов. Помогает освежить язык после Java/Python или быстро въехать в современный C++.
📔 Язык программирования С++. Краткий курс. 2-е издание [2019]
Сокращённая версия «библии» (2013). Убраны исторические отступления и редко используемые детали. Сфокусирован на C++11/14. Отличный настольный справочник для ежедневной работы.
📙 Язык программирования С++. Специальное издание [2019]
Осторожно: это русский перевод классического 3-го издания (1997, C++98) + доп. главы. Не про современный C++. Полезно разве что для поддержки легаси кода или изучения эволюции языка.
📓 Дизайн и эволюция языка C++ [2007]
Не учебник, а история создания языка. Почему сделали так, а не иначе? Разбор спорных решений, ошибок, компромиссов. Для фанатов IT-истории и тех, кто проектирует свои языки.
📒 Экскурсия по C++, 3-е издание [2023]
Самый свежий обзор. Актуальный C++20/23. Компактно (300 стр), ёмко и современно. Идеально, если вы знаете другой язык и хотите быстро начать писать на современном C++. Замена книге «A Tour of C++» на русском.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
📘 Язык программирования C++ [2013] Бьёрн Страуструп
«Библия C++». Классическое 4-е издание. Полное описание языка (C++11), стандартной библиотеки, идиом. Для профессионалов, кто хочет понимать язык «из первых рук». Объём — под 1400 страниц.
📕 Программирование. Принципы и практика с использованием C++ (2е издание) [2016]
Учебник для новичков, написанный творцом языка. Не про «синтаксис за 21 день», а про инженерное мышление, алгоритмы и архитектуру. Старт с нуля, но быстро выходит на серьезный уровень.
📗 A Tour of C++ Second Edition [2018]
«Карманный Страуструп» на английском. Кратчайший обзор возможностей C++ (до C++17) для опытных программистов. Помогает освежить язык после Java/Python или быстро въехать в современный C++.
📔 Язык программирования С++. Краткий курс. 2-е издание [2019]
Сокращённая версия «библии» (2013). Убраны исторические отступления и редко используемые детали. Сфокусирован на C++11/14. Отличный настольный справочник для ежедневной работы.
📙 Язык программирования С++. Специальное издание [2019]
Осторожно: это русский перевод классического 3-го издания (1997, C++98) + доп. главы. Не про современный C++. Полезно разве что для поддержки легаси кода или изучения эволюции языка.
📓 Дизайн и эволюция языка C++ [2007]
Не учебник, а история создания языка. Почему сделали так, а не иначе? Разбор спорных решений, ошибок, компромиссов. Для фанатов IT-истории и тех, кто проектирует свои языки.
📒 Экскурсия по C++, 3-е издание [2023]
Самый свежий обзор. Актуальный C++20/23. Компактно (300 стр), ёмко и современно. Идеально, если вы знаете другой язык и хотите быстро начать писать на современном C++. Замена книге «A Tour of C++» на русском.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
👍47🔥18❤16❤🔥4🤩2🤝2👨💻1
📚_2_хороших_книги_по_C++_и_Java_от_автора_Роберта_Лафоре.zip
39.4 MB
📗 Объектно-ориентированное программирование в C++, 4-е изд [2004] Роберт Лафоре
Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам. Читатель может вообще не иметь подготовки в области языка С++. Необходимо лишь знание начальных основ программирования.
📘 Структуры данных и алгоритмы JAVA. 2-е издание [2013] Роберт Лафоре
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике освоить полученные знания. Рассматриваемые примеры написаны на языке Java, хотя для усвоения материала читателю не обязательно хорошо знать его - достаточно владеть любым языком программирования, например C++. Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия..
#cpp #cplusplus #ооп #программирование #java #алгоритмы
💡 Physics.Math.Code // @physics_lib
Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам. Читатель может вообще не иметь подготовки в области языка С++. Необходимо лишь знание начальных основ программирования.
📘 Структуры данных и алгоритмы JAVA. 2-е издание [2013] Роберт Лафоре
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике освоить полученные знания. Рассматриваемые примеры написаны на языке Java, хотя для усвоения материала читателю не обязательно хорошо знать его - достаточно владеть любым языком программирования, например C++. Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия..
#cpp #cplusplus #ооп #программирование #java #алгоритмы
💡 Physics.Math.Code // @physics_lib
👍32❤18🔥7🤩2🤷♂1❤🔥1🗿1
📕 Problems on Algorithms (Second Edition) [2002] Ian Parberry, William Gasarch
📕 Задачи по алгоритмам [2002] Иэн Парберри, Уильям Газарч
💾 Скачать книгу
Это не классический учебник, а задачник — сборник упражнений по разработке и анализу алгоритмов. Problems on Algorithms занимает уникальную нишу в литературе по Computer Science. В то время как стандартные учебники страдают от нерелевантных или слишком простых задач, этот сборник предлагает сотни целенаправленных упражнений. Рецензенты называют эту книгу «божественным даром для учителя» и «бесценным» пособием для студентов, готовящихся к квалификационным экзаменам (PhD candidacy exam).
💡 Physics.Math.Code // @physics_lib
📕 Задачи по алгоритмам [2002] Иэн Парберри, Уильям Газарч
💾 Скачать книгу
Это не классический учебник, а задачник — сборник упражнений по разработке и анализу алгоритмов. Problems on Algorithms занимает уникальную нишу в литературе по Computer Science. В то время как стандартные учебники страдают от нерелевантных или слишком простых задач, этот сборник предлагает сотни целенаправленных упражнений. Рецензенты называют эту книгу «божественным даром для учителя» и «бесценным» пособием для студентов, готовящихся к квалификационным экзаменам (PhD candidacy exam).
🍩 Для донатов на кофе ☕️: +79616572047 (СБП / ВТБ / OZON)
#складчина #программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C💡 Physics.Math.Code // @physics_lib
❤15👍13🔥4🤩2🆒1
Problems on algorithms.zip
11.2 MB
📕 Problems on Algorithms (Second Edition) [2002] Ian Parberry, William Gasarch
Автор последовательно проведет вас через все ключевые темы стандартного курса по алгоритмам:
1. Математический фундамент: Главы посвящены математической индукции,
2. Базовые навыки: Отдельные блоки посвящены доказательству корректности (через инварианты циклов) и анализу времени работы алгоритмов.
3. Техники проектирования: Основной массив задач разбит по классическим парадигмам: «Разделяй и властвуй», Динамическое программирование, Жадные алгоритмы и Полный перебор.
4. Продвинутые темы: В завершении рассматриваются структуры данных и NP-полнота
▪️ Каждая задача имеет маркировку уровня сложности. Также есть пометки о наличии подсказок, решений или комментариев в конце главы. Это позволяет студенту оценить свои силы, а преподавателю — легко подобрать задания под уровень группы.
Книга великолепно выполняет свою узкую, но крайне важную функцию. Несмотря на то, что она не охватывает все области, для своей целевой аудитории (подготовка к экзаменам и преподавание) она получает наивысшие оценки. Это та книга, которую стоит держать на столе во время изучения алгоритмов. #складчина #программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Автор последовательно проведет вас через все ключевые темы стандартного курса по алгоритмам:
1. Математический фундамент: Главы посвящены математической индукции,
O- и Ω-нотациям, рекуррентным соотношениям. Здесь много задач на доказательства и работу с формулами.2. Базовые навыки: Отдельные блоки посвящены доказательству корректности (через инварианты циклов) и анализу времени работы алгоритмов.
3. Техники проектирования: Основной массив задач разбит по классическим парадигмам: «Разделяй и властвуй», Динамическое программирование, Жадные алгоритмы и Полный перебор.
4. Продвинутые темы: В завершении рассматриваются структуры данных и NP-полнота
▪️ Второе издание содержит 965 задач, что делает его практически неисчерпаемым ресурсом. ▪️ Каждая задача имеет маркировку уровня сложности. Также есть пометки о наличии подсказок, решений или комментариев в конце главы. Это позволяет студенту оценить свои силы, а преподавателю — легко подобрать задания под уровень группы.
▪️ Рецензенты особенно выделяют главу с доказательством корректности (инварианты циклов), называя её «отличным ресурсом», так как в большинстве учебников этой теме уделяется недостаточно практики
▪️ В книге есть рубрика «Что здесь не так?» (What is Wrong?), где студенту предлагается найти ошибку в доказательстве. Это отличный педагогический прием, развивающий критическое мышление
Книга намеренно не охватывает: амортизационный анализ, рандомизированные алгоритмы, вычислительную геометрию, аппроксимационные алгоритмы, параллельные алгоритмы и алгоритмы теории чисел. Парберри почти не тратит места на объяснение теории. Это исключительно сборник задач. Если вы не знакомы с темой, объяснений в книге будет недостаточно. Она работает только в паре с полноценным учебником (например, «Алгоритмы: построение и анализ» ) или лекциями.
Книга великолепно выполняет свою узкую, но крайне важную функцию. Несмотря на то, что она не охватывает все области, для своей целевой аудитории (подготовка к экзаменам и преподавание) она получает наивысшие оценки. Это та книга, которую стоит держать на столе во время изучения алгоритмов. #складчина #программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
🔥17👍10❤6🤩1👨💻1
#include <stdio.h>
void f(char s[]) {
printf("%zu", sizeof(s));
}
int main() {
char a[] = "hello";
printf("%zu ", sizeof(a));
f(a);
return 0;
}
Что выведет программа?
A)
6 6B)
6 8C)
8 6D)
8 8mainachar a[] = "hello"6sizeof(a)▪️ 2. В функции
fchar s[]sizeof(s)#программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42❤14🔥6🙈5🤯2👾2✍1👨💻1
📚 Поговорим о лучших книга по изучению C и C++, но рейтинг сделаем именно среди наших подписчиков.
Поэтому, если вы читали какие-то книги по данному фундаментальному языку, то напишите какие вам понравились, какие НЕ понравились и что именно из книг вам помогло в учебе / работе / личных проектах ?
📝 Не стесняйтесь писать комментарии, ведь ваш рассказ и ваша история изучения могут быть полезны другим участникам сообщества. Так что погнали.🔺
#программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Поэтому, если вы читали какие-то книги по данному фундаментальному языку, то напишите какие вам понравились, какие НЕ понравились и что именно из книг вам помогло в учебе / работе / личных проектах ?
📝 Не стесняйтесь писать комментарии, ведь ваш рассказ и ваша история изучения могут быть полезны другим участникам сообщества. Так что погнали.
#программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38❤15👍8🤩3😍3✍2👨💻1
15 книг по программированию в Linux.zip
391.5 MB
📚 15 книг по программированию в Linux
📓1. Cross-Platform Development in C++ (Building Mac OS X, Linux, and Windows Applications) 2008 Syd Logan
📔2. Free Pascal и Lazarus Учебник по программированию 2010 Алексеев, Чеснокова, Кучер
📒3. Guide To Assembly Language Programming In Linux 2005 Sivarama P. Dandamudi
📕4. Linux. Администрирование и системное программирование 2011 Марк Г. Собель
📗5. Linux. Программирование в примерах 2005 Роббинс
📘6. Linux. Системное программирование 2014 Роберт Лав
📙7. Multicore Application Programming for Windows, Linux, and Oracle Solaris 2010 Darryl Gove
📓8. Programming Linux Games 2001 Loki Software, John R. Hall
📔9. Shell Programming in Unix, Linux and OS X 2017 Stephen G. Kochan Patrick Wood
📕10. Unix Linux. Теория и практика программирования 2005 Брюс Моли
📒11. Основы программирования в Linux. 4-е изд 2009 Нэйл Мэтью, Ричард Стоунс
📗12. Программирование в Linux. Самоучитель 2012 Иванов
📘13. Программирование на языке C++ в среде Qt Greator 2015 Алексеев
#linux #unix #программирование #cpp #подборка_книг
💡 Physics.Math.Code // @physics_lib
📓1. Cross-Platform Development in C++ (Building Mac OS X, Linux, and Windows Applications) 2008 Syd Logan
📔2. Free Pascal и Lazarus Учебник по программированию 2010 Алексеев, Чеснокова, Кучер
📒3. Guide To Assembly Language Programming In Linux 2005 Sivarama P. Dandamudi
📕4. Linux. Администрирование и системное программирование 2011 Марк Г. Собель
📗5. Linux. Программирование в примерах 2005 Роббинс
📘6. Linux. Системное программирование 2014 Роберт Лав
📙7. Multicore Application Programming for Windows, Linux, and Oracle Solaris 2010 Darryl Gove
📓8. Programming Linux Games 2001 Loki Software, John R. Hall
📔9. Shell Programming in Unix, Linux and OS X 2017 Stephen G. Kochan Patrick Wood
📕10. Unix Linux. Теория и практика программирования 2005 Брюс Моли
📒11. Основы программирования в Linux. 4-е изд 2009 Нэйл Мэтью, Ричард Стоунс
📗12. Программирование в Linux. Самоучитель 2012 Иванов
📘13. Программирование на языке C++ в среде Qt Greator 2015 Алексеев
#linux #unix #программирование #cpp #подборка_книг
💡 Physics.Math.Code // @physics_lib
👍28🔥8❤7🥰1🤩1