ЭЛЬЗАРА ПРО КОД
94 subscribers
41 photos
38 videos
12 links
C, C++, C#, Java
Алгоритмы и структуры данных
Download Telegram
Привет, ребята!
Сейчас я записываю курс по программированию (по базе), и уже записала большую часть уроков. Вот вчера записывала про работу с файлами 😉👨🏻‍💻👩🏻‍💻

А бонусом всем уже программирующим записала урок про «Связанные списки»
❤‍🔥4
Привет, ребята! Как у вас с целеустремлённостью?

У меня по-разному бывало, но чаще всего получалось именно у тех, у кого есть чёткая цель 🎯, план и дедлайны.

За последние 5 лет были всего пара человек, которые попробовали, но поняли, что IT — не их путь.

Решила поделиться с вами мыслями, которые помогут держать мотивацию на плаву 😉👨🏻‍💻👩🏻‍💻
🔥4👍1
⚡️ 10 энергетиков при изучении программирования

1️⃣ Первый работающий код – когда после попыток и ошибок программа наконец-то запускается правильно. Этот момент заряжает и мотивирует идти дальше! 🚀

2️⃣ Понимание логики – когда в голове вдруг «щёлкает», и сложная тема становится понятной. 💡

3️⃣ Решение сложной задачи – чувство победы, когда после долгих попыток находишь верное решение. 🏆

4️⃣ Осознание прогресса – сравниваешь свой первый код с тем, что пишешь сейчас, и понимаешь, насколько вырос. 📈

5️⃣ Обратная связь от наставника или ментора – поддержка и рекомендации помогают быстрее изучать и избегать ошибок. 🤝

6️⃣ Применение знаний на практике – когда сам создаёшь небольшую, но актуальную программу. 💻⚙️

7️⃣ Перспективы и новые возможности – понимаешь, что осваиваешь востребованный навык, который может изменить карьеру и жизнь (страну 🗺️, валюту дохода 💵, уровень жизни).

8️⃣ Сообщество единомышленников – общение с теми, кто тоже учится, помогает не сдаваться и вдохновляет. 👥

9️⃣ Мини-дозы дофамина – каждый выполненный урок и решённая задача (по плану) дают небольшую, но важную дозу радости. 🎯

🔟 Финальный результат – осознаёшь, что реально освоил программирование, можешь применять его и двигаться дальше. Мощный заряд энергии! 😴

Какой из этих пунктов больше всего заряжает тебя? 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4✍1👍1
Привет, ребят! Есть тут у меня джависты?
Если да, заваривайте кофе, поболтаем про enum и даже посмотрим как использовать оператор ->
☕ Что такое enum?
Это специальный тип данных, который содержит набор заранее известных констант
Пример: дни недели
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}


🛠 Как использовать enum?
Day today = Day.FRIDAY;
if (today == Day.FRIDAY)
System.out.println("Ох, пн");


🧠 Enum + switch
switch (today) {
case MONDAY:
System.out.println("Ох, пн");
break;
case FRIDAY:
System.out.println("
Финиш🏁");
break;
case SUNDAY:
System.out.println("Отдых💆‍♀️");
break;
default:
System.out.println("Обычный день");
}


✨Расширенные возможности enum
‼️ Enums могут иметь:
• поля
• конструкторы
• методы

enum Role {
ADMIN("Администратор"),
USER("Пользователь"),
GUEST("Гость");

private final String descr;

Role(String descr) {
this.descr = descr;
}
public String getDescr() {
return descr;
}
}

public class Main {
public static void main(String[] args) {
Role role = Role.ADMIN;
System.out.println("Роль: " + role.getDesc
r());
}
}

➡️ ВЫВОД: Роль: Администратор

🧐 Пример с enum:
// Написать метод, который по enum возвращает "Рабочий день" или "Выходной"

enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public static String checkDayType(Day day) {
switch (day) {
case SATURDAY, SUNDAY -> { return "Выходной"; }
default -> { return "Рабочий день"; }
}
}


✅ Задание: попробуйте написать программу, которая принимает TrafficLight и возвращает нужное действие (строку с командой)

enum TrafficLight {
RED, YELLOW, GREEN
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вы же почти все знаете ООП?!

А знаете разницу между self (Python) и this (C++, C#, Java, JS)??

Общее:
• содержат адрес текущего объекта внутри класса

Отличия:
• в Python self можно переименовать, но не нужно
• this - ключевое слово, self - нет
• self явно указывается в параметрах, this - скрыто, как-будто есть автоматически. Почему? Python подчеркивает явность

Есть что добавить? 😉⌨️
🔥2❤1👍1
❓ Как реализовать очередь вручную за 1 минуту?!

Удобно, если в языке программирования нет встроенной (C, Go)

1. Создаём массив queue сразу нужной длины (избегая перевыделения памяти), особенно если знаете нужный размер очереди
2. Создаём 2 переменные для индексов - head и tail, обнуляем.
3. Добавление:
queue[tail] = value;
tail+=1;

4. Удаление:
x = q[head];
head+=1;


Всё, главный принцип FIFO (first in first out) реализован. 💻

Есть проще способы?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Сегодня 👀 увидела список топ-компаний по капитализации. Обратили внимание, что в первой десятке 🔝 8–9 компаний — это IT-компании 💻

Во-первых, они решают большинство наших запросов.

Во-вторых, мы тратим на взаимодействие с ними большую часть нашей жизни ⏳. А значит, платим деньги 💻, а значит, они в топе 📈. Согласны? 😉

Если все знают, что видеокарта у многих от Nvidia 🎮, то не все задумываются, что все фильмы со спецэффектами 🎬✨ делаются тоже на компьютерах с их видеокартами.

Многие используют Google для поиска 🔎, навигатора 🗺️, просмотра YouTube ▶️, но не многие догадываются, что большинство сайтов хранятся на серверах Amazon ☁️.

Все используют социальные сети Meta*, но не догадываются, что чипы в их телефонах 📲 и роутерах дома 📶 — от Broadcom.

*Meta признана экстремистской организацией и запрещена на территории РФ 🚫

Что ещё интересного знаете об этих компаниях?
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, ребята 😉
С сегодняшнего дня запускаю челлендж 30 дней алгоритмов (на LeetCode). Видео будут в YouTube, ссылки здесь.

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

Мне идеи для обучения, вам польза 💻😎
🔥4
1️⃣ Первая задача математическая.
С разбором входных условий, граничными условиями, работой с тестами 🧠🧑🏼‍💻👩🏻‍💻

https://youtu.be/AJXC_D7Guro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
2️⃣ Вторая задача тоже математическая.

Во-первых, вычислить, делится ли число на все свои делители. 🤔

А во-вторых, посчитать количество таких чисел в заданном диапазоне. 🧮

https://youtu.be/OjkgT1gtOaA
Please open Telegram to view this post
VIEW IN TELEGRAM
У вас доброе утро?!
Третья задачка посложнее - здесь и битовые операции, и работа с простыми числами 😉💻

https://youtu.be/TLd6hKxSEF8
Доброе утро!

Не выкладывала ссылки на разобранные задачи, каюсь 🤫

Ловите все сразу, чтобы потом моё фото на обложке не приелось 😜

https://youtu.be/otAzVKanJnw
В задаче вычисляется разность произведения и суммы всех цифр числа

https://youtu.be/PAssPnTLPTo
Вычисление n чисел, которые дадут в сумме 0

https://youtu.be/-t_MMJs6mNU
Как представить число в виде суммы двух слагаемых, не содержащих цифру 0

https://youtu.be/l9cw5irSM5w
Уменьшаем число до 0 делением на 2 или вычитанием 1

Какой алгоритм для вас новый?💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Привет, ребята!
Кто из вас хочет начать изучать АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ?
Формат - мини-группа.
Длительность - около 7 месяцев.
Желающие — напишите комментарий под этим сообщением, либо в личку.
Я пришлю ссылку на группу, в которой все детали, темы, время занятий.
Первая неделя будет бесплатной.
Ещё могу добавить 2х студентов 😉
Привет, ребята! Как вы работаете? Устали от vpn - найди, включи, выключи?

Сделаю сегодня подборку онлайн-компиляторов, которые работают без vpn. Готовьте кофеёк ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие онлайн компиляторы НЕ заблокировали как OnlineGDB?

Как по мне — это был лучший за счёт наличия отладчика! Но имеем, что имеем...

Сделала подборку онлайн-компиляторов. Можно писать код на любом языке программирования (порядок случайный): 💾

1️⃣OneCompiler

2️⃣CodeChef

3️⃣Compiler Explorer — выбирайте язык и на панели Add new... --> Execution only (в появившемся окне можно выбрать Execution stdin и ввести входные данные)

4️⃣GeeksforGeeks

5️⃣W3Schools — выбираете вверху любой язык программирования и нажимаете Try it Yourself или сразу на С++ (но не нашла окно для ввода входных данных — видимо больше для веб языков или просто запустить код)

6️⃣Tutorials Point — есть debugger, надо потестировать 😉

7️⃣Scholar Hat

8️⃣Ideone — мне был удобен для C#

Какой еще добавите? 👨‍💻

P.S.: Учтите ещё, что чаще ввод данных осуществляется до запуска программы (по аналогии с тестами)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Сейчас с одним студентом разбираемся с динамическим программированием (ДП). Если кратко:

ДП - это метод решения, который применяется когда в задаче много одинаковых подзадач. И чтобы их не решат постоянно заново - применяются массивы для хранения решений. Когда подзадача встречается повторно - берется готовое решение из таблицы.


Так вот, для решения всегда нужна дополнительная память. Но можно разделить такие задачи в зависимости от нужной памяти:

1. Фиксированная память O(1)
— когда для вычисления текущего значения нужно знать только предыдущие 1-2 значения. Идеальный пример - числа Фибоначчи. Задачи на LeetCode:

70. Climbing Stairs

1137. N-th
Tribonacci Number

53. Maximum Subarray

2. Одномерный массив O(n)
— когда для текущего значения нужны разные прошлые вычисления
Задачи на Leetcode:

338. Counting Bits

322. Coin Change

198. House Robber

Ну и самое:
3. Двумерный массив O(n*m)
— когда решение определяется 2мя параметрами (в разных строках...)

1143. Longest Common Subsequence

62. Unique Paths

64. Minimum Path Sum

Что скажете? Решали эту тему?
Угадайте, что за структура данных?

Представим "умный блокнот". Вы можете им управлять📈:

🧪 добавить новый пункт в конец ("купить хлеб")
🔴 удалить быстро любой пункт ("заправиться" - бензин закончился, вычеркиваем)
🌊 вставить быстро пункт в середину("заехать в кафе" между магазином и заправкой)
🔎 найти конкретный пункт ("что еще нужно было купить?")
5️⃣ пересчитать сколько всего пунктов

То есть такой гибкий блокнот, в котором можно делать всё мгновенно и без ошибок. Даже если пунктов миллион. ⌨
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1