Немного информации обо мне.
Физикой, математикой и программированием плотно занялся еще в 11-м классе. На тот момент всё репетиторство сводилось к помощи одноклассникам, которым я делал домашнее задание, помогал на контрольных работах по точным предметам. В тот период начался интерес участия в различных олимпиадах. Результаты были не всегда удачными, но я получил много опыта, что помогло убрать чувство максимализма и понять, что всегда есть куда расти. Далее отучился 6 лет в техническом университете на кафедре физики факультета электроники и вычислительной техники. В течении 10 лет серьезно занимался репетиторством и подготовкой школьников, затем и студентов по физико-математическим дисциплинам. Чем больше я учился объяснять сложные вещи простым языком, тем больше я их сам начинал понимать. Так со временем у меня собралось множество методов, с помощью которых можно сложный материал объяснить легко и понятно, буквально "на пальцах".
За время университетской учебы написал дипломную работу "О моделировании усиления в лампе бегущей волны О-типа (ЛБВ-О)", а также диссертацию по теме "Моделирование релятивистских электронных потоков ( РЭП ) в скрещенных неоднородных электромагнитных полях". Таким образом, большее время мне приходилось заниматься физикой СВЧ (сверх высоких частот).
После учебы в вузе я испытал некоторое разочарование, что так много еще нужно изучить, а университет дает только узкую область иногда очень сильно разрозненных знаний. И чтобы собрать всё в кучу, нужно постоянно учиться, всю жизнь разбираться и практиковаться. Физика, математика и программирование стали моими хобби, а репетиторство и наставничество помогает быть всегда в курсе текущего образования, передавать знания молодым ученикам, предостерегая их от типичных ошибок, получать удовольствие от достижений своих учеников! :)
К данному моменту среди моих учеников были школьники, студенты, аспиранты и любители, желающие лучше разобраться в каких-то физико-математических вопросах. Возраст учеников колеблется от 10 до 45 лет. К каждому человеку я пытаюсь найти индивидуальный подход и помочь ему развить математическое мышление, так нужное для решения технических задач.
Что будет в этом канале? Некоторые мысли, заметки, наблюдения, интересные задачи с разбором, особенности обучения, понравившиеся мне цитаты. Рекламы не будет ;)
Если Вы хотите записаться на занятия или получить консультацию, обращайтесь в мою группу в vk Репетитор IT mentor или в личные сообщения или напишите мне здесь @physicist_i или в директ instagram
Физикой, математикой и программированием плотно занялся еще в 11-м классе. На тот момент всё репетиторство сводилось к помощи одноклассникам, которым я делал домашнее задание, помогал на контрольных работах по точным предметам. В тот период начался интерес участия в различных олимпиадах. Результаты были не всегда удачными, но я получил много опыта, что помогло убрать чувство максимализма и понять, что всегда есть куда расти. Далее отучился 6 лет в техническом университете на кафедре физики факультета электроники и вычислительной техники. В течении 10 лет серьезно занимался репетиторством и подготовкой школьников, затем и студентов по физико-математическим дисциплинам. Чем больше я учился объяснять сложные вещи простым языком, тем больше я их сам начинал понимать. Так со временем у меня собралось множество методов, с помощью которых можно сложный материал объяснить легко и понятно, буквально "на пальцах".
За время университетской учебы написал дипломную работу "О моделировании усиления в лампе бегущей волны О-типа (ЛБВ-О)", а также диссертацию по теме "Моделирование релятивистских электронных потоков ( РЭП ) в скрещенных неоднородных электромагнитных полях". Таким образом, большее время мне приходилось заниматься физикой СВЧ (сверх высоких частот).
После учебы в вузе я испытал некоторое разочарование, что так много еще нужно изучить, а университет дает только узкую область иногда очень сильно разрозненных знаний. И чтобы собрать всё в кучу, нужно постоянно учиться, всю жизнь разбираться и практиковаться. Физика, математика и программирование стали моими хобби, а репетиторство и наставничество помогает быть всегда в курсе текущего образования, передавать знания молодым ученикам, предостерегая их от типичных ошибок, получать удовольствие от достижений своих учеников! :)
К данному моменту среди моих учеников были школьники, студенты, аспиранты и любители, желающие лучше разобраться в каких-то физико-математических вопросах. Возраст учеников колеблется от 10 до 45 лет. К каждому человеку я пытаюсь найти индивидуальный подход и помочь ему развить математическое мышление, так нужное для решения технических задач.
Что будет в этом канале? Некоторые мысли, заметки, наблюдения, интересные задачи с разбором, особенности обучения, понравившиеся мне цитаты. Рекламы не будет ;)
Если Вы хотите записаться на занятия или получить консультацию, обращайтесь в мою группу в vk Репетитор IT mentor или в личные сообщения или напишите мне здесь @physicist_i или в директ instagram
❤2👍1
Мы с детства привыкаем, что нас оценивают.
В школе оценивают учителя. В вузе оценивают преподаватели. Преподавателей оценивает ВАК. Самое страшное -- человек привыкает, что его оценивают. Ждать внешней оценки -- это нездоровое качество. Нельзя себя ставить в такое положение, чтобы тебя оценивали.
В жизни все гораздо сложнее. Твою деятельность оценивают не люди, а объективные обстоятельства. Заработало - не заработало, получилось - не получилось, удалось - не удалось. И необходимо добиться результата - так сложить обстоятельства, чтобы заработало, получилось, удалось. Это очень сложно.
Приведу пример. Вы хотите создать робота. Это сложнейшее техническое устройство, hi-end электроники, робототехники, программирования. Допустим, робот должен пройти от одного края белой доски до другого, обходя при этом черные области (это случайно наложенная черная бумага). Роботом управляет компьютер, робот ориентируется по видеокамере, расположенной на нем. Робот должен обходить препятствие самостоятельно, без участия человека.
Чтобы его разработать, собрать и отладить, приходится решить около 200 уникальных сложнейших математических задач: геометрия, кинематика, динамика, ходьба, оптическая коррекция, оптическое распознавание, управление на четырех уровнях, система искусственного интеллекта. Только профессиональные математики могут заниматься такой сложнейшей деятельностью.
Теперь вернемся к оценке. Кто оценивает профессионального математика? В учебной математике оценивают учителя и преподаватели. В фундаментальной математике оценивает ВАК или РАН. Но для профессионального математика есть только один критерий оценки - результат. Работают ли сложнейшие модели или технические устройства, которые он разрабатывает? С роботом только один критерий оценки - работает или нет.
Не обращайте внимание на критику обывателей, конкурентов, преподавателей со стороны. Важен только ваш конечный результат. Ваши ошибки и неудачи в ходе работы не имеют никакого смысла в конце, если работа успешно завершена. Ориентируйтесь на результат!
В школе оценивают учителя. В вузе оценивают преподаватели. Преподавателей оценивает ВАК. Самое страшное -- человек привыкает, что его оценивают. Ждать внешней оценки -- это нездоровое качество. Нельзя себя ставить в такое положение, чтобы тебя оценивали.
В жизни все гораздо сложнее. Твою деятельность оценивают не люди, а объективные обстоятельства. Заработало - не заработало, получилось - не получилось, удалось - не удалось. И необходимо добиться результата - так сложить обстоятельства, чтобы заработало, получилось, удалось. Это очень сложно.
Приведу пример. Вы хотите создать робота. Это сложнейшее техническое устройство, hi-end электроники, робототехники, программирования. Допустим, робот должен пройти от одного края белой доски до другого, обходя при этом черные области (это случайно наложенная черная бумага). Роботом управляет компьютер, робот ориентируется по видеокамере, расположенной на нем. Робот должен обходить препятствие самостоятельно, без участия человека.
Чтобы его разработать, собрать и отладить, приходится решить около 200 уникальных сложнейших математических задач: геометрия, кинематика, динамика, ходьба, оптическая коррекция, оптическое распознавание, управление на четырех уровнях, система искусственного интеллекта. Только профессиональные математики могут заниматься такой сложнейшей деятельностью.
Теперь вернемся к оценке. Кто оценивает профессионального математика? В учебной математике оценивают учителя и преподаватели. В фундаментальной математике оценивает ВАК или РАН. Но для профессионального математика есть только один критерий оценки - результат. Работают ли сложнейшие модели или технические устройства, которые он разрабатывает? С роботом только один критерий оценки - работает или нет.
Не обращайте внимание на критику обывателей, конкурентов, преподавателей со стороны. Важен только ваш конечный результат. Ваши ошибки и неудачи в ходе работы не имеют никакого смысла в конце, если работа успешно завершена. Ориентируйтесь на результат!
👍4
Вот что можно найти в большинстве научных работ. Максимум показухи, минимум полезной информации. Таких специалистов выращивает современное вузовское образование. В погоне за большим количеством умных слов большинство преподавателей вузов прячет свою некомпетентность, из года в год преподавая "для галочки" никому ненужные, неактуальные знания. Таким образом, большинство вузов воспитывает теоретиков, и то никудышных. А в реальном мире нужны практики. Значит любое развитие основано на практике и самообразовании. Так что, если кто-то строит иллюзии о надобности дипломных корочек, у вас есть повод задуматься. Помните, что реальные знания и наличие корочки диплома — это совершенно разные вещи, и ни одна из них не является следствием другой.
👍3
Аналоговые часы на HTML5 c логикой на JavaScript
Урок о возможностях Javascript в анимации с помощью простейших графических примитивов.
Мой первый видеоурок:
www.youtube.com/c/PhysicsMathCodeBooks
https://habrahabr.ru/post/275353/
http://jsfiddle.net/ejwnb9zz/
Урок о возможностях Javascript в анимации с помощью простейших графических примитивов.
Мой первый видеоурок:
www.youtube.com/c/PhysicsMathCodeBooks
https://habrahabr.ru/post/275353/
http://jsfiddle.net/ejwnb9zz/
Заменив кучу if-else одной строчкой, решить проблему поиска максимума из трех элементов, не создавая массива:
Мелочь, а приятно. Бокал кофе 🥃 за элегантность тернарного оператора.
Кстати, такое возможно не только в си-подобных язык программирование. Можно и в Python, к примеру.
Синтаксис тернарного в Python: a if condition else b
Реализация возможна такая:
Также в Python можно индексировать кортеж:
(falseValue, trueValue)[bool(condition)]
Пример для двух переменных:
Лично мне не очень нравится тернарный оператор в Python, т.к. рассматривать логику приходится с середины выражения. В си-подобных языках этот оператор более последователен и прост в понимании. В целом, эксперты программирования не советуют усложнять логику своих программ. Так как большинство сложных проектов делают несколько людей, то ваш код в первую очередь должен быть понятен для других людей. Поэтому не всегда нужно использовать замудренные конструкции языка. А если вы их используете, то напишите вескую причину этому в комментарии перед методом.
return (a > b)? ((a > c)? a : c) : (b > c)? b : c;
Мелочь, а приятно. Бокал кофе 🥃 за элегантность тернарного оператора.
Кстати, такое возможно не только в си-подобных язык программирование. Можно и в Python, к примеру.
Синтаксис тернарного в Python: a if condition else b
Реализация возможна такая:
def getMax(a, b, c):
return (a if (a > c) else c) if (a > b) else (b if (b > c) else c)
Также в Python можно индексировать кортеж:
(falseValue, trueValue)[bool(condition)]
Пример для двух переменных:
def getMax2(a, b):
return (b, a)[bool(a > b)]
Лично мне не очень нравится тернарный оператор в Python, т.к. рассматривать логику приходится с середины выражения. В си-подобных языках этот оператор более последователен и прост в понимании. В целом, эксперты программирования не советуют усложнять логику своих программ. Так как большинство сложных проектов делают несколько людей, то ваш код в первую очередь должен быть понятен для других людей. Поэтому не всегда нужно использовать замудренные конструкции языка. А если вы их используете, то напишите вескую причину этому в комментарии перед методом.
👍1
Вероятно, каждый человек, который начинает увлекаться программированием в наше время, может встретить такие комментарии в социальных сетях, которые восхваляют 1-2 "мейнстримных" языка программирования и мешают с грязью все остальные. "Pascal мертв", "Delphi говно", "Assembler никому не нужен", "Разве Си еще где-то используют", "Мобайл-web всему голова", "Java тормознутая и уже мертвая" и прочий бред.
Каждый день тысячи критиков хоронят какую-то технологию, и (совпадение?) расхваливают ту технологию, которой пользуются сами. Также стало модным считать, что старые языки для отсталых шарашкиных контор. Каждый день люди спорят и переходят на личности только потому, что один считает свой (на котором он программирует) язык лучше языка оппонента. Каждый новоиспеченный "программист" считает, что умирает всё, кроме той технологии, которой он пользуется. Всё это естественно приводится без аргументов.
Каждый второй, будучи сам ноунеймом, может позволить себе неуместную критику сложнейших технологий. Люди чаще всего приходят чтобы критиковать тех, кто хочет сделать что-то полезное для общества. Развиваться? К черту! Изучать как можно больше технологий и выбирать нужное для себя? К черту! Сделать что-то полезное для общества, автоматизировать рутину, внедрить новшества? К черту! Лучше я буду критиковать проекты/программы/языки программирования великих людей, принесших обществу реальную пользу! Каждый студент 3 курса считает себя экспертом в области программирования, физики, математики. Наверняка, кто-то узнал себя в этом. Я хотел бы кое-что сказать для вас, господа-критики, поливающие грязью то, что не смогли бы сами создать. У вас эффект Даннинга-Крюгера. Метакогнитивное искажение личности. И очень мало вероятно, что вы находитесь "склоне просветления" в этом эффекте. Скорее это "пик глупости". Максимализм.
Язык – это лишь инструмент для выполнения определённой задачи. Нужно программировать с использованием языка, а не программировать на языке. А говнокодить можно абсолютно на любом ЯП. Как-то странно считать, что если я пишу на C++, то я представитель элитарного общества, а если на Delphi, то представитель "шарашкиной конторы". Нет. Если руки из жопы или, скажем мягче, мало опыта, то говнокодишь всегда и везде. Когда появляется опыт, то изящный код можно написать с использованием любого языка. А опыт появляется тогда, когда начинаешь пытаться делать что-то полезное. Когда некогда критиковать и выставлять своё мнение в качестве истины в последней инстанции.
Надменность, максимализм и неуместная критика других людей проходят, когда осознаешь, что твои знания ничтожны. Осознание своего вечного невежества приходит через саморазвитие. Саморазвитие основано на ошибках. Ошибки совершает тот, кто что-то делает. И не ошибается лишь тот, кто ничего не делает.
А так как правда субъективна, истина у каждого своя, то я могу и буду ошибаться. Постоянно и во всем.
Чем кто невежественнее, тем нетерпеливее он порывается судить.
© Э. Кондильяк
Не образован тот, кто никогда не осмеливается признаться в том, что он чего-то не может или не знает.
© И. Гофмиллер
Каждый день тысячи критиков хоронят какую-то технологию, и (совпадение?) расхваливают ту технологию, которой пользуются сами. Также стало модным считать, что старые языки для отсталых шарашкиных контор. Каждый день люди спорят и переходят на личности только потому, что один считает свой (на котором он программирует) язык лучше языка оппонента. Каждый новоиспеченный "программист" считает, что умирает всё, кроме той технологии, которой он пользуется. Всё это естественно приводится без аргументов.
Каждый второй, будучи сам ноунеймом, может позволить себе неуместную критику сложнейших технологий. Люди чаще всего приходят чтобы критиковать тех, кто хочет сделать что-то полезное для общества. Развиваться? К черту! Изучать как можно больше технологий и выбирать нужное для себя? К черту! Сделать что-то полезное для общества, автоматизировать рутину, внедрить новшества? К черту! Лучше я буду критиковать проекты/программы/языки программирования великих людей, принесших обществу реальную пользу! Каждый студент 3 курса считает себя экспертом в области программирования, физики, математики. Наверняка, кто-то узнал себя в этом. Я хотел бы кое-что сказать для вас, господа-критики, поливающие грязью то, что не смогли бы сами создать. У вас эффект Даннинга-Крюгера. Метакогнитивное искажение личности. И очень мало вероятно, что вы находитесь "склоне просветления" в этом эффекте. Скорее это "пик глупости". Максимализм.
Язык – это лишь инструмент для выполнения определённой задачи. Нужно программировать с использованием языка, а не программировать на языке. А говнокодить можно абсолютно на любом ЯП. Как-то странно считать, что если я пишу на C++, то я представитель элитарного общества, а если на Delphi, то представитель "шарашкиной конторы". Нет. Если руки из жопы или, скажем мягче, мало опыта, то говнокодишь всегда и везде. Когда появляется опыт, то изящный код можно написать с использованием любого языка. А опыт появляется тогда, когда начинаешь пытаться делать что-то полезное. Когда некогда критиковать и выставлять своё мнение в качестве истины в последней инстанции.
Надменность, максимализм и неуместная критика других людей проходят, когда осознаешь, что твои знания ничтожны. Осознание своего вечного невежества приходит через саморазвитие. Саморазвитие основано на ошибках. Ошибки совершает тот, кто что-то делает. И не ошибается лишь тот, кто ничего не делает.
А так как правда субъективна, истина у каждого своя, то я могу и буду ошибаться. Постоянно и во всем.
Чем кто невежественнее, тем нетерпеливее он порывается судить.
© Э. Кондильяк
Не образован тот, кто никогда не осмеливается признаться в том, что он чего-то не может или не знает.
© И. Гофмиллер
Падение тел в вязких средах с учетом динамической силы сопротивления среды
В видео я привожу пример решения задачи о падении двух шариков из различных материалов в воздухе с учетом силы сопротивления пропорциональной квадрату скорости шариков. Рассматриваются два способа решения задачи: поверхностный - на уровне умения находить экстремум и углубленный - на уровне понимания и предугадывания физики процесса с помощью аппроксимации функции решения.
➡️ Смотреть на YouTube ⬅️
#физика #механика #задачи
В видео я привожу пример решения задачи о падении двух шариков из различных материалов в воздухе с учетом силы сопротивления пропорциональной квадрату скорости шариков. Рассматриваются два способа решения задачи: поверхностный - на уровне умения находить экстремум и углубленный - на уровне понимания и предугадывания физики процесса с помощью аппроксимации функции решения.
➡️ Смотреть на YouTube ⬅️
#физика #механика #задачи
В данном видео рассказывается о возможности плыть под парусом против ветра. С точки зрения физики показывается как в этом случае лучше всего расположить парус относительно килевой линии корабля, чтобы с наибольшей выгодой задействовать движущую силу ветра.
➡️ Смотреть на YouTube ⬅️
#физика #механика #задачи
➡️ Смотреть на YouTube ⬅️
#физика #механика #задачи
В группе, состоящей из 23 или более человек, вероятность совпадения дней рождения (число и месяц) хотя бы у двух людей превышает 50 %. Например, если в классе 23 ученика или более, то более вероятно то, что у кого-то из одноклассников дни рождения придутся на один день, чем то, что у каждого будет свой неповторимый день рождения.
➡️ Смотреть на YouTube ⬅️
Для 60 и более человек вероятность такого совпадения превышает 99 %, хотя 100 % она достигает, согласно принципу Дирихле (здравому смыслу), только тогда, когда в группе не менее 367 человек (ровно на 1 больше, чем число дней в високосном году; с учётом високосных лет).
#математика #задачи #теория_вероятностей
➡️ Смотреть на YouTube ⬅️
Для 60 и более человек вероятность такого совпадения превышает 99 %, хотя 100 % она достигает, согласно принципу Дирихле (здравому смыслу), только тогда, когда в группе не менее 367 человек (ровно на 1 больше, чем число дней в високосном году; с учётом високосных лет).
#математика #задачи #теория_вероятностей
7 самых сложных задач для 5-го класса
В этом видео я рассказываю о возможных методах и идеях решения нескольких задач для поступающих в пятый класс Президентского физико-математического лицея №239. Проверьте свои силы и попробуйте их решить. Видеоурок ориентирован на школьников, учащихся лицеев.
➡️ Смотреть на YouTube ⬅️
#математика #задачи #егэ #огэ #алгебра
В этом видео я рассказываю о возможных методах и идеях решения нескольких задач для поступающих в пятый класс Президентского физико-математического лицея №239. Проверьте свои силы и попробуйте их решить. Видеоурок ориентирован на школьников, учащихся лицеев.
➡️ Смотреть на YouTube ⬅️
#математика #задачи #егэ #огэ #алгебра
Список задач из видеоурока выше:
1. Возраст нескольких друзей составляет в сумме 62 года. Через три года он будет составлять 80 лет. Сколько всего друзей?
2. На электронных часах высвечивается 13:00:07. Через какое минимальное время все цифры на табло часов окажутся разными?
3. В 2052 году в марте будет больше воскресений, чем понедельников. На какой день в том году выпадет 12 июня? (Чур, в электронные и «вечные» календари не заглядывать.)
4. Сколько чисел от 459 до 671 содержат в записи одновременно цифры 5 и 6?
Код моделирующий решение (ЯП Pascal): https://pastebin.com/LUdLMWpL
5. Чтобы покрасить поверхность (все грани) деревянного кубика высотой 2 сантиметра, требуется 370 миллиграммов краски. Сколько краски понадобится, чтобы покрасить деревянный параллелепипед размером 4×4×7 дециметров?
6. Сколько существует таких натуральных чисел N, для которых из двух чисел N и N+937 ровно одно будет трехзначным?
Код моделирующий решение (ЯП Pascal): https://pastebin.com/VjQhFJMX
7. По дороге в одном направлении шли два человека со скоростью 6 километров в час, причем второй вышел на два часа позже первого. Первый нанял встреченного всадника отвезти второму письмо и привезти ответ. Всадник доставил письмо через полчаса, затем 40 минут ждал ответа (второй в это время писал письмо, а не шел), а потом повез его обратно. Сколько времени потребуется всаднику на доставку ответа?
Посмотреть разбор решений: ➡️ Смотреть на YouTube ⬅️
1. Возраст нескольких друзей составляет в сумме 62 года. Через три года он будет составлять 80 лет. Сколько всего друзей?
2. На электронных часах высвечивается 13:00:07. Через какое минимальное время все цифры на табло часов окажутся разными?
3. В 2052 году в марте будет больше воскресений, чем понедельников. На какой день в том году выпадет 12 июня? (Чур, в электронные и «вечные» календари не заглядывать.)
4. Сколько чисел от 459 до 671 содержат в записи одновременно цифры 5 и 6?
Код моделирующий решение (ЯП Pascal): https://pastebin.com/LUdLMWpL
5. Чтобы покрасить поверхность (все грани) деревянного кубика высотой 2 сантиметра, требуется 370 миллиграммов краски. Сколько краски понадобится, чтобы покрасить деревянный параллелепипед размером 4×4×7 дециметров?
6. Сколько существует таких натуральных чисел N, для которых из двух чисел N и N+937 ровно одно будет трехзначным?
Код моделирующий решение (ЯП Pascal): https://pastebin.com/VjQhFJMX
7. По дороге в одном направлении шли два человека со скоростью 6 километров в час, причем второй вышел на два часа позже первого. Первый нанял встреченного всадника отвезти второму письмо и привезти ответ. Всадник доставил письмо через полчаса, затем 40 минут ждал ответа (второй в это время писал письмо, а не шел), а потом повез его обратно. Сколько времени потребуется всаднику на доставку ответа?
Посмотреть разбор решений: ➡️ Смотреть на YouTube ⬅️
👍2
Мои размышления о форме вращающейся жидкости:
https://habrahabr.ru/post/345994/
Давайте представим, что мы имеем некоторую цилиндрическую тару, в которой находится некоторая жидкость. Вращаться жидкость можно заставить, как минимум, двумя очевидными способами: размешать её каким-нибудь предметом или начать вращать цилиндрическую тару, что, благодаря силам трения между жидкостью и поверхностью сосуда, приведет к вращению жидкости, увлекаемой содержащим её вращающимся сосудам.
Попробуем очень ооочень упрощенно выразить форму вращающейся жидкости. Читайте в статье.
➡️ Читать размышления ⬅️
https://habrahabr.ru/post/345994/
Давайте представим, что мы имеем некоторую цилиндрическую тару, в которой находится некоторая жидкость. Вращаться жидкость можно заставить, как минимум, двумя очевидными способами: размешать её каким-нибудь предметом или начать вращать цилиндрическую тару, что, благодаря силам трения между жидкостью и поверхностью сосуда, приведет к вращению жидкости, увлекаемой содержащим её вращающимся сосудам.
Попробуем очень ооочень упрощенно выразить форму вращающейся жидкости. Читайте в статье.
➡️ Читать размышления ⬅️
Пример переключения классов средствами javascript. Плюс простейшее замыкание для циклического счетчика нажатий:
https://jsfiddle.net/rgx74v8w/7/
#javascript #js #замыкания
https://jsfiddle.net/rgx74v8w/7/
#javascript #js #замыкания
Переключение CSS-классов средствами Javascript.
Подсветка выбранного элемента.
Пример логики выбора элементов.
Подсчет количества нажатий на каждый элемент посредством присваивания замыкания каждому элементу списка elementList.
https://jsfiddle.net/9md108g3/3/
#javascript #js #замыкания
Подсветка выбранного элемента.
Пример логики выбора элементов.
Подсчет количества нажатий на каждый элемент посредством присваивания замыкания каждому элементу списка elementList.
https://jsfiddle.net/9md108g3/3/
#javascript #js #замыкания
Ручное + автоматическое рандомное переключение CSS-классов средствами Javascript. Подсветка выбранного элемента. Пример логики выбора элементов. Подсчет количества нажатий на каждый элемент посредством присваивания замыкания каждому элементу списка elementList. Мерцание с помощью метода setInterval(), использующий метод переключения CSS-классов в контексте текущего объекта, контекст которого получен через call()
https://jsfiddle.net/dpg3mybz/1/
#javascript #js #замыкания
https://jsfiddle.net/dpg3mybz/1/
#javascript #js #замыкания
Парочка интересных способов получения целой части вещественного числа в языке Javascript. Допустим, у нас есть вещественное
1 способ. Самый банальный. Использовать средства библиотеки Math.
2 способ. Изящная работа со строкой, полученной из числа.
Также возвращает целую часть. Однако, в некоторых версиях может выполнить нежелательно округление вверх.
4 способ. Использование побитовых операций. n ^ 0;
Так как побитовые операции в JS определены только для целых чисел, то на низком уровне отбрасывается дробная часть, а операция исключающего или (
5 способ. Двойное побитовое отрицание (инверсия).
Таким образом,
Благодаря свойству инвертирования и представления чисел в дополнительном коде, тождество
#js #javascript
double числоvar n = 1234.567; Нужно получить только целую часть от него, т. е. 1234.1 способ. Самый банальный. Использовать средства библиотеки Math.
Math.floor(n); Метод Math.floor() возвращает наибольшее целое число, которое меньше или равно данному числу. Поэтому при применении полностью отбрасывается дробная часть.2 способ. Изящная работа со строкой, полученной из числа.
((n + "").split("."))[0]; Конкатенация числа и пустой строки возвращает из числа 1234.567 строку "1234.567". Затем для строки используется метод split(), принимающий в качестве параметра разделитель-точку, метод split() возвращает массив/список слов, полученных по разделителю. В нашем случае у нас всегда получится два слова. Далее мы получаем целую часть, обращаясь к первому слову по нулевому индексу. Правда оно остается строкой, но это легко изменить, обернув данное выражение в метод parseInt(). Функция parseInt(string, radix) принимает строку в качестве аргумента и возвращает целое число в соответствии с указанным основанием системы счисления radix. Удобство в том, что вместо точки может стоять запятая, которую легко применить в методы split(). Таким образом, число 1234 можно получить так:parseInt(((n + "").split("."))[0], 10)
3 способ. Простое использование метода parseInt(n, 10);Также возвращает целую часть. Однако, в некоторых версиях может выполнить нежелательно округление вверх.
4 способ. Использование побитовых операций. n ^ 0;
Так как побитовые операции в JS определены только для целых чисел, то на низком уровне отбрасывается дробная часть, а операция исключающего или (
XOR, ^) некоторого числа n вместе с нулем дает именно это число n. Только без дробной части.5 способ. Двойное побитовое отрицание (инверсия).
~ ~n;
Преимущества: самый быстрый способ отбрасывания дробной части вещественного числа. Побитовые операции в Javascript работают со знаковыми (signed) целыми (integer) длиной в 32 бита (оператор >> работает с unsigned). Иными словами, побитовые операторы интерпретируют операнды как последовательность из 32 битов.Таким образом,
1234 в двоичном коде будет равно:0000 0000 0000 0000 0000 0100 1101 0010Его побитовая инверсия ~1234 в двоичном коде будет равна:
1111 1111 1111 1111 1111 1011 0010 1101 (2) —> -1235 (10)А побитовая инверсия побитовой инверсии равна:
~ ~1234 = ~(~1234) = ~(-1235):т.е. получили исходное число, только с отброшенной частью после плавающей точки.
0000 0000 0000 0000 0000 0100 1101 0010 (2) —> 1234 (10)
Благодаря свойству инвертирования и представления чисел в дополнительном коде, тождество
-1235 + 1 = -1234 мы можем в общем случае записать как (~n + 1) == - n или ~n == - (n + 1)
Данное выражение можно использовать в логической ветке, когда нужно сделать некоторые действия, если n != -1 (или экранировать какой-то блок в случае если переменная-флаг равна -1 :if( ~n ){ //зайдет в эту ветку только, если n != -1 }
➡️ https://jsfiddle.net/87fza9rs/19/ ⬅️#js #javascript
👍1
Черновик для экспериментов. Задача: распознать байтовые слова в строке и сделать перевод байтовых слов в соответствующие числа и байтовые представления в 16-ричной системе исчисления. Метод charToInt не защищен от ввода некорректных данных. И для большого буфера нужно сделать отдельный метод пересчета с учетом старшинства байтов.
Реализация на С.
[ https://onlinegdb.com/Ske3hotH1N ]
#cpp #c #cplusplus #си
Реализация на С.
[ https://onlinegdb.com/Ske3hotH1N ]
#cpp #c #cplusplus #си
Задача по программированию. Тривиальная задача сравнения метода вычисления факториал с помощью цикла и метода вычисления факториала с помощью рекурсии. Берется некоторое число n, для которого вычисляем факториал разными способами. Вычисления засовываем в цикл с 1000 итераций, чтобы снизить погрешность. Засекаем время с помощью метода Milliseconds() (библиотека Utils). Выводим результаты. В большинстве случаев рекурсия выполняется быстрее. Предлагаю обсудить, почему так происходит?
[ Язык реализации: Pascal ]
Обсуждение задачи: vk.com/wall-51126445_30047
Полный код: https://pastebin.com/UzPkbXDa
#репетитор #mentor #программирование #физика #математика #it #информатика #pascal #задачи #профилирование
[ Язык реализации: Pascal ]
Обсуждение задачи: vk.com/wall-51126445_30047
Полный код: https://pastebin.com/UzPkbXDa
#репетитор #mentor #программирование #физика #математика #it #информатика #pascal #задачи #профилирование
Завершил чтение книги "Совершенный код" Стива Макконнелла. Несмотря на то что первые 50 страниц книги наполнены информацией, которая может показаться очевидной любому мыслящему человеку, книгу стоит прочесть до конца. Наполненная множеством интересных примеров, книга действительно способна навести на путь мудрого программирования. Примеры в данной книге более приближены к реальному коммерческому коду, чем игрушечные примеры из книг и методичек преподавателей информатики в школах и вузах.
Для себя можно найти много правил о том, как именно нужно писать код, как его нужно форматировать и делегировать функциональность своего кода, чтобы в дальнейшем его было просто сопровождать и находить в нем ошибки.
Подробно написано о структурах данных и в каких случаях какие структуры лучше всего применять. К каждому правилу автор приводит практический пример.
Самыми полезными с практической точки зрения мне показались главы о рефакторинге, стратегиях оптимизации кода и о методиках оптимизации кода. А последняя часть книги под названием "Мастерство программирования" помогает понять, как именно развиваться в этой области.
И, конечно, хочется привести парочку самых ярких мотивационных моментов данной книги.
В 1972 году, на лекции, посвященной получению премии Тьюринга, Эдсгер Дейкстра заявил, что большинство аспектов программирования являет собой попытки компенсации строго ограниченных способностей разума. Самые лучшие программисты — те, кто понимают, насколько ограничены их возможности. Они скромны. Худшие программисты отказываются признать, что их способности не соответствуют задаче. Характер не позволяет им стать отличными программистами. Чем усерднее вы работаете над компенсацией ограниченных возможностей своего разума, тем лучше будете программировать. Быстрота вашего развития напрямую зависит от вашей скромности.
По моему субъективному мнению, данная книга должна быть первой. В некоторых моментах книга может показаться сложной, если у вас нет достаточного опыта. Особенно это связано с примерами на C++ и Assembler. Но всё равно эта книга должна быть первой, потому что лучше вырабатывать хорошие привычки с самого начала своего самообразования.
#рецензия #программирование
Для себя можно найти много правил о том, как именно нужно писать код, как его нужно форматировать и делегировать функциональность своего кода, чтобы в дальнейшем его было просто сопровождать и находить в нем ошибки.
Подробно написано о структурах данных и в каких случаях какие структуры лучше всего применять. К каждому правилу автор приводит практический пример.
Самыми полезными с практической точки зрения мне показались главы о рефакторинге, стратегиях оптимизации кода и о методиках оптимизации кода. А последняя часть книги под названием "Мастерство программирования" помогает понять, как именно развиваться в этой области.
И, конечно, хочется привести парочку самых ярких мотивационных моментов данной книги.
В 1972 году, на лекции, посвященной получению премии Тьюринга, Эдсгер Дейкстра заявил, что большинство аспектов программирования являет собой попытки компенсации строго ограниченных способностей разума. Самые лучшие программисты — те, кто понимают, насколько ограничены их возможности. Они скромны. Худшие программисты отказываются признать, что их способности не соответствуют задаче. Характер не позволяет им стать отличными программистами. Чем усерднее вы работаете над компенсацией ограниченных возможностей своего разума, тем лучше будете программировать. Быстрота вашего развития напрямую зависит от вашей скромности.
По моему субъективному мнению, данная книга должна быть первой. В некоторых моментах книга может показаться сложной, если у вас нет достаточного опыта. Особенно это связано с примерами на C++ и Assembler. Но всё равно эта книга должна быть первой, потому что лучше вырабатывать хорошие привычки с самого начала своего самообразования.
#рецензия #программирование
В статье я подробно, вплоть до самых мелочей, рассмотриваю три способа взятия интеграла Эйлера-Пуассона. В одном из способов выводится вспомогательная формула редукции. Для нахождения некоторых сложных интегралов можно использовать формулы редукции, которые позволяют понизить степень подынтегрального выражения и вычислить соответствующие интегралы за конечное число шагов.
➡️ Читать статью ⬅️
Мне было интересно освежить область памяти, в которой хранились обрывки лекции по математическому анализу еще со 2 курса вуза. Кстати, преподаватель объяснял тогда взятие интеграла самым простым способом (через полярные координаты) и то умудрился объяснить настолько криво и сложно, что мало кто понимал. В этой статье я хочу сделать это максимально просто и подробно, чтобы начинающие математики легко разобрались в теме ;)
➡️ Читать статью ⬅️
Мне было интересно освежить область памяти, в которой хранились обрывки лекции по математическому анализу еще со 2 курса вуза. Кстати, преподаватель объяснял тогда взятие интеграла самым простым способом (через полярные координаты) и то умудрился объяснить настолько криво и сложно, что мало кто понимал. В этой статье я хочу сделать это максимально просто и подробно, чтобы начинающие математики легко разобрались в теме ;)