Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🧲 Удивительные свойства магнитного поля, визуализация поля с помощью металлических палочек или стружки
Магнит и железная стружка: Почему железные опилки, притянувшись к полюсу магнита, образуют кисти, отталкивающиеся друг от друга? Опилки намагничиваются, а затем располагаются по магнитным линиям магнитного поля, притягиваясь одним полюсом к магниту, а другим отталкиваясь друг от друга.
Неодимовый магнит — мощный постоянный магнит, состоящий из сплава редкоземельного элемента неодима, бора и железа. Кристаллическая структура имеет тетрагональную форму и представлена формулой Nd₂Fe₁₄B. Известен своей мощностью притяжения и высокой стойкостью к размагничиванию. Имеет металлический блеск, обусловленный покрытием (на изломе — серый), очень востребован и применяется в разных областях промышленности, медицины, в быту и электронике. #физика #physics #gif #видеоуроки #научные_фильмы #колебания #электричество #физика #опыты #магнетизм
💡 Physics.Math.Code // @physics_lib
Магнит и железная стружка: Почему железные опилки, притянувшись к полюсу магнита, образуют кисти, отталкивающиеся друг от друга? Опилки намагничиваются, а затем располагаются по магнитным линиям магнитного поля, притягиваясь одним полюсом к магниту, а другим отталкиваясь друг от друга.
Неодимовый магнит — мощный постоянный магнит, состоящий из сплава редкоземельного элемента неодима, бора и железа. Кристаллическая структура имеет тетрагональную форму и представлена формулой Nd₂Fe₁₄B. Известен своей мощностью притяжения и высокой стойкостью к размагничиванию. Имеет металлический блеск, обусловленный покрытием (на изломе — серый), очень востребован и применяется в разных областях промышленности, медицины, в быту и электронике. #физика #physics #gif #видеоуроки #научные_фильмы #колебания #электричество #физика #опыты #магнетизм
💡 Physics.Math.Code // @physics_lib
🔥25👍18❤13⚡4🤔1
Physics.Math.Code
1. Дмитрий (@Graphgrafin)
2. Денис
3. 🇷🇺𝕍𝕒𝕕𝕚𝕞 𝕊𝕖𝕣𝕘𝕖𝕖𝕧𝕚𝕔𝕙🇷🇺 (@valadei007)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38😢21👍17👏9⚡5❤2🤔2🗿2🤯1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
💥 Плазменный тороид — портал для входа в другое измерение ⚡️
Пара вопросов для наших подписчиков:
▪️ Почему электрическая дуга распределяется равномерно, а не бьет между двумя точками?
▪️ Как думаете, опыт проводится с ВЧ-полем или на обычных частотах?
#физика #gif #электродинамика #магнетизм #опыты
💡 Physics.Math.Code // @physics_lib
Пара вопросов для наших подписчиков:
▪️ Почему электрическая дуга распределяется равномерно, а не бьет между двумя точками?
▪️ Как думаете, опыт проводится с ВЧ-полем или на обычных частотах?
#физика #gif #электродинамика #магнетизм #опыты
💡 Physics.Math.Code // @physics_lib
🔥81👍33❤16⚡14🤩7🤓4🫡2🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
🌀 Траектория спирографа как функция комплексной переменной
Фигуры, получаемые с помощью спирографа (игрушечного механизма для рисования гипоциклоид и эпициклоид), — не просто красивые узоры. Это наглядная визуализация сложного гармонического движения, которое элегантно описывается языком комплексных чисел.
Математическая модель: Пусть у нас есть неподвижная окружность радиуса R и катящаяся по ней изнутри окружность радиуса r. Фиксированная точка находится на расстоянии d от центра движущейся окружности.
Ключевой факт: Положение точки в плоскости можно задать не парой координат (x, y), а одним комплексным числом z.
Тогда траектория точки спирографа задаётся параметрической функцией (параметр t — угол поворота движущей окружности):
▪️1.
▫️2.
Какие полезные свойства это даёт?
1. Геометрия становится алгеброй. Сложение комплексных чисел — это векторное сложение. Вся траектория есть сумма двух вращающихся векторов (фазоров).
2. Условия замкнутости (периодичности) кривой выполняются, когда отношение
3. Число «лепестков» или симметрий в узоре напрямую выводится из числителя и знаменателя несократимой дроби
4. Частные случаи:
— Если
— Если
— При
Таким образом, спирограф — это физическая модель сложения двух комплексных экспонент, частотный спектр которых содержит две основные гармоники. Анимации, построенные на этой модели, — это прямое вычисление вещественной и мнимой части функции z(t) для каждого кадра. #математика #mathematics #animation #math #геометрия #geometry #gif #ТФКП #наука #science #комплексныечисла #спирограф #гипоциклоида
➰ Красота параметрических кривых
➿ Трохоида
⭕️ Точки пересечения кругов на воде движутся по гиперболе
➰ Брахистохрона
💡 Physics.Math.Code // @physics_lib
Фигуры, получаемые с помощью спирографа (игрушечного механизма для рисования гипоциклоид и эпициклоид), — не просто красивые узоры. Это наглядная визуализация сложного гармонического движения, которое элегантно описывается языком комплексных чисел.
Математическая модель: Пусть у нас есть неподвижная окружность радиуса R и катящаяся по ней изнутри окружность радиуса r. Фиксированная точка находится на расстоянии d от центра движущейся окружности.
Ключевой факт: Положение точки в плоскости можно задать не парой координат (x, y), а одним комплексным числом z.
Тогда траектория точки спирографа задаётся параметрической функцией (параметр t — угол поворота движущей окружности):
z(t) = (R - r) * exp [ (i * ((R/r) * t)) ] + d * exp[ (i * ((1 - R/r) * t)) ], где части...▪️1.
(R - r) * exp [ (i * ((R/r) * t)) ] — это движение центра малой окружности вокруг центра большой. Модуль (R-r) — расстояние между центрами, экспонента с мнимым показателем ( exp(iφ) ) задаёт вращение.▫️2.
d * exp[ (i * ((1 - R/r) * t)) ] — это вращение точки относительно центра малой окружности. Частота этого вращения относительно неподвижной системы координат иная.Какие полезные свойства это даёт?
1. Геометрия становится алгеброй. Сложение комплексных чисел — это векторное сложение. Вся траектория есть сумма двух вращающихся векторов (фазоров).
2. Условия замкнутости (периодичности) кривой выполняются, когда отношение
R/r является рациональным числом. Кривая замыкается после конечного числа оборотов.3. Число «лепестков» или симметрий в узоре напрямую выводится из числителя и знаменателя несократимой дроби
R/r.4. Частные случаи:
— Если
d = r, точка лежит на ободе катящейся окружности — получаем гипоциклоиду.— Если
R = 2r, вне зависимости от d получаем эллипс.— При
R/r = 2 и d > r траектория становится отрезком прямой (это механизм рисования линии эллипсографом).Таким образом, спирограф — это физическая модель сложения двух комплексных экспонент, частотный спектр которых содержит две основные гармоники. Анимации, построенные на этой модели, — это прямое вычисление вещественной и мнимой части функции z(t) для каждого кадра. #математика #mathematics #animation #math #геометрия #geometry #gif #ТФКП #наука #science #комплексныечисла #спирограф #гипоциклоида
➰ Красота параметрических кривых
➿ Трохоида
⭕️ Точки пересечения кругов на воде движутся по гиперболе
➰ Брахистохрона
💡 Physics.Math.Code // @physics_lib
❤40👍27🔥12❤🔥6✍4🤩2⚡1😭1🤓1🤝1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
🔴Доска Гальтона (также распространены названия квинкункс, quincunx и bean machine) — устройство, изобретённое английским учёным Фрэнсисом Гальтоном (первый экземпляр изготовлен в 1873 году, затем устройство было описано Гальтоном в книге Natural inheritance, изданной в 1889 году) и предназначающееся для демонстрации центральной предельной теоремы. Если нарисовать на задней стенке треугольник Паскаля, то можно увидеть, сколькими путями можно добраться до каждого из штырьков (чем ближе штырёк к центру, тем больше число путей).
3000 стальных шариков падают через 12 уровней ветвящихся путей и всегда в конечном итоге соответствуют распределению кривой нормального распределения. Каждый шар имеет шанс 50/50 следовать за каждой ветвью, так что шары распределяются внизу по математическому биномиальному распределению. #gif #геометрия #статистика #математика #теория_вероятностей #maths
💡 Physics.Math.Code // @physics_lib
3000 стальных шариков падают через 12 уровней ветвящихся путей и всегда в конечном итоге соответствуют распределению кривой нормального распределения. Каждый шар имеет шанс 50/50 следовать за каждой ветвью, так что шары распределяются внизу по математическому биномиальному распределению. #gif #геометрия #статистика #математика #теория_вероятностей #maths
💡 Physics.Math.Code // @physics_lib
👍78❤24🔥16🤩6😱5🙈4❤🔥1🤔1🫡1
Media is too big
VIEW IN TELEGRAM
🌀 Анимация графиков различных математических функций
„Именно математика даёт надёжнейшие правила: тому кто им следует — тому не опасен обман чувств.“ — Леонард Эйлер швейцарский, немецкий и российский математик 1707–1783
#математика #math #gif #animation #geometry
💡 Physics.Math.Code // @physics_lib
„Именно математика даёт надёжнейшие правила: тому кто им следует — тому не опасен обман чувств.“ — Леонард Эйлер швейцарский, немецкий и российский математик 1707–1783
#математика #math #gif #animation #geometry
💡 Physics.Math.Code // @physics_lib
1❤63🔥33👍20😍6🤯2🤩2🫡2
💦 Моделирование жидкости (англ. fluid simulation) — область компьютерной графики, использующая средства вычислительной гидродинамики для реалистичного моделирования, анимации и визуализации жидкостей, газов, взрывов и других связанных с этим явлений. Имея на входе некую жидкость и геометрию сцены, симулятор жидкости моделирует её поведение и движение во времени, принимая в расчёт множество физических сил, объектов и взаимодействий. Моделирование жидкости широко используется в компьютерной графике и ранжируется по вычислительной сложности от высокоточных вычислений для кинофильмов и спецэффектов до простых аппроксимаций, работающих в режиме реального времени и использующихся преимущественно в компьютерных играх.
Существует несколько конкурирующих методов моделирования жидкости, каждый из которых имеет свои преимущества и недостатки. Наиболее распространёнными являются сеточные методы Эйлера, гидродинамика сглаженных частиц (англ. smoothed particle hydrodynamics — SPH), методы, основанные на завихрениях, и метод решёточных уравнений Больцмана. Эти методы возникли в среде вычислительной гидродинамики и были позаимствованы для практических задач в индустрии компьютерной графики и спецэффектов. Основное требование к данным методам со стороны компьютерной графики — визуальная правдоподобность. Иными словами, если наблюдатель при просмотре не может заметить неестественность анимации, то моделирование считается удовлетворительным. В физике, технике и математике, с другой стороны, основные требования предъявляются к физической корректности и точности моделирования, а не к её визуальному результату.
В компьютерной графике самые ранние попытки решить уравнения Навье — Стокса в трёхмерном пространстве были предприняты в 1996 году Ником Фостером (англ. Nick Foster) и Димитрисом Метаксасом (англ. Dimitris Metaxas). Их работа в качестве основы использовала более раннюю работу по вычислительной гидродинамике, которая была опубликована в 1965 году Харлоу (англ. Harlow) и Уэлшем (англ. Welch). До работы Фостера и Метаксаса многие методы моделирования жидкости были построены на основе специальных систем частиц, методах снижения размерности (типа двухмерные модели мелких водяных объёмов типа луж) и полу-случайных шумовых турбулентных полях. В 1999 году на SIGGRAPH Джос Стэм (англ. Jos Stam) опубликовал метод так называемых «стабильных жидкостей» (англ. Stable Fluids), который использовал полу-лагранжевый метод адвекции и неявные интеграции вязкости для обеспечения безусловно устойчивого поведения жидкости. Это позволило моделировать жидкости со значительно большим временным шагом и в общем привело к более быстрым программам. Позже, в 2001—2002 годах, этот метод был расширен Роном Федкивым вместе со своими сотрудниками, благодаря чему стало возможным обрабатывать сложную модель воды в трёхмерной сцене с использованием метода установленного уровня (англ. Level set method). #математика #физика #наука #gif #образование #разработка_игр #gamedev #math #physics
💡 Physics.Math.Code // @physics_lib
Существует несколько конкурирующих методов моделирования жидкости, каждый из которых имеет свои преимущества и недостатки. Наиболее распространёнными являются сеточные методы Эйлера, гидродинамика сглаженных частиц (англ. smoothed particle hydrodynamics — SPH), методы, основанные на завихрениях, и метод решёточных уравнений Больцмана. Эти методы возникли в среде вычислительной гидродинамики и были позаимствованы для практических задач в индустрии компьютерной графики и спецэффектов. Основное требование к данным методам со стороны компьютерной графики — визуальная правдоподобность. Иными словами, если наблюдатель при просмотре не может заметить неестественность анимации, то моделирование считается удовлетворительным. В физике, технике и математике, с другой стороны, основные требования предъявляются к физической корректности и точности моделирования, а не к её визуальному результату.
В компьютерной графике самые ранние попытки решить уравнения Навье — Стокса в трёхмерном пространстве были предприняты в 1996 году Ником Фостером (англ. Nick Foster) и Димитрисом Метаксасом (англ. Dimitris Metaxas). Их работа в качестве основы использовала более раннюю работу по вычислительной гидродинамике, которая была опубликована в 1965 году Харлоу (англ. Harlow) и Уэлшем (англ. Welch). До работы Фостера и Метаксаса многие методы моделирования жидкости были построены на основе специальных систем частиц, методах снижения размерности (типа двухмерные модели мелких водяных объёмов типа луж) и полу-случайных шумовых турбулентных полях. В 1999 году на SIGGRAPH Джос Стэм (англ. Jos Stam) опубликовал метод так называемых «стабильных жидкостей» (англ. Stable Fluids), который использовал полу-лагранжевый метод адвекции и неявные интеграции вязкости для обеспечения безусловно устойчивого поведения жидкости. Это позволило моделировать жидкости со значительно большим временным шагом и в общем привело к более быстрым программам. Позже, в 2001—2002 годах, этот метод был расширен Роном Федкивым вместе со своими сотрудниками, благодаря чему стало возможным обрабатывать сложную модель воды в трёхмерной сцене с использованием метода установленного уровня (англ. Level set method). #математика #физика #наука #gif #образование #разработка_игр #gamedev #math #physics
💡 Physics.Math.Code // @physics_lib
👍61🔥29❤20✍7🤝2🤩1
Media is too big
VIEW IN TELEGRAM
Менделеев: когда научный метод становится приключением
Physics.Math.Code уже успел раньше всех посмотреть новую документалку от НМГ ДОК «Менделеев», которая выйдет только в декабре — и если честно, мы не ожидали такого захода.
Если убрать из головы образ «учёного с портрета над школьной доской», окажется, что Менделеев — это почти идеальная модель исследовательского мышления: дисциплинированного, волевого, экспериментально ориентированного… и при этом невероятно смелого.
Фильм показывает его не как памятник науки, а как человека, который:
— не верил в авторитеты — только в проверку, и был готов идти в эксперимент туда, куда другие не рискнули бы даже смотреть;
— делал шаги на грани возможностей своего времени, часто выходя за рамки химии в область физики, метеорологии, инженерии и того, что сегодня назвали бы «фундаментальными поисками»;
— развенчивал популярные заблуждения XIX века, применяя к ним строгие, почти инженерные методы анализа;
— и самое важное — пытался объяснить мир как единую систему, где элементы, силы, явления и структуры подчиняются одному глубокому порядку.
Это не пересказ биографии. Это взгляд на то, как думает человек, который жил на 100 лет вперёд и пытался достать данные там, где их не было ни у кого.
Если вам близок подход «не верю — проверю», «не понимаю — построю модель», «нет ответа — значит, нужен эксперимент», то декабрьская премьера РЕН ТВ — это возможность увидеть Менделеева не как символ химии, а как собрата по способу мышления.
Премьера совсем скоро — 7 декабря.
И мы честно скажем: для тех, кто любит логику, метод и настоящую научную смелость — это must watch.
#Менделеев #история #наука #докфильм #РЕНТВ #гений #открытия
Physics.Math.Code уже успел раньше всех посмотреть новую документалку от НМГ ДОК «Менделеев», которая выйдет только в декабре — и если честно, мы не ожидали такого захода.
Если убрать из головы образ «учёного с портрета над школьной доской», окажется, что Менделеев — это почти идеальная модель исследовательского мышления: дисциплинированного, волевого, экспериментально ориентированного… и при этом невероятно смелого.
Фильм показывает его не как памятник науки, а как человека, который:
— не верил в авторитеты — только в проверку, и был готов идти в эксперимент туда, куда другие не рискнули бы даже смотреть;
— делал шаги на грани возможностей своего времени, часто выходя за рамки химии в область физики, метеорологии, инженерии и того, что сегодня назвали бы «фундаментальными поисками»;
— развенчивал популярные заблуждения XIX века, применяя к ним строгие, почти инженерные методы анализа;
— и самое важное — пытался объяснить мир как единую систему, где элементы, силы, явления и структуры подчиняются одному глубокому порядку.
Это не пересказ биографии. Это взгляд на то, как думает человек, который жил на 100 лет вперёд и пытался достать данные там, где их не было ни у кого.
Если вам близок подход «не верю — проверю», «не понимаю — построю модель», «нет ответа — значит, нужен эксперимент», то декабрьская премьера РЕН ТВ — это возможность увидеть Менделеева не как символ химии, а как собрата по способу мышления.
Премьера совсем скоро — 7 декабря.
И мы честно скажем: для тех, кто любит логику, метод и настоящую научную смелость — это must watch.
#Менделеев #история #наука #докфильм #РЕНТВ #гений #открытия
👍90🔥36❤23😱2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
💧 Эффект Лейденфроста — явление, при котором жидкость в контакте с твёрдой поверхностью, значительно более горячей, чем точка кипения этой жидкости, образует теплоизолирующую прослойку пара между поверхностью и жидкостью, замедляющую быстрое выкипание, например, капли жидкости на этой поверхности. Также это явление называют кризисом кипения. Посмотреть ещё видео по теме данного явления здесь.
При контакте жидкости с поверхностью, нагретой значительно выше температуры кипения жидкости, возникает устойчивый слой пара, который термодинамически изолирует жидкость от поверхности. Это приводит к парадоксальному уменьшению теплоотвода и увеличению времени испарения капли.
1. При температурах поверхности выше точки Лейденфроста (для воды ~ 190-220 °C при атмосферном давлении) контактная часть капли мгновенно испаряется.
2. Образовавшийся паровый слой имеет низкую теплопроводность по сравнению с жидкостью.
3. Давление пара поддерживает каплю в левитирующем состоянии, минимизируя площадь непосредственного контакта.
4. Теплообмен происходит в основном за счет теплопроводности через пар и излучения.
Для количественного описания эффекта ключевым параметром является толщина паровой прослойки δ, определяемая балансом сил давления пара, вязкого трения в паре и гидростатического давления. Активные исследования посвящены динамике капель в режиме Лейденфроста (самоорганизованное движение, эффект ракеты), влиянию структурированных и супергидрофобных поверхностей на точку Лейденфроста, а также управлению теплообменом через модификацию текстуры поверхности.
▪️ Этот эффект объясняет поведение капель воды на раскалённой сковороде.
▪️ Криогенная безопасность: явление позволяет кратковременно погружать руку в жидкий азот без мгновенного обморожения.
▪️ Применяется в промышленных процессах, где требуется контролируемое охлаждение (термообработка).
▪️Аналогичный эффект наблюдается для других пар фаз: твёрдое тело на перегретой поверхности расплава (эффект Кузнецова).
#физика #термодинамика #мкт #опыты #эксперименты #physics #видеоуроки #gif
💡 Physics.Math.Code // @physics_lib
При контакте жидкости с поверхностью, нагретой значительно выше температуры кипения жидкости, возникает устойчивый слой пара, который термодинамически изолирует жидкость от поверхности. Это приводит к парадоксальному уменьшению теплоотвода и увеличению времени испарения капли.
1. При температурах поверхности выше точки Лейденфроста (для воды ~ 190-220 °C при атмосферном давлении) контактная часть капли мгновенно испаряется.
2. Образовавшийся паровый слой имеет низкую теплопроводность по сравнению с жидкостью.
3. Давление пара поддерживает каплю в левитирующем состоянии, минимизируя площадь непосредственного контакта.
4. Теплообмен происходит в основном за счет теплопроводности через пар и излучения.
Для количественного описания эффекта ключевым параметром является толщина паровой прослойки δ, определяемая балансом сил давления пара, вязкого трения в паре и гидростатического давления. Активные исследования посвящены динамике капель в режиме Лейденфроста (самоорганизованное движение, эффект ракеты), влиянию структурированных и супергидрофобных поверхностей на точку Лейденфроста, а также управлению теплообменом через модификацию текстуры поверхности.
▪️ Этот эффект объясняет поведение капель воды на раскалённой сковороде.
▪️ Криогенная безопасность: явление позволяет кратковременно погружать руку в жидкий азот без мгновенного обморожения.
▪️ Применяется в промышленных процессах, где требуется контролируемое охлаждение (термообработка).
▪️Аналогичный эффект наблюдается для других пар фаз: твёрдое тело на перегретой поверхности расплава (эффект Кузнецова).
#физика #термодинамика #мкт #опыты #эксперименты #physics #видеоуроки #gif
💡 Physics.Math.Code // @physics_lib
👍41🔥11❤8🤩2⚡1
Хочется первым узнавать про стажировки, ивенты и курсы?
Искать не нужно, ведь все уже собрано в телеграм-канале Т-Образования.
Вот что там есть:
— анонсы стажировок, курсов и мероприятий;
— полезные материалы для любого уровня;
— навигация по карьерным трекам;
— вдохновляющее комьюнити.
Подписывайтесь на канал, чтобы быть в курсе всех событий Т-Образования.
Искать не нужно, ведь все уже собрано в телеграм-канале Т-Образования.
Вот что там есть:
— анонсы стажировок, курсов и мероприятий;
— полезные материалы для любого уровня;
— навигация по карьерным трекам;
— вдохновляющее комьюнити.
Подписывайтесь на канал, чтобы быть в курсе всех событий Т-Образования.
🤔13❤3👍3🔥2🙈2
🧩 Задача на C++: "Таинственная конкатенация"
🖥 Что выведет следующая программа? Будьте внимательны!
Варианты:
1. Обе строки выведут "Hello, World!"
2. Ошибка компиляции
3. Первая выведет мусор, вторая — "Hello, World!"
4. Первая вызовет ошибку, вторая скомпилируется
Задумайтесь на минутку, прежде чем запускать код...
🔍 Разбор проблемы
Правильный ответ: 2 (Ошибка компиляции) или, если точнее, ошибка возникнет уже на строке с result1.
🖥 Код с решением и комментариями:
📚 Малоизвестный факт:
В C++ есть специальная фаза трансляции, где соседние строковые литералы объединяются в один. Например:
Но этот процесс происходит до раскрытия макросов, поэтому MERGE("Hello, ", "World!") не работает как ожидается.
Ключевые моменты:
1. Оператор ## в макросах выполняет сращивание токенов, а не строк
2. Строковые литералы автоматически конкатенируются на фазе трансляции
3. Макросы раскрываются на более поздней фазе, когда уже слишком поздно для "правильной" конкатенации строк
Будьте осторожны с оператором ## при работе со строковыми литералами! Для их конкатенации лучше использовать обычное расположение рядом или constexpr функции в современном C++.
Чем токен отличается от строки?
1. Токен (в контексте препроцессора C++) — это минимальная единица текста программы, которую распознает препроцессор ( )
Препроцессор работает именно на уровне токенов. Оператор ## сращивает именно токены, а не их значение
2. Строковый литерал — это конкретный тип токена, который представляет строку в кавычках. Пример: "Hello" — это один токен типа "строковый литерал"
Ещё по теме: Задачки по программированию для наших подписчиков [ C/C++ ]
#C #cpp #cplusplus #программирование #задачи
💡 Physics.Math.Code // @physics_lib
#include <iostream>
#define MERGE(a, b) a ## b
int main() {
const char* result1 = MERGE("Hello, ", "World!");
const char* result2 = MERGE("Hello, ", "World" "!");
std::cout << result1 << std::endl;
std::cout << result2 << std::endl;
return 0;
}
Варианты:
1. Обе строки выведут "Hello, World!"
2. Ошибка компиляции
3. Первая выведет мусор, вторая — "Hello, World!"
4. Первая вызовет ошибку, вторая скомпилируется
Задумайтесь на минутку, прежде чем запускать код...
🔍 Разбор проблемы
#include <iostream> #define MERGE(a, b) a ## b
int main() {
// Эта строка НЕ скомпилируется:
// const char* result1 = MERGE("Hello, ", "World!");
// После раскрытия макроса получим: "Hello, ""World!"
// Это два отдельных строковых литерала без оператора конкатенации
// А вот эта строка скомпилируется и выведет "Hello, World!":
const char* result2 = MERGE("Hello, ", "World" "!");
// После раскрытия макроса получим: "Hello, ""World""!"
// А благодаря фазе трансляции, соседние строковые литералы
// сливаются в один: "Hello, World!!"
// Правильный способ через макрос:
const char* result3 = "Hello, " "World!";
std::cout << result2 << std::endl; // Выведет: Hello, World!!
std::cout << result3 << std::endl; // Выведет: Hello, World!
return 0;
}
В C++ есть специальная фаза трансляции, где соседние строковые литералы объединяются в один. Например:
const char* s = "Hello, " "World!"; // Эквивалентно "Hello, World!"Но этот процесс происходит до раскрытия макросов, поэтому MERGE("Hello, ", "World!") не работает как ожидается.
Ключевые моменты:
1. Оператор ## в макросах выполняет сращивание токенов, а не строк
2. Строковые литералы автоматически конкатенируются на фазе трансляции
3. Макросы раскрываются на более поздней фазе, когда уже слишком поздно для "правильной" конкатенации строк
Будьте осторожны с оператором ## при работе со строковыми литералами! Для их конкатенации лучше использовать обычное расположение рядом или constexpr функции в современном C++.
Чем токен отличается от строки?
1. Токен (в контексте препроцессора C++) — это минимальная единица текста программы, которую распознает препроцессор (
int, main, (, ), {, "Hello", 123, +, ;Препроцессор работает именно на уровне токенов. Оператор ## сращивает именно токены, а не их значение
2. Строковый литерал — это конкретный тип токена, который представляет строку в кавычках. Пример: "Hello" — это один токен типа "строковый литерал"
Ещё по теме: Задачки по программированию для наших подписчиков [ C/C++ ]
#C #cpp #cplusplus #программирование #задачи
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤45👍19🤷♂15🤯6🔥4👾4👏1👻1
This media is not supported in your browser
VIEW IN TELEGRAM
💧 Батавские слёзки или капли принца Руперта (англ. Prince Rupert's drops) — застывшие капли закалённого стекла, обладающие чрезвычайно высокими внутренними механическими напряжениями. Скорее всего, подобные стеклянные капли были известны стеклодувам с незапамятных времён, однако внимание учёных они привлекли в середине XVII века.
Если капнуть расплавленным стеклом в холодную воду и стекло после этого не лопнет, а начнёт застывать, получается капля в форме головастика, с длинным изогнутым «хвостом». При этом «голова» капли обладает исключительной прочностью, по ней можно бить металлическим молотком в полную силу, и в зависимости от объёма она выдерживает усилие гидравлического пресса до 30 тонн, оставляя вмятину на стали.
Но стоит надломить или просто задеть «хвост» капли, и она мгновенно разлетается на мелкие осколки, по направлению от «хвоста» к «голове». По этой причине надламывание желательно проводить под слоем жидкости, и инструментом типа щипцов, так как при этом опыте помимо опасности от самого стекла происходит гидроудар из-за очень резкого расширения поля осколков. На кадрах, зарегистрированных с помощью высокоскоростной съёмки, видно, что фронт «взрыва» движется по капле с большой скоростью: 1,2 км/с (для сравнения: скорость звука в воздухе 0,34 км/с, скорость детонации взрывчатки — 2—9 км/с).
Если опыт проводится в темноте, заметна также триболюминесценция. В поляризованном свете видно, что капля не изотропна, а испытывает сильные внутренние напряжения, что и вызывает такие свойства.
#физика #сопромат #physics #mechanics #механика #опыты #кинематика #эксперименты #видеоуроки
💡 Physics.Math.Code // @physics_lib
Если капнуть расплавленным стеклом в холодную воду и стекло после этого не лопнет, а начнёт застывать, получается капля в форме головастика, с длинным изогнутым «хвостом». При этом «голова» капли обладает исключительной прочностью, по ней можно бить металлическим молотком в полную силу, и в зависимости от объёма она выдерживает усилие гидравлического пресса до 30 тонн, оставляя вмятину на стали.
Но стоит надломить или просто задеть «хвост» капли, и она мгновенно разлетается на мелкие осколки, по направлению от «хвоста» к «голове». По этой причине надламывание желательно проводить под слоем жидкости, и инструментом типа щипцов, так как при этом опыте помимо опасности от самого стекла происходит гидроудар из-за очень резкого расширения поля осколков. На кадрах, зарегистрированных с помощью высокоскоростной съёмки, видно, что фронт «взрыва» движется по капле с большой скоростью: 1,2 км/с (для сравнения: скорость звука в воздухе 0,34 км/с, скорость детонации взрывчатки — 2—9 км/с).
Если опыт проводится в темноте, заметна также триболюминесценция. В поляризованном свете видно, что капля не изотропна, а испытывает сильные внутренние напряжения, что и вызывает такие свойства.
#физика #сопромат #physics #mechanics #механика #опыты #кинематика #эксперименты #видеоуроки
💡 Physics.Math.Code // @physics_lib
🔥99👍35❤28✍7😱3🤩3🤯2