PRO Go @pro_gofer Channel on Telegram

PRO Go

@pro_gofer


Изучай язык Go вместе с нами.

Закрепить теорию на практике можно на бесплатном курсе https://clck.ru/36mYmG

По всем вопросам:
@Santiago_de

PRO Go (Russian)

PRO Go - это Telegram канал, который поможет тебе изучить язык программирования Go вместе с опытными специалистами. Если ты хочешь углубить свои знания в этом языке программирования или начать изучение с нуля, то этот канал - идеальное место для тебя. Здесь ты найдешь полезные материалы, уроки, задания и многое другое, чтобы сделать свой путь к освоению Go интересным и продуктивным.

Канал также предлагает бесплатный курс, где ты сможешь закрепить теорию на практике. Присоединяйся к нам, чтобы улучшить свои навыки программирования и стать профессионалом в области Go.

Если у тебя возникли вопросы или ты хочешь узнать больше о канале, обращайся к администратору @Santiago_de. Присоединяйся к PRO Go и стань экспертом в языке программирования Go!

PRO Go

23 Nov, 08:07


🛻 Задача про грузовик и воробья 🐦

Представьте себе:
Есть мост длиной 10 километров 🌉, его максимальная нагрузка — 25 тонн.

По мосту едет грузовик 🚛 с массой ровно 25 тонн, и он уже добрался до середины. Баланс моста сохраняется.

Но тут на грузовик садится воробей 🐦.

Вопрос:
Превысит ли вес воробья максимальную нагрузку моста и приведёт ли это к его разрушению? 🤔

Делитесь своими мыслями под скрытым текстом в комментариях.👀

#логическая_задача

PRO Go

20 Nov, 12:34


🎉 Друзья, готовьтесь к самой большой распродаже года на Stepik! 🎉

С 26 ноября по 9 декабря 2024 года стартует грандиозная акция, где вы сможете приобрести наши курсы со скидкой 30%🤩

PRO Go

19 Nov, 05:59


#memes

PRO Go

18 Nov, 06:59


📌 Решение задачи на находчивость

🔍 Разгадка этой загадки проста: парень действительно выиграл спор, но сделал это благодаря игре слов.

Он вполз не в бутылку, а в комнату, где эта бутылка находилась. Его друзья восприняли фразу буквально, а он использовал её двусмысленность, чтобы легко победить.

💡 Это классический пример логической задачи, где важно внимательно слушать и не делать поспешных выводов.

Вывод: Всегда проверяйте, что именно стоит за словами — возможно, разгадка проще, чем кажется! 😄

🧩 Ещё больше задач на курсе PRO Логические задачи со скидкой 20%, где ты улучшишь свое логическое и критическое мышление благодаря решению задач

#решение_задачи

PRO Go

17 Nov, 08:21


📌 Задача на находчивость!

В компании друзей разгорелся необычный спор. Один из парней бросил вызов:

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

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

Но к их удивлению, он легко выиграл спор.

🧩 Вопрос: Как он это сделал?

Делитесь своими мыслями под скрытым текстом в комментариях.👀

#логическая_задача

PRO Go

14 Nov, 18:29


🧐 Друзья, всем привет!

Я наконец решился на доработку курса PRO Go. Основы программирования. Буду учитывать ваши пожелания и замечания и стараться сделать курс лучше. Буду рад вашей поддержке и помощи! Если есть идеи для доработки или кажется, что какая-то тема недостаточно раскрыта, напишите мне лично или оставьте комментарий. Спасибо, что помогаете развивать курс! 💬💡

Что уже сделано
📌 В первую очередь мы основательно переработали раздел о вводе данных. Теперь в теме подробно объясняется, как правильно использовать fmt.Scan и пустой идентификатор _.

📚 Мы добавили примеры для работы с bufio.Scanner, особенно для ввода строк с пробелами, что часто вызывает трудности у начинающих.

🚀 Тема стала более структурированной и понятной, так что теперь справиться с ней будет гораздо проще!

#новостикурса

PRO Go

12 Nov, 11:58


#memes

PRO Go

10 Nov, 18:10


📌 Решение задачи

🔍 Для ответа на вопрос, у кого больше денег, не обязательно считать точное количество монет каждого номинала у обоих. Достаточно понять, что:

1️⃣ У Елены и Ивана одинаковое количество монет, но у них разное количество рублёвых монет. Чтобы найти разницу в сумме, нам достаточно сравнить только излишек монет каждого.

2️⃣ Шаг 1: Сравним деньги.
У обоих есть 64 рублёвые монеты, и они одинаковые, значит, на них можно не обращать внимания, ведь сумма у них одинаковая. У Ивана остаётся 40 рублёвых монет, а у Елены — 40 пятирублёвых монет. Оставшиеся пятирублёвки у них снова одинаковые, и их тоже можно не учитывать.

Тогда разница в сумме будет зависеть только от 40 монет каждого:

У Елены — 40 монет по 5 рублей, это 200 рублей.
У Ивана — 40 монет по 1 рублю, это 40 рублей.
Значит, у Елены на 200 - 40 = 160 рублей больше.

3️⃣ Шаг 2: Найдём вес монет Ивана.
Здесь можно избежать сложных расчётов, если использовать разницу в весе.

Пятирублёвая монета на 2,7 грамма тяжелее рублёвой. Поскольку у Ивана 40 рублёвых монет вместо 40 пятирублёвых, его монеты будут легче на 40 × 2,7 = 108 грамм.

Вес монет у Елены — 1,134 кг, значит, вес монет у Ивана будет меньше на 108 грамм:

1,134 - 0,108 = 1,026 килограмма.

Ответ: У Елены на 160 рублей больше, а вес монет Ивана составляет 1,026 килограмма.

🧩 Ещё больше задач на курсе PRO Логические задачи со скидкой 20%, где ты улучшишь свое логическое и критическое мышление благодаря решению задач

#решение_задачи

PRO Go

09 Nov, 08:30


📌 Задача на логику и математику!

У нас есть два человека: Елена и Иван.

💰 Существуют монеты двух номиналов — рублёвые и пятирублёвые.

Известные факты:

1️⃣ У Елены и Ивана одинаковое количество монет.

2️⃣ У Елены — 64 рублёвые монеты и несколько пятирублёвых монет. Все её монеты вместе весят 1,134 кг.

3️⃣ У Ивана — 104 рублёвые монеты и несколько пятирублёвых монет.

4️⃣ Каждая пятирублёвая монета на 2,7 грамма тяжелее рублёвой.

🧩 Вопросы:

1️⃣ У кого больше денег и на сколько больше?

2️⃣ Сколько весят монеты Ивана?

Делитесь своими мыслями под скрытым текстом в комментариях.👀

#решение_задачи

PRO Go

08 Nov, 19:48


Распродажа 11.11 на Stepik

Наши друзья из Stepik делают в день всемирного шоппинга 11.11 распродажу. Причем вообще ВСЕХ курсов, которые есть на платформе. Ну вот таковы правила площадки. Мы ничего с этим не можем сделать😉

Мы сами не делаем никаких скидок в этот день!

НО😎

Мы будем делать большую распродажу в черную пятницу 29 ноября. Там будут скидки бОльше, чем сейчас 11.11 на Stepik.

Поэтому если хотите получить курсы по максимальным скидкам, то дождитесь 29 числа😉

Хороших выходных😊

PRO Go

07 Nov, 12:31


🧐Привет, друзья! Продолжаю писать для вас посты с разбором самых часто задаваемых вопросов из наших курсов.

📘Сегодня разберёмся с особенностями функций fmt.Scan, fmt.Scanf, fmt.Scanln и узнаем, как и когда использовать пустой идентификатор _.

💡 Что такое fmt.Scan и его разновидности?

fmt.Scan помогает считывать ввод и сразу сохранять его в переменные.

Пример:
var name string
var age int
fmt.Scan(&name, &age)

Здесь мы считываем имя и возраст, сохраняя их в name и age.

Альтернативы fmt.Scan:

fmt.Scanf — позволяет задать формат ввода, полезно, когда надо указать порядок или конкретный тип значений:

fmt.Scanf("%s %d", &name, &age)

fmt.Scanln — считывает всю строку до конца, включая пробелы (удобно, если текст содержит пробелы).

🕳 Пустой идентификатор _
_
— это пустой идентификатор (не "переменная"), который используется для игнорирования значений. Это полезно, если нужно пропустить значения, которые Go возвращает при вызове функции, но они нам не нужны.

Пример с fmt.Scan:
var name string
var age int
_, err := fmt.Scan(&name, &age)

Первый _ игнорирует количество считанных значений.
err сохраняет информацию о возможных ошибках.

Если нужно полностью игнорировать результаты fmt.Scan, можно написать так:
_, _ = fmt.Scan(&var1, &var2)

Это пропустит оба возвращаемых значения, позволяя получить ввод, но не использовать результаты или проверку ошибок. Однако обработка ошибок — важная часть кода, поэтому избегайте этого подхода в серьёзных проектах!🚀

💻Удачи вам в изучении наших курсов:

▶️ PRO Go. Основы программирования
▶️ PRO Go. Алгоритмы поиска и сортировки
▶️ PRO Go. Базовый курс по структурам данных

#fmtScan #пустойиндификатор_

PRO Go

05 Nov, 07:25


#memes

PRO Go

03 Nov, 16:18


💡 Решение задачи на сообразительность: однажды в баре

1️⃣ Берём полупустой стакан с водкой и доливаем его водой до края. В итоге получаем 150 мл 20-градусного раствора, так как смешиваем 75 мл 40-градусной водки и 75 мл воды:
(40 + 0) / 2 = 20 градусов

2️⃣ Во втором стакане осталась половина воды — 75 мл. Теперь наливаем в него 75 мл нашего 20-градусного раствора. В итоге получаем стакан, полный 10-градусного раствора:
(20 + 0) / 2 = 10 градусов

3️⃣ Половину стакана 20-градусного раствора, что осталась, бармен смешивает с 10-градусным раствором из второго стакана, снова до краёв. В итоге получается нужный раствор крепостью 15 градусов:
(20 + 10) / 2 = 15 градусов

Ответ: бармен получил 150 мл 15-градусного раствора спирта!

🧩 Ещё больше задач на курсе PRO Логические задачи со скидкой 20%, где ты улучшишь свое логическое и критическое мышление благодаря решению задач

#решение_задачи

PRO Go

02 Nov, 09:02


📌 Задача на сообразительность: однажды в баре🥁

У бармена в арсенале всего два одинаковых стакана по 150 мл. Один из них наполнен водой, а другой — 40-градусной водкой, но наполовину пуст.

🔍 В бар заходит посетитель и просит приготовить 15-градусный раствор спирта.

Как бармену удалось приготовить такой раствор, используя только эти два стакана? И какой объём смеси получился в итоге?

Придумайте своё решение и поделитесь в комментариях! 👇

Делитесь своими мыслями под скрытым текстом в комментариях.👀

#решение_задачи

PRO Go

29 Oct, 12:31


#memes

PRO Go

27 Oct, 11:00


🧩 Решение задачи: Выходной

Начальник запутал все дни недели, чтобы программисту 🧑‍💻 было над чем подумать! Давайте разберёмся в днях, чтобы выяснить, какой же день недели — долгожданный выходной. 🚀

1️⃣ Начнём с первой части:
«Когда послезавтрашний день станет вчерашним»

Представим, что сегодняшний день — это X. Тогда:

Завтра будет X+1
Послезавтра — X+2
Чтобы день X+2 стал вчерашним, должен наступить новый день — X+3. 📅

2️⃣ Теперь вторая часть:
«как тот день, который был сегодня, когда позавчера было завтра»

Пусть X — это сегодня:

Вчера будет X−1
Позавчера — X−2
Чтобы позавчера стало «завтра», вернёмся ещё на один день назад. Значит, когда «позавчера было завтра» — это X−3.

3️⃣ Объединяем части:
Получается, через 3 дня (X+3) «выходной будет так же далеко от субботы», как и 3 дня назад (X−3). 🤔

То есть в какую бы сторону мы ни двигались от изначального дня (субботы), уходим на одинаковое количество дней. Значит, суббота — и есть долгожданный выходной! 🎉

🧩 Ещё больше задач на курсе PRO Логические задачи со скидкой 20%, где ты улучшишь свое логическое и критическое мышление благодаря решению задач

#решение_задачи

PRO Go

26 Oct, 09:43


🧩 Загадка для программистов: Выходной

Программист спрашивает у начальника:
— Когда можно взять выходной? 🏖

👨‍💼 Начальник загадочно отвечает:

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

Наш программист 🧑‍💻 сначала ничего не понял, а потом как понял! 🎉

Когда будет выходной?

Делитесь своими мыслями под скрытым текстом в комментариях.👀

#решение_задачи

PRO Go

23 Oct, 07:00


Друзья это ваш админ 👋. Часто замечаю, что у многих в начале курса возникают трудности с пониманием, как работает bufio.NewScanner. Для вас я подготовил этот пост-шпаргалку, чтобы раз и навсегда прояснить, что это такое и как правильно им пользоваться!

В Go есть несколько способов ввода данных, и один из самых удобных — через bufio.NewScanner.

🔎 Что делает bufio.NewScanner?

bufio.NewScanner используется для построчного ввода данных от пользователя:

scanner := bufio.NewScanner(os.Stdin) // создаем копию структуры bufio.Scanner
_ = scanner.Scan() // на этом месте приложение останавливается и ожидает ввода. Завершением ввода будет нажатие Enter
name := scanner.Text() // сохраняем всё, что ввели, в переменную "name"

Что делает каждая строчка?
1️⃣ scanner := bufio.NewScanner(os.Stdin)
Здесь мы создаем новый экземпляр (копию) структуры Scanner из пакета bufio. Она будет использоваться для считывания данных, которые вводятся через стандартный ввод (os.Stdin). Это подготовка к обработке ввода построчно.

2️⃣ _ = scanner.Scan()
Этот метод останавливает выполнение программы и ждет, пока пользователь что-то введет и нажмет клавишу Enter. После этого данные считываются, но пока ещё не сохранены. Символ _ используется, чтобы игнорировать возвращаемое значение, так как нам не важен результат выполнения (оно возвращает true или false, указывая, было ли что-то считано).

3️⃣ name := scanner.Text()
После того как пользователь ввел данные, мы вызываем метод Text() у объекта scanner, чтобы получить считанную строку. Эту строку сохраняем в переменную name, с которой можем дальше работать.

🔄 Чем отличается от fmt.Scan?
fmt.Scan удобен для простого ввода, но его гибкость ограничена. Если нужно вводить строки с пробелами или большие объемы текста — bufio.NewScanner станет более подходящим инструментом.

Пример с fmt.Scan:

var name string
fmt.Scan(&name)

Здесь ввод завершится после первого пробела, в отличие от bufio.NewScanner, который считывает целую строку.

#bufioNewScanner #fmtScan