Точка входа в программирование
21.3K subscribers
954 photos
172 videos
1 file
2.49K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Решение задачи про продажу стада коров

Представим изначальное количество коров в стаде как число 10*n + k, где n – любое число >= 0, а k – число в диапазоне [0..9]. Тогда, продав всех коров, братья заработали (10*n + k)^2 рублей. Проводим преобразования:

(10*n + k)^2 = 100*n^2 + 20*n*k + k^2

Из условия известно, что количество десятков в этом числе – нечётное. Рассмотрим слагаемые внимательнее: 100*n^2 не влияет на количество десятков в итоговом значении, 20*n*k дает чётное количество десятков при любых n и k.

Значит, чтобы количество десятков было нечетным, в последнем слагаемом k^2 количество десятков должно быть нечётным. Так как k – это число [0..9], то переберём все возможные значения. Нам подойдут только числа 4 и 6, так как их квадраты равны 16 и 36 соответственно.

В обоих случаях количество единиц равно 6. То есть при любых k и n, если количество десятков нечетное, то в единицах будет 6. Соответственно младшему брату не хватило 4 рублей до равенства. Старший брат отдал ему свой нож (потерял стоимость ножа), младший получил нож (стоимость ножа). Получается, нож стоит 2 рубля.

Ответ: 2 рубля.
Подборка фронтенд-проектов для новичков

Создание собственных небольших проектов сильно прокачивает ваши навыки. В подборке мы собрали несколько идей веб-проектов, которые будет интересно реализовать:

tprg.ru/bWHv

#фронтенд
По какой причине вы решили стать программистом?

Давайте отойдём от банального аргумента «потому что много платят». Это может быть всё, что угодно: любовь к играм, желание делать собственные сайты, идея какого-то проекта, которую вынашиваете ещё с детства, и т.д.

Свои ответы оставляйте в комментариях.

#чат
История пути нашего подписчика от студента до разработчика

Почитайте историю о том, как студент из тульского университета нашёл свою первую работу разработчика на C# и как удалось совместить её с учёбой.

Автор также поделился материалами, которые помогут усовершенствовать свои навыки программирования и изучить C#:

tprg.ru/uNlz

#советы
В это время среда разработки установила кучу плагинов и заняла 100 Гб памяти
15 февраля — день рождения Никлауса Вирта, создателя языка Pascal

В первую очередь Вирт известен за язык Pascal, который до сих пор преподаётся в российских школах и вузах. Хоть в этом году языку уже 50 лет, его идеи по-прежнему живы в современных языках.

Никлаус Вирт внёс огромный вклад в развитие IT-индустрию, и он не ограничивается одним лишь Pascal. В статье рассказывается и о других заслугах профессора:

tprg.ru/fcOj
Где общаются разработчики: русскоязычные чаты программистов

Общение с опытными разработчиками помогает новичкам исправить неочевидные ошибки и решить проблемы, которые трудно загуглить.

Мы собрали несколько ссылок на чаты программистов, среди которых вы можете найти подходящие по профилю:

tprg.ru/2PZJ

#советы
Что послушать: подкаст о том, как учить языки программирования

Гостем 200 выпуска подкаста Podlodka стал Виталий Брагилевский, который за свою карьеру преподавал суммарно 20 языков. В подкасте он обсудил различные языки программирования, их использование и популярность:

tprg.ru/Dwsy

#подкасты
Прикладные языки приходят и уходят, а Ассемблер вечен
Подборка 11 инструментов, облегчающих разработку на Java

Для языка Java существует множество удобных и полезных инструментов, которые упрощают тестирование и ускоряют разработку проектов.

В подборке собраны наиболее популярные инструменты для Java среди систем сборки, сред разработки и фреймворков :

tprg.ru/K6Vh

#java
Что такое язык Go: объяснение за 5 минут

Язык Go используется в разработке бэкенда веб-приложений и ценится за его минималистичность и безопасность.

Если вы решили стать бэкенд-разработчиком, но не совсем понимаете, в чём Go превосходит Java и C++ для бэкенда, то рекомендуем посмотреть короткое видео. В нём нет разбора синтаксиса, но зато хорошо объяснены ключевые концепции языка, которые могут вдохновить на знакомство с этим языком:

youtu.be/wBxOKQpdESg

#go #бэкенд
Всё о сортировке в Python: исчерпывающее руководство

Как работает встроенная сортировка в Python? В статье разобраны основные возможности сортировки через sorted() для итерируемых объектов и list.sort() для списков:

tprg.ru/Kqta

#python #сортировки
Сервисы Windows смеются над жалкими попытками программ получить немного оперативной памяти
Как найти сумму и количество чётных и нечётных чисел в диапазоне на C#

Если вы только начали изучать C#, то решение этой задачи поможет разобраться, как работают циклы и конструкции if-else.

Разбор задачи на YouTube:

youtu.be/bJ4DtsojdrI

#csharp
История входа в IT: из инженера-химика в Java-разработчики

Автор статьи в детстве мечтал стать программистом, а в итоге выучился на химика. Поработав некоторое время по специальности, он разочаровался в ней и решил вернуться к своей детской мечте.

Почитайте его историю тернистого пути в Java-разработчики:

tprg.ru/Kjuk

#советы
Логические задачки, мемы и не только в нашем боте

Мы обновили раздел развлечений бота и добавили рассылку случайных мемов и задачек с нашего сайта. И теперь вы можете получить их прямо в Telegram-чате. Удобно, не правда ли?

У бота есть ещё несколько крутых фишек, попробуйте:

t.iss.one/tproger_official_bot?start=entertainments
Динамическое выделение памяти в C++

Для создания переменной требуется выделить определённое количество памяти. А если во время работы программы требуется, например, записать строку, введённую пользователем, то заранее предугадать её размер невозможно.

В подобном случае нужно выделить память динамически, то есть найти размер переменной и в соответствии с ним получить требуемое количество памяти.

Подробнее о динамическом выделении памяти:

tprg.ru/U9FV

#cpp
Задача про деление бактерий

Раз мы коснулись сегодня темы перехода из химиков в программисты, то предлагаем решить тематическую задачу.

Представьте, что вы биохимик-лаборант в секретной лаборатории. Вы провели эксперимент, в ходе которого обнаружили, что если положить 1 бактерию в пробирку, то пробирка заполнится бактериями за 60 секунд.

Известно, что 1 бактерия делится на 2 бактерии один раз в конце каждой секунды.

Через сколько секунд заполнится пробирка, если в неё положить 3 бактерии?

Ответ опубликуем через 2 часа.

#задачи
Через сколько секунд заполнится пробирка, если в неё положить 3 бактерии?
Anonymous Quiz
37%
30
20%
45
20%
58
22%
59
Решение задачи про деление бактерий

Задачу удобно решать, если представить её как битовую маску std::uint64_t, ведь каждая бактерия удваивается в конце каждой секунды.

Рассмотрим заполнение пробирки одной бактерией. В первую секунду заполнен ровно 1 младший бит (нулевой бит) 000...0001. Через 60 секунд у нас будет заполнен 60-й бит, то есть 60-й бит является условием заполнения колбы.

Если положить три бактерии, то битовая маска примет вид 000...0011 (двоичное представление числа 3 — 11). Через 59 секунд сдвигом будет заполнен 60-й бит. Однако 59-ый бит тоже будет равен 1, и часть бактерий вывалится из пробирки.

Если рассмотреть пробирку через 58 секунд, то она не заполнится до конца, поскольку будут заняты 58-й и 59-й бит.

Ответ: 59 секунд.

Мы показали решение задачи с точки зрения программиста, но её можно решить и математически через степени двойки, что, по сути, аналогично предложенному решению.

Источник
Вводный курс по машинному обучению с использованием TensorFlow

Если вы задумались о том, чтобы изучить машинное обучение и создавать нейронные сети, то посмотрите первый ролик из этого цикла. В нём кратко и интересно объясняются основные концепции машинного обучения.

Для обучения моделей используется популярный фреймворк TensorFlow, поэтому перед погружением в курс следует знать основы языка Python.

Введение: youtu.be/qu_WEHvGXWk

Основы компьютерного зрения: youtu.be/cjSI3gcC2IA

Введение в свёрточные нейронные сети: youtu.be/lthIsMLaq1Q

Создание классификатора изображений: youtu.be/WzxkhTxKZcs

#ml #python #курсы