Как решать задачи по программированию. Пример: задача "Спираль"

  Рет қаралды 31,235

KACATUK

KACATUK

Күн бұрын

Рассмотрим принцип подхода к решению задач.

Пікірлер: 50
@Roger35.91
@Roger35.91 Жыл бұрын
Круто объясняешь, спасибо большое, очень помог разобраться! 👍
@krab9241
@krab9241 2 жыл бұрын
помог понять. спасибо. это первый толковый видос, который нашелся!
@enrewardronkhall8340
@enrewardronkhall8340 2 жыл бұрын
Моя проблема в том, что я проходил курс по Python и смог сам без подсказок решить эту задачу, а потом, после окончания курса, просто напросто забыл как я её решил
@vasiliypupkin6311
@vasiliypupkin6311 Жыл бұрын
Чел, а можешь рассказать, как решать алгоритмические задачи, очень туго идёт, может есть какие-то способы пробить барьер
@kuzmenkomi6445
@kuzmenkomi6445 Жыл бұрын
Но это решение не работает если спираль 2 на 2 или 3 на 3
@Vidburst-1208
@Vidburst-1208 Жыл бұрын
Спассиба за помош. Я долго не понимал как его решат. Но тут ест одна проблема ето программа не работает на 3 на 3. Можеш исправит или дат подсказку чтоб как его зделат. Пожалуста.
@boy_next_door8270
@boy_next_door8270 Жыл бұрын
Написал перед просмотром видео, для интереса. Вдруг кому нужно оставлю здесь: #include int main() { static int iter = 1; const int l = 25; const int w = 25; int arr[w][l]{}; const int end = w * l; int circle = 0; int ll = 0; int ww = 2; for (;;) { for (int i = 0; i < l - ll; i++) { arr[0 + circle][i + circle] = iter; iter++; } if (iter == end+1){ break; } for (int i = 0; i < w - ww; i++) { arr[i + 1 + circle][l - 1 - circle] = iter; iter++; } for (int i = 0; i < l - ll; i++) { arr[w - 1 - circle][l - 1 - i - circle] = iter; iter++; } for (int i = 0; i < w - ww; i++) { arr[w - 2 - i - circle][0 + circle] = iter; iter++; } circle++; ll += 2; ww += 2; } for (int i = 0; i < w; i++) { for (int j = 0; j < l; j++) { if (i == 0) std::cout
@bogdanheikkinen3431
@bogdanheikkinen3431 2 жыл бұрын
Круте відео, як раз починаю програмувати на плюсах. Продовжуй записувати відоси на цій мові, в тебе добре виходить
@TheMarkustim
@TheMarkustim 3 жыл бұрын
Большое спасибо за помощь, странно что у нас в универе такой лабы не было) А сейчас захотелось сделать эту задачи для практики перед собеседованием
@kacatuk844
@kacatuk844 3 жыл бұрын
Спасибо за теплый отзыв )
@ushio.
@ushio. 2 жыл бұрын
Даров, можеш будь-ласка зробити невеличке код-ревью ( просто пару слів чи не брудний код), робив до перегляду відео
@ushio.
@ushio. 2 жыл бұрын
#include using namespace std; const int N = 7; int main() { int arr[N][N]; int num = 1; int iadd = 0, first = 0, counted= 0; int centreID = N / 2; do { for (int i = iadd; i < N - iadd; i++, num++) { arr[first][i] = num; } iadd++; for (int i = iadd; i < N - iadd; i++, num++) { arr[i][N - iadd] = num; } for (int i = N - iadd; i >= iadd; i--, num++) { arr[N - iadd][i] = num; } for (int i = N - iadd; i >= iadd; i--, num++) { arr[i][first] = num; } counted++; first++; } while (arr[centreID][centreID] != N * N && counted < N); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout
@kacatuk844
@kacatuk844 2 жыл бұрын
Привіт, так це можливо. Ще рекомендую вступити в спільноту, там також можна буде просити ревью чи поради, ось посилання (тут зібрані всі україномовні спільноти по різним мовам програмування): github.com/Learn-Together-Pro/it_ua
@ushio.
@ushio. 2 жыл бұрын
@@kacatuk844 Дуже дякую за посилання, буде корисним
@levprom4228
@levprom4228 Жыл бұрын
Большое спасибо за видео!
@ferdinand6624
@ferdinand6624 2 жыл бұрын
Хороший урок: вот код // змейка.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // #include using namespace std; #define n 5 // задаем для n значение 5 - количество столбцов и строк int ZMEYA[n][n]; //создаем массив строка/столбцы int main() { int num = 1; // переменная для роста значений int delta = 2; // переменная для сдвига во внутрь змейки for (int delta = 0; delta < n - 2; delta++) { // заполняем круги змейки циклом // заполняем круг // заполняем верхнюю строку: for (int i = 0 + delta; i < n - delta; i++) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[0 + delta][i] = num; //ноль - строка, значение i - увеличиваем от нуля до n то есть заполнили верхнюю строку с индексом 0 num++; //растет переменная на 1 после заполнения строки } num--; // заполняем правый столбец: for (int i = 0 + delta; i < n - delta; i++) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[i][n-1 - delta] = num; // i - увеличиваем строку ,а 4 столбец - неизменный num++; //растет переменная на 1 после заполнения строки } num--; // заполняем нижнюю строку: for (int i = n - 1 - delta; i >= 0 + delta; i--) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[n-1 - delta][i] = num; // i - увеличиваем столбец,а 4 строка - неизменна num++; //растет переменная на 1 после заполнения строки } num--; // заполняем левый столбец: for (int i = n - 1 - delta; i >= 1 + delta; i--) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[i][0 + delta] = num; // i - увеличиваем строку ,а 0 столбец (самый левый)- неизменный num++; //растет переменная на 1 после заполнения строки } } //вывод массива for (int i= 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%5d", ZMEYA[i][j]); } cout
@Антон-ь4ш1у
@Антон-ь4ш1у Жыл бұрын
Спасибо огромное, очень хороший и нужный метод для поэтапного решения любых задач
@Тимофей-т5э
@Тимофей-т5э Жыл бұрын
бро, спасибо огромное, благодаря тебе, я наконец-то понял как решать данную задачу, просто лучший!
@kacatuk844
@kacatuk844 Жыл бұрын
Дякую за теплі слова, якщо не важко, то підпишись)
@sebastianthor9377
@sebastianthor9377 6 ай бұрын
"Как решать задачИ по программированию", ключевая тема не раскрыта; а так и дураку понятно, что надо идти от простого к сложному, хз За решение спиральки спасибо, было интересно
@Anatolii_Bychko
@Anatolii_Bychko Жыл бұрын
Спасибо. Попробуем на Java реализовать
@ocean1487
@ocean1487 Жыл бұрын
Самое лучшее объяснение . Хорош
@vladyan01
@vladyan01 2 жыл бұрын
Классно, а расскажи как в универе учили проектировать программу, что бы потом было просто добавить функционал или легко изменить что-то. Крутые паттерны не надо, просто самые простые и гениальные))
@wanes101
@wanes101 Жыл бұрын
ну это для новичков, 2х мерные массивы тоже мне открытие, еще ООП для себя можно открыть как новый уровень программирования. Не понял к сожалению фишки, кроме выражения что не надо долго думать над задачей, а надо упростить но это понятно т.е. декомпозиция задач. Хотя это тоже спорный вопрос, зависит от задачи
@nunky_iroh
@nunky_iroh 2 жыл бұрын
Спасибо друг! Всё правильно делаешь что объясняешь на пальцах! А то на всяких сайберфорумах, хабрах и т.п. все шибко умные и ленивые чтобы объяснять! Обязательно делай новые видео такой же формы! Если надо задач могу накидать кучу!))
@erakairzhan
@erakairzhan 2 жыл бұрын
Огромное спасибо , логика такая же но осуществить было проблематично )
@rexdraconis1703
@rexdraconis1703 Жыл бұрын
Все, остановился на третей минуте. Сейчас уже ночь, завтра попробую решить в лоб.
@АнтонЧе-ь9м
@АнтонЧе-ь9м 2 жыл бұрын
ты крутой! посмотрел несколько видосов, так и не смог понять алгоритм, ты всё круто разложил по полочкам!
@kacatuk844
@kacatuk844 2 жыл бұрын
Спасибо за теплый отзыв!
@eghishemanukyan2003
@eghishemanukyan2003 2 жыл бұрын
спасибо большое за такое решение, пожалуйста развивайте эту тему, и вставляйте такие видео чаще и много
@natalyaiv3414
@natalyaiv3414 2 жыл бұрын
Спасибо! Очень понятно и наглядно 👍
@АлексейЗахарков
@АлексейЗахарков 2 жыл бұрын
Спасибо, действительно хорошее и полезное видео.
@user-cp123pc5tk8d
@user-cp123pc5tk8d 2 жыл бұрын
Можно лучше оптимизировать , не используя две лишних переменных :) Такой пример не сильно оптимальный , в плане расхода памяти ОЗУ . Правда это актуально для микроконтроллеров :)
@kacatuk844
@kacatuk844 2 жыл бұрын
Да, но суть видео была в том, чтобы показать начинающим, как вообще переходить от условия задачи к решению, постепенно наращивая сложность. Конечно, следующим этапом может быть оптимизация, но это уже за рамки этого видео. Спасибо за отзыв!
@kurinoski
@kurinoski 2 жыл бұрын
Классно, радует, что ютуб рекомендует такие каналы:3
@ЮрийНиколаевич-л6т
@ЮрийНиколаевич-л6т 2 жыл бұрын
спасибо, очень хорошо рассказано и показано.
@kolyan_69
@kolyan_69 2 жыл бұрын
Согласен со всеми. Благодаря этому видео стало понятнее как такое реализовывать. Но уже мучаюсь вторую ночь с n*m размером массива.
@kacatuk844
@kacatuk844 2 жыл бұрын
Как успехи?
@kolyan_69
@kolyan_69 2 жыл бұрын
@@kacatuk844 Да я бросил это дело. Понимаю, что это плохо но нужно идти дальше.
@v_chelnik
@v_chelnik 2 жыл бұрын
Спасибо огромное
@ellanalavellan5809
@ellanalavellan5809 2 жыл бұрын
Лучшее видео на свете 💞💞
@ansornisoev1304
@ansornisoev1304 2 жыл бұрын
Спасибо огромное брат. Напиши пожалуйста номер ватсап хочу дружить с тобой
@q1ncite
@q1ncite 6 ай бұрын
для N=3 и 2, спиралька не работает нужно в первом цикле идти до N, а не до N - 2 ⬜⬜⬜⬜ 🟦🟦🟦🟦 🟥🟥🟥🟥
@woodorsha2955
@woodorsha2955 2 жыл бұрын
Длинный коооооооммеееннннттттт для продвижения ккккккаааааааааааанннннннннннннаааааааааллллллллллллааааааааааа. Не забрасывай канал. Если так будешь делать со всеми видео, то у канала БОЛЬШОЕ БУДУЩЕе) не обращай внимания что мало подписчиков. ,, Москва не сразу строилась,,
@mikolka3848
@mikolka3848 2 жыл бұрын
Длина комента не влияет на продвижение канала, а вот их количество
@woodorsha2955
@woodorsha2955 2 жыл бұрын
@@mikolka3848 значит ещё пару напишем
@woodorsha2955
@woodorsha2955 2 жыл бұрын
Ещё пару
@woodorsha2955
@woodorsha2955 2 жыл бұрын
Ты главное не забрасывай канал. Все спокойно и уверенно объясняешь
@woodorsha2955
@woodorsha2955 2 жыл бұрын
У канала БОЛЬШОЕ БУДУЩЕе
Решение задачи acmp № 196 Спираль
14:31
egoroff_channel
Рет қаралды 27 М.
Do you choose Inside Out 2 or The Amazing World of Gumball? 🤔
00:19
Running With Bigger And Bigger Lunchlys
00:18
MrBeast
Рет қаралды 112 МЛН
C++ vs Rust: which is faster?
21:15
fasterthanlime
Рет қаралды 396 М.
Как учить азы программирования?
14:27
Sergey Nemchinskiy
Рет қаралды 360 М.
Рекурсия на python для тупых
9:01
IT DIGITAL PROGRESS
Рет қаралды 123
Do you choose Inside Out 2 or The Amazing World of Gumball? 🤔
00:19