- Видео 23
- Просмотров 48 807
С++ для начинающих
Россия
Добавлен 28 апр 2012
Приветствую вас на своём канале по языку С++ для начинающих!
Если вы только начинаете свой путь в мире программирования, то это канал поможет вам освоить основы языка С++ и создать свои первые программы.
Если вы только начинаете свой путь в мире программирования, то это канал поможет вам освоить основы языка С++ и создать свои первые программы.
Бесплатный курс по С++ для начинающих. Как проходит обучение?
Привет! Вот ссылка на курс: stepik.org/course/211750/promo
В этом видео мы вместе прошли первый урок и поговорили о том, кому и для чего нужен язык С++. А заодно я показал, как работать с платформой Stepic и как проходит обучение на этом курсе.
В этом видео мы вместе прошли первый урок и поговорили о том, кому и для чего нужен язык С++. А заодно я показал, как работать с платформой Stepic и как проходит обучение на этом курсе.
Просмотров: 184
Видео
Новый бесплатный курс по программированию на С++ с нуля.
Просмотров 266День назад
В этом видео я рассказал о своём новом курсе по языку С для начинающих. Ссылка на курс: stepik.org/course/211750/promo
Игра "Виселица 2.0".
Просмотров 463Месяц назад
Это 2-я серия "Игра на С за 15 минут". В прошлой серии мы написали рабочий прототип игры. А в этой я показал, как можно доработать игру "Виселица", чтобы она стала интереснее. Прошлая серия: ruclips.net/video/WQZyzF3LXow/видео.html Обратите внимание: для работы с русским языком в IDE у меня выбрана кодировка Windows-1251.
Игра "Виселица" на С++ за 15 минут.
Просмотров 8412 месяца назад
Пишем вместе консольную игру "Виселица" на языке С за 15 минут с подробным объяснением. В следующей серии мы доработаем игру так, чтобы в нее было интересно играть: ruclips.net/video/yYuxaCULc1U/видео.html
Простым языком про солнечные затмения.
Просмотров 1732 месяца назад
Я кратко рассказал про 3 типа солнечных затмений и солнечные затмения на других планетах. Вы узнаете чем наша Луна отличается от всех других спутников Солнечной системы. По крайней мере в том, что касается солнечных затмений.
Анимация с помощью циклов.
Просмотров 1135 месяцев назад
С использованием обычных циклов можно создавать незамысловатые, но интересные анимации. Не правда ли, это выглядит эффектно? Код программы: drive.google.com/file/d/1_ep7M74c2bvF5pLG3Ta_yK0PMSTLM68W/view?usp=sharing С IDE Red Panda: sourceforge.net/projects/redpanda-cpp/
Нужна ли математика программисту?
Просмотров 1905 месяцев назад
В некоторых случаях без математики не обойтись. Например, попробуйте создать такую «нехитрую» анимацию. Если у вас получится, то обязательно продемонстрируйте результат - я буду впечатлён! Исходный код: drive.google.com/file/d/1Wyay5qt8gUn3RQuRjS-nc5zlpOjw17Kw/view?usp=sharing C IDE: sourceforge.net/projects/redpanda-cpp/
Шахматная доска с помощью функции.
Просмотров 2035 месяцев назад
Это пример использования функции. Для начала создаётся функция, которая рисует одну клетку. Затем эта функция вызывается 64 раза, чтобы нарисовать целую шахматную доску. Это стандартный приём в программировании. Код программы: drive.google.com/file/d/14IxASwrjezNstv1rwXqM2e-fZfIARL4b/view?usp=sharing С IDE: sourceforge.net/projects/redpanda-cpp/
Дерево с помощью рекурсии.
Просмотров 3275 месяцев назад
Рекурсия - это очень важная тема в программировании. С её помощью многие сложные задачи решаются быстро и просто. Вот, например, создание такого дерева требует всего 10-20 строк кода! С IDE Red Panda: sourceforge.net/projects/redpanda-cpp/ Код программы: drive.google.com/file/d/11Fr1jWc6faYZALunFfAW1Nm1vsRFD y/view?usp=sharing
С++ указатели. Разыменование указателя
Просмотров 5476 месяцев назад
Для студентов, изучающих C , «указатели» - это ключевой аспект. Если вам кажется, что эта тема сложна, рекомендую пройти мой курс: stepik.org/a/196036. Этот курс - ваш надёжный помощник в освоении указателей. За два-три часа вы не только освоите теорию, но и научитесь применять полученные знания на практике. Курс проверен на сотнях студентов. Этот ролик представляет собой фрагмент одного из зан...
С++ указатели. Создание указателей на переменные
Просмотров 6146 месяцев назад
Для студентов, изучающих C , «указатели» - это ключевой аспект. Если вам кажется, что эта тема сложна, рекомендую пройти мой курс: stepik.org/a/196036. Этот курс - ваш надёжный помощник в освоении указателей. За два-три часа вы не только освоите теорию, но и научитесь применять полученные знания на практике. Курс проверен на сотнях студентов. Этот ролик представляет собой фрагмент одного из зан...
C++ графика для школьников. Урок1. Установка IDE
Просмотров 1,4 тыс.6 месяцев назад
Установка среды разработки для работы с графикой. Ссылка для скачивания IDE: codeblocks.codecutter.org/ Полный курс по созданию игры вы можете посмотреть на Stepik: stepik.org/course/215376/promo
C++ графика для школьников. Урок 2. Графические примитивы
Просмотров 6766 месяцев назад
Рассмотрели функции для рисования нескольких простых фигур и выбор цветов контура и заливки фигуры.
С++ графика для школьников. Урок 11. Делаем инсталлятор для игры.
Просмотров 5706 месяцев назад
Как за 5 минут сделать инсталлятор для вашей игры. Сайт программы для создания инсталляторов: www.clickteam.com/install-creator-2 Полный курс по созданию игры вы можете посмотреть на Stepik: stepik.org/course/215376/promo
С++. Тест по указателям для начинающих.
Просмотров 2,2 тыс.6 месяцев назад
Для студентов, изучающих C , «указатели» - это ключевой аспект. Если вам кажется, что эта тема сложна, рекомендую пройти мой курс: stepik.org/a/196036. Этот курс - ваш надёжный помощник в освоении указателей. За два-три часа вы не только освоите теорию, но и научитесь применять полученные знания на практике. Курс проверен на сотнях студентов.
Отличное видео, спасибо за ссылку😊
Полностью игнорирует русский шрифт. Даже в редакторе ничего не набирается...
Видимо зависит от системы. Попробуйте тогда поставить Red Panda C++. Она более новая (2024 года) и там тоже есть встроенные графические библиотеки. Когда я записывал эти видеоуроки (2020 год) тогда еще всё работало.
@@Dima-TeplovСпасибо, попробую.
Спасибо за урок! ) Я только учу языки программирования и не очень понимаю, как пишутся программы на этих языках (с помощью каких инструментов). У меня такой вопрос - можно ли использовать для работы с графикой Visual Studio? Можно ли не устанавливать среду разработки из вашего видео, а использовать Visual Studio чтобы выполнить ваши дальнейшие уроки?
Здравствуйте! В Visual Studio нет нужной библиотеки для работы с графикой. В языке С++ библиотеки для работы с графикой не входят в стандарт и не устанавливаются по-умолчанию. Поэтому надо либо поставить и настроить такую библиотеку для Visual Studio (это может быть сложно) либо установить специальную среду разработки, которая уже содержит такую библиотеку (Code::Blocks EDU или Red Panda C++).
@@Dima-Teplov Спасибо большое за пояснение! Подскажите, а чтобы написать программу, которая рисует 2д параметрические чертежи (по координатам точек), какая библиотека подойдёт?
@@МодельерКонструктор если вам нужно растровое изображение на экране, то подойдет любая. Если вы хотите рисовать растровые чертежи, разрешение которых больше, чем размер экрана, то надо выбирать исходя из формата изображения, которое вы хотите получить (png/jpg и т.п.). Если вам нужно получить результат в векторном формате, то тоже исходя из нужного формата. Нет такой библиотеки, чтобы в ней можно было вообще все. Наиболее универсальный вариант это наверное Qt c QPainter или QGraphics, но это не для начинающих.
@@Dima-Teplov Спасибо.
Потрясающе! Сегодня, благодаря Вам, я запустил свою первую программу в ПК! А мне 53 года, если что... )))))
Здорово, рад, что вам пригодилось! Если что, полный курс выложен тут: stepik.org/course/215376/promo (он бесплатный).
У этих уроков есть один огромный минус. Их всего 6...
Спасибо, я рад, что они вам пригодились. Есть еще не видео, а практический курс с задачами: stepik.org/course/211750/promo (бесплатно).
@@Dima-Teplov Спасибо!
Приветствую, хотел бы купить курс но не могу оплатить тк не из РФ, отпишите в комменты как можно с вами связаться
@@babaq1533 вы можете написать мне на почту dima.dunya@gmail.com.
Спасибо, вы очень хорошо объясняете
Благодарю
В начале видео вы говорите: "когда вы обьявляете переменную, она автоматически размещается в стеке" и в конце видео, когда показываете примеры обьявляете те же переменные, но они вдруг размещаются в куче, несоответствие какое-то, и второй щепетильный момент- зачем нужен стек, если все данные можно сразу в кучу класть, да и почему нельзя в принципе увеличить размер стека до размеров кучи?
Здравствуйте, Денис! Это хорошие вопросы, спасибо! В конце видео я говорю о том, что есть возможность создавать переменные не в стеке, а в куче, просто я не показываю как. Насчет размера стека. Память - это общий ресурс для всех программ, стек - это сегмент памяти, который строго резервируется за этой конкретной программой (пока она работает). Если бы стек был размером 1 ГБ, то каждая программа при запуске «съедала» бы 1 ГБ минимум. Поэтому стек не делают таким большим. Куча устроена иначе: в ней память можно выделить, когда она вам нужна, и можно освободить, если она больше не нужна. Стек вообще очень важный сегмент памяти, он используется для вызова функций, передачи аргументов в функции и много еще для чего, кроме хранения переменных. И выделение памяти в стеке работает гораздо быстрее, чем в куче. Теперь немного с юмором. Стек - это холодильник у вас дома, куча - это магазин. Создать переменную в стеке - это как открыть холодильник и взять оттуда мороженое. Выделить память в куче - это как сходить в магазин за мороженым. Теперь я задам вам ваши же вопросы, а вы попробуйте на них ответить. 1. «Зачем нужен холодильник, если сразу можно сходить в магазин»? 2. «Почему нельзя в принципе сразу увеличить размер холодильника до размера магазина?»
@@Dima-Teplov все же непонятно одна вещь. Если переменные хранятся в куче то все таки зачем нужен указатель ?)))
@@siyovushfurkati1642 , данные можно хранить и в стеке и в куче. В стеке можно хранить небольшое количество данных, это удобно, у них есть имена. В куче у данных нет имен, поэтому для доступа к ним нужны указатели. Они хранят информацию о том, где именно в куче лежат нужные нам данные.
Странно видеть что на хорошем видео так мало лайков, вы явно заслуживаете большего
Очень здорово получилось. Детям на занятия по Python такую же предложу сделать.
учитывая насколько хороша была первая часть здорово что разработчики выпустили сиквел 🎉
Спасибо вам! 😁
👍
Спасибо! Выложил 2 серию: ruclips.net/video/yYuxaCULc1U/видео.html
Вау, шикарно. Я новичок, очень интересно было посмотреть
Всё было понятно?
Спасибо! Выложил 2 серию: ruclips.net/video/yYuxaCULc1U/видео.html
Спасибо очень доходчиво и интересно. Не останавливайтесь.
Спасибо за комментарий! :)
Спасибо! Выложил 2 серию: ruclips.net/video/yYuxaCULc1U/видео.html
Кроме доходчивости и простоты объяснения чувствуются нотки хорошего знания математики. Мне кажется ко всему прочему у автора за плесами неплохое физико математическое образование, но он сознательно объясняет всё понятным языком разъясняя новичкам и судя по названию ролика школьникам некоторые математические термины тем не менее не перегружая слушателя терминалогией. Очень радует простота изложения материала и возможность самому так же взять и с лёгкостью без сюрпризов суметь повторить увиденное. Это действительно прекрасное ОБУЧАЮЩЕЕ видео. Браво!!!
Очень интересное видео. Каждый программист в чём-то новичок. Люблю смотреть видео для новичков, где автор на понятном языке объясняет то, в чём сам разбирается, а не выпендривается типа "посмотрите, как я умею, но так умею, что и объяснить толком не могу. и не хочу". Ваши видео прекрасно подойдут и для начинающих и средним программистам, думаю, есть что подчерпнуть. Всегда можно найти что-то новое даже в уже известных темах. Спасибо Вам за качественный контент. Сразу чувствуется, что человек не себя хотел показать, а другим доходчиво объяснить. Владение графикой ОЧЕНЬ важное умение. Именно графика делает программирование нагляднее и интереснее. Непонятно почему так мало лайков, может, из-за того, что это С или от того, что считающие себя"продвинутыми на С" программисты передают информацию в более сухом и строгом текстовом формате. С++ относительно сложный язык и я бы не рекомендовал его как первый. Но возможость задействоать графику, да еще и так просто, добавляет ему дополнительное преимущество ко многим уже имеющимся. Еще раз спасибо Вам за возможность сделать свои программы нагляднее, красочнее, интереснее. Особое спасибо за IDE. Сложно выбрать наиболее подходящий работающий во всех направлениях вариант. Отсутствие универсального IDE и наличие большого количества танцев с бубнами - основная сложность при программировании на С++. Вы помогли людям избежать многих хлопот и продемонстрировали возможность использовать графику легко и просто "из коробки", практически играючи. Для С++ это особенно не просто, но у Вас получилось.
Большое спасибо за такой комментарий! Да, я работал со школьниками и делал в основном для них - чтобы им было понятно.
С восхищением присоединяюсь к великолепной оценке! До этого видео три вечера подряд искал, как мне добиться подобных элементарных вещей от компьютера!
Три ореха - это куча? (ц)
Что такое "библиотека"? DLL?
не стартует CodeBlock-EP под десяткой, и в режиме совместимости с XP и с 7 тоже не стартует.
Да, у некоторых не запускается. Версия Code::blocks EDU уже старая. А возможно, что-то с системой, так трудно сказать. Попробуйте Red Panda C++. В ней тоже есть встроенные графические библиотеки. И одна почти такая же как в Code::blocks EDU.
Красавчег! Спасибо!
Указатели это как бы маркировка на ящике. Это Все что нужно знать об указателях. Маркировки могут быть разные, в зависимости, что лежит там.
Вот я понимаю. В двух словах, четко и понятно! А то разведут на полчаса, аж уши вянут ))
Спасибо за одобрение! Да, коротко и понятно рассказать про указатели - не простая задача. Поэтому я сделал по ним мини-курс. Этот ролик представляет собой фрагмент одного из занятий курса: stepik.org/course/196036/promo?referral=WzE5NjAzNiw0MzQ0MDk3NywxNzI3NTE1NzQwLjE0OTM3NTRd%3A1suTl6%3AgpvN3szJCiGLgA4QygVpxz4E4Kk
Ну это как-то громко сказано, "указатели нужны для управления динамической памятью." Вообще-то какой угодно памятью. Захочу и на автоматические переменные буду указывать.
Очень доступно объяснил сложную для многих тему. Спасибо
Было бы очень неплохо, если бы кто-то (к примеру, Вы) сделали видео о том, как в теории можно было бы обойтись без указателей...
Боюсь, что тогда это будет видео не про С++. Конечно, в некоторых задачах можно "обойтись без указателей", например, вместо динамического выделения памяти под массив можно использовать готовый класс std::vector. Однако надо понимать, что внутри этого std::vector все равно используются указатели, он просто "прячет" их от программиста, но это не значит, что они не используются. Указатели связаны с архитектурой компьютера (это адреса данных в оперативной памяти), поэтому в итоге они всегда используются в любой программе. Их можно только "хорошенько спрятать", как, например, это делает Python. Поэтому, если вы не хотите работать с указателями, то просто используйте языки программирования, в которых они "спрятаны". Если вы хотите просто ездить на машине, то, наверное, знать внутреннее устройство машины не обязательно. Но если вы хотите быть профессиональным водителем, то полезно разобраться в том как эта машина устроена изнутри. С++ - это язык, которые требует не только навыков программирования, но и знания некоторых основ работы компьютера и операционных систем. Если, вдруг, вам это не нужно, то просто используйте другой язык программирования, например, Python.
Да, конечно, я имел в виду именно то, что язык мог бы быть достаточно низкоуровневым и при этом не использовать указатели как отдельное явление. Язык может, скажем, иметь некий спецификатор flexible, который подразумевает, что данная переменная может менять свой размер. Язык может иметь некий оператор вроде a?b, который выдаёт true, если по адресу a есть b незанятых последовательных байт. Размещать переменные по конкретному адресу можно с помощью некоего оператора at. При этом языку совсем необязательно иметь отдельное явление под названием указатель. По крайней мере, я так это вижу.
@@DeadnWoon Если переменная может менять свой размер, то под нее изначально надо выделять память самого большого размера, который она может занимать. То есть придется ввести какое-то ограничение по размеру, например, 1 Кб и тогда все переменные этого типа будут заниматься в памяти 1 Кб даже, если на самом деле там хранится 1 символ. Это уже выглядит не эффективно. Можно выделять память динамически по необходимости, но такое выделение памяти работает гораздо медленнее, чем выделение памяти в стеке, значит, это будет работать медленно. На мой взгляд эта одна из основных проблем такого подхода. Основной принцип языка С++ - это эффективность, поэтому такие варианты в нем не рассматриваются. Размещать переменные по какому-то конкретному адресу не достаточно, надо еще этот адрес где-то хранить и иметь возможность получать к нему доступ. Где он будет храниться? Кроме того, как в вашем языке можно описать такую структуру, как "связный список" без использования указателей?
@@Dima-Teplov Да, конечно, я имел в виду, что flexible и a?b работают с кучей. По поводу связного списка - надо подумать...
@@DeadnWoon /фейспалм/
Это адрес.
Это не адрес.
Почему я не начал изучение языков с С+ а послушав советы взялся за Питон? С+ лучше дает понимание как работает железо
Да, такие языки как С и C++ действительно заставляют разбираться во внутренних механизмах работы программ. Однако Питон проще освоить и, если вам надо быстро что-то написать для себя, то это отличный вариант. С++ в основном используется там, где требуется скорость и эффективное использование ресурсов.
Здравствуйте! В половине школ РФ сейчас какой-нибудь линукс. Не работают ваши уроки для винды на этих компьютерах( Сделайте уроки под линкс - для РФ это актуальней.
Сейчас вышли новые процессоры с увеличенным L 1, L2 , L 3 хешем. Означаетли это, что стек будет больше у таких процессоров? Не 1 мб? Или нужно, что-то добовлять в код, чтобы получить плюшки от этого хеша?
Привет! Нет, стек - это понятие уровня программы, а не процессора. Когда из исходного кода на языка С++ собирается исполняемая программа, то используемая ей память организуется специальным образом. Каким именно - зависит от используемой операционной системы. Размер стека по-умолчанию различается в разных операционных системах, кроме того, некоторые IDE позволяют изменить размер стека программы в настройках линковщика. Однако суть от этого не меняется, размер стека фиксирован и не может быть изменен во время работы программы и, значит, он может переполниться.
Почему int x; будет размещен в стеке? Если он определен внутри функции - то да, в стеке. А если нет?
А если нет, тогда в сегменте данных.
Если это локальная переменна то на стеке, если глоабальная то в сегменте данных
Ещё надо про умные указатели.
Так как я записывал это изначально для школьников, то умные указатели сюда не вошли. Это, все таки, более сложная тема.
Есть ещё одна важная особенность указателей. При передаче объекта в фукнцию в качестве параметра (допустим, по значению) он будет скопирован. То же самое касается возвращаемого значения: оно будет скопировано. Если вы работаете с объектом, размер которого 10КиБ, он постоянно будет копироваться в полном объёме, если его постоянно передавать между функциями, а это дополнительное время процессора. Если же передавать указатель на объект, сам объект остаётся там, где и был, а копируется только указатель на него.
Все верно! В плейлисте по указателям есть отдельный пример, который это демонстрирует. ruclips.net/video/r4tIRmRWPB0/видео.html
Вы говорите про то, как передать аргумент не по значению, а по ссылке: call-by-value vs. call-by-reference. Многие языки программирования не поддерживают указатели, но всё же поддерживают call-by-reference, например в Java это деоается с помощью амперсанта при имени передаваемой переменной, да и в C++ тоже. То есть это не объясняет, для чего вообще нужны указатели, если передавать аргумент по ссылке можно прекрасно и без них.
@@f.linezkij удачи вам вернуть значение из функции по ссылке. Говоря, что многие языки не поддерживают указатели, вы о каких именно языках говорите? Например в Java каждая переменная на экземпляр класса - это указатель под капотом. Часто о таком механизме говорят pass-by-object-reference, это не имеет отношения к pass-by-reference. Пишу на Java больше 15 лет, но первый раз слышу, что можно передавать значения по ссылке. Вероятно, вы спутали с С#.
Если возникает такой вопрос,то вы начали изучать С++ сильно неправильно .
Согласен, но, тем не менее, вопрос возникает у многих.
Если возникает такой вопрос, то программирование вообще изучать не нужно. Это не ваше.
Программистам уже лет 24 не важно какой размер стека и памяти.
Номер карты не нахожу. куда копеечку кинуть?
Спасибо, лайка или комментария вполне достаточно! :)
В 10 вопросе можно так: cout<<(*cat).name;
Спасибо большое, очень просто и понятно, идеально
Я рад, что понравилось, если что в описании есть ссылка на плейлист по указателям и пошаговый курс на степике.
Четко
Чтобы было понятно "твердолобым" показывайте на примере простенькой программы, можно еще дебаггером пройтись по адресам и носом ткнуть. Вот тогда "дойдет" точно. Указатели, структуры - сложная штука, с наскока не понимают многие ( еще и объяснить "зачем это надо", не каждый преподаватель доносит ).
Да, спасибо, все верно. Собственно я так и сделал в этом курсе: stepik.org/course/196036/promo Это просто один из видеоуроков оттуда.
Ты один из немногих людей которые могут понятно, кратко обьяснить материал. Большое тебе спасибо за работу!!!
Очень интересный материал
Отличный урок !