— Я никогда не видел, как работает
— Ладно, не заливай... Ни разу не видел, как
— Не довелось. Не видел.
— Уже написал свою первую программу, разобрал её по строчкам, скомпилировал и запустил её, но так и не видел, что возвращает инструкция
— Не успел. Не вышло.
— Не знал, что программисту без этого никуда? Пойми, программисты только и говорят, что о нуле, возвращаемом из функции
— Что ж теперь поделаешь...
— Как что? Скорее смотри новое короткое видео о том, как посмотреть возвращаемое значение.
Бонусом познакомитесь с консольными командами
return 0;— Ладно, не заливай... Ни разу не видел, как
return возвращает нулевое значение?— Не довелось. Не видел.
— Уже написал свою первую программу, разобрал её по строчкам, скомпилировал и запустил её, но так и не видел, что возвращает инструкция
return?— Не успел. Не вышло.
— Не знал, что программисту без этого никуда? Пойми, программисты только и говорят, что о нуле, возвращаемом из функции
main. О том, что надо возвращать нуль, а не что-то ещё. Что нуль — это бесконечно прекрасно, что это успех, это завершение программы без ошибок. А ты? Что ты им скажешь? Ведь ты ни разу сам не видел этого возвращаемого значения... Там наверху тебя окрестят лохом.— Что ж теперь поделаешь...
— Как что? Скорее смотри новое короткое видео о том, как посмотреть возвращаемое значение.
Бонусом познакомитесь с консольными командами
cat и echo.YouTube
Код возврата. Как увидеть return 0;? #it #code #youngcoder #programming #C
В видео демонстрируется, как посмотреть значение, возвращаемое инструкцией return из функции main. Используются команды cat, echo и переменная командной оболочки $?, которая хранит возвращаемое значение последней выполненной команды.
БЕСПЛАТНЫЙ КУРС обучения…
БЕСПЛАТНЫЙ КУРС обучения…
👍2🔥2😍1
Обновил заметку про форматный ввод и функцию scanf
Всем, кто ещё не закончил прохождение курса, рекомендую изучить новую версию. Она гораздо подробнее.
Если что-то будет непонятно, пишите комментарии прямо на сайте.
Всем, кто ещё не закончил прохождение курса, рекомендую изучить новую версию. Она гораздо подробнее.
Если что-то будет непонятно, пишите комментарии прямо на сайте.
🔥5👍1
Обновилась теория, значит пора обновить и практические задания на функцию scanf!
Тем более об этом часто просят в обратной связи. Понятно, что вопрошающие уже вряд ли увидят и оценят новые задания, но это их вклад в развитие курса для будущих поколений.
Сегодня подготовил 4 новых задачи на функцию scanf. Пару дней отлежатся, посмотрю на них свежим взглядом и добавлю в курс.
На скринах комменты из обратной связи уроку. =)
upd: Добавил ещё одну задачку.
Тем более об этом часто просят в обратной связи. Понятно, что вопрошающие уже вряд ли увидят и оценят новые задания, но это их вклад в развитие курса для будущих поколений.
Сегодня подготовил 4 новых задачи на функцию scanf. Пару дней отлежатся, посмотрю на них свежим взглядом и добавлю в курс.
На скринах комменты из обратной связи уроку. =)
upd: Добавил ещё одну задачку.
🔥3👍1
Отгрузил задачи на Stepik.
- IP-адрес
- Не думай о секундах свысока
- Морской бой
- Шахматная нотация
- Телефонный номер
Последняя задача немного муторная, но если разобрались с исследовательскими задачами для хакеров на сайте, то решение получится более элегантным. Да и задачу про Шахматную нотацию с этими знаниями можно сделать красивее.
В общем, жду ваши ответы на форуме Решений. Буду выбирать, чьё решение закрепить в качестве образцового. =)
p.s. Прошу прощения у всех, кто прямо сейчас собирает ключ для ЗС-3. Из-за новых задач придётся его "пересобрать".
- IP-адрес
- Не думай о секундах свысока
- Морской бой
- Шахматная нотация
- Телефонный номер
Последняя задача немного муторная, но если разобрались с исследовательскими задачами для хакеров на сайте, то решение получится более элегантным. Да и задачу про Шахматную нотацию с этими знаниями можно сделать красивее.
В общем, жду ваши ответы на форуме Решений. Буду выбирать, чьё решение закрепить в качестве образцового. =)
p.s. Прошу прощения у всех, кто прямо сейчас собирает ключ для ЗС-3. Из-за новых задач придётся его "пересобрать".
Stepik: online education
Функция scanf. Основы ввода данных
🔥6👍1
Приятная новость. На главной странице Stepik в разделе Часто ищут есть подборка C/C++.
Сегодня в неё добавили и наш курс. Троекратное ура!
Пока, к сожалению, только вторая страница в выдаче, но всё лучше, чем ничего. Какой-то закономерности в ранжировании курсов я не увидел. Единственно, что можно сказать определённо, платные курсы имеют приоритет над бесплатными. Даже "Поколение Python: курс для начинающих" у которого почти полтора миллиона учеников (больше чем у любого курса на платформе) и тот в категории Python стоит лишь на 4 месте! =D
Поглядим, как это отразится на количестве новых youngcoderов.
Сегодня в неё добавили и наш курс. Троекратное ура!
Пока, к сожалению, только вторая страница в выдаче, но всё лучше, чем ничего. Какой-то закономерности в ранжировании курсов я не увидел. Единственно, что можно сказать определённо, платные курсы имеют приоритет над бесплатными. Даже "Поколение Python: курс для начинающих" у которого почти полтора миллиона учеников (больше чем у любого курса на платформе) и тот в категории Python стоит лишь на 4 месте! =D
Поглядим, как это отразится на количестве новых youngcoderов.
🔥7👍2
Выложил новое мини-видео о работе со стандартными потоками ввода и вывода.
В теоретической части я сказал, что программа ничего не знает о внешних устройствах, а взаимодействует лишь со стандартными потоками ввода и вывода. В этом видео я демонстрирую, как это происходит на примере программы сложения двух чисел (sum2).
Не изменяя ни одного бита в самой программе, я заставляю её читать числа, которые надо сложить, из файла и записывать результат сложения в другой файл.
Это становится возможным благодаря двум вещам:
Кстати, по такому же принципу построена и проверяющая система на платформе Stepik. =)
Когда вы отправляете решение, система создаёт из него исполняемый файл и запускает его. При этом на стандартный поток ввода подаются тестовые данные, а данные из стандартного потока вывода сравниваются с эталонным решением.
p.s. Ещё раз благодарю всех помогальников за донаты! Полагаю, что вы здесь есть. )
В теоретической части я сказал, что программа ничего не знает о внешних устройствах, а взаимодействует лишь со стандартными потоками ввода и вывода. В этом видео я демонстрирую, как это происходит на примере программы сложения двух чисел (sum2).
Не изменяя ни одного бита в самой программе, я заставляю её читать числа, которые надо сложить, из файла и записывать результат сложения в другой файл.
Это становится возможным благодаря двум вещам:
— 1. из-за того, что программа работает с потоками, а не с конкретными устройствами;
— 2. операционная система позволяет перенаправить стандартные потоки ввода и вывода и связать их, например, с текстовыми файлами.
Кстати, по такому же принципу построена и проверяющая система на платформе Stepik. =)
Когда вы отправляете решение, система создаёт из него исполняемый файл и запускает его. При этом на стандартный поток ввода подаются тестовые данные, а данные из стандартного потока вывода сравниваются с эталонным решением.
p.s. Ещё раз благодарю всех помогальников за донаты! Полагаю, что вы здесь есть. )
YouTube
Потоки ввода и вывода программы stdin, stdout #it #code #youngcoder #programming #C
В видео демонстрируется, что программы взаимодействуют с потоками ввода (stdin) и вывода (stdout), а не напрямую с клавиатурой или экраном консоли.
БЕСПЛАТНЫЙ КУРС обучения основам программирования на Си: https://youngcoder.ru/
Поддержать курс и канал: …
БЕСПЛАТНЫЙ КУРС обучения основам программирования на Си: https://youngcoder.ru/
Поддержать курс и канал: …
🔥4👍2
Моя первая программа
Пост приурочен к мини-опросу про прошлый опыт в программировании, пройдите его, пожалуйста.
Насколько я помню, первым языком программирования у меня был BASIC под самой настоящей MS DOS. Примерно 5-6 уроков Информатики. На последнем уроке из этого программистского цикла нам задали задачу: посчитать количество дней между двумя произвольными датами с учётом високосных годов. Доступа к ПК у меня не было, поэтому я просто писал свой код на бумажке и построчно его выполнял, пытаясь решить задачу. К сожалению, эта задача оказалась мне не по зубам.
Первым языком, который я изучал самостоятельно был PHP (где-то месяца через 3-4 после того, как состоялось моё печальное знакомство с BASIC). Почему PHP? Для меня главным и решающим преимуществом этого языка было то, что он не требовал наличия компьютера. Можно было написать текст скрипта на смартфоне Nokia 6670, загрузить его на бесплатный хостинг и проверить, как работает программа.
Доступ к смартфону тоже был ограниченным. Я мог использовать его достаточно непродолжительное время вечером и ночью. Поэтому мой "алгоритм" программирования и отладки скриптов на PHP выглядел следующим образом.
Кстати, этот извращённый опыт меня серьёзно закалил. Когда через несколько лет мне потребовалось пройти процедуру ЕГЭ по информатике, то я вообще не видел для себя проблемы в том, что там нет компьютера (сейчас, говорят, есть). Написать код программы на листочке и не упустить ни одной точки с запятой, закрывающей фигурной скобки и тп. — раз плюнуть. Выполнить код и сказать, что выведет программа? Да запросто! Найти ошибку в условных конструкциях? Проще пареной репы. Я видел код насквозь, как рентген. =D
Первой программой, которую я написал на PHP, была "Библиотека".
Скрипт просматривал директорию с файлами и составлял из них страничку со ссылками для чтения. Можно было открыть любой файл и читать его в постраничном режиме, задавая размер шрифта, количество слов на странице и пр. За несколько прогонов алгоритма, изложенного выше, прибегая к помощи гугла и интернет-форумов, я таки справился с этой задачей.
Именно этот скрипт я считаю своей первой полноценной программой.
Пост приурочен к мини-опросу про прошлый опыт в программировании, пройдите его, пожалуйста.
Насколько я помню, первым языком программирования у меня был BASIC под самой настоящей MS DOS. Примерно 5-6 уроков Информатики. На последнем уроке из этого программистского цикла нам задали задачу: посчитать количество дней между двумя произвольными датами с учётом високосных годов. Доступа к ПК у меня не было, поэтому я просто писал свой код на бумажке и построчно его выполнял, пытаясь решить задачу. К сожалению, эта задача оказалась мне не по зубам.
Первым языком, который я изучал самостоятельно был PHP (где-то месяца через 3-4 после того, как состоялось моё печальное знакомство с BASIC). Почему PHP? Для меня главным и решающим преимуществом этого языка было то, что он не требовал наличия компьютера. Можно было написать текст скрипта на смартфоне Nokia 6670, загрузить его на бесплатный хостинг и проверить, как работает программа.
Доступ к смартфону тоже был ограниченным. Я мог использовать его достаточно непродолжительное время вечером и ночью. Поэтому мой "алгоритм" программирования и отладки скриптов на PHP выглядел следующим образом.
1. Написать код программы в тетрадке
2. Проверить самостоятельно синтаксис
3. Пошагово выполнить программу на листочке
4. Исправить найденные ошибки и вернуться к п.2
4.1 если ошибок нет ждать вечера
5. Вечером перенести итоговый код с листочка в смартфон и загрузить файл на хостинг
6. Запустить скрипт на хостинге
7. Если всё хорошо, то радоваться, если ошибка:
7.1 - простая и понятная, то быстренько исправить, загрузить файл заново и перейти к п.6.
7.2 - сложная или непонятная, то пометить её себе на листочке, мб, немного погуглить/спросить на форумах, почему такая ошибка происходит, чтобы на следующий день вернуться к п.4
Кстати, этот извращённый опыт меня серьёзно закалил. Когда через несколько лет мне потребовалось пройти процедуру ЕГЭ по информатике, то я вообще не видел для себя проблемы в том, что там нет компьютера (сейчас, говорят, есть). Написать код программы на листочке и не упустить ни одной точки с запятой, закрывающей фигурной скобки и тп. — раз плюнуть. Выполнить код и сказать, что выведет программа? Да запросто! Найти ошибку в условных конструкциях? Проще пареной репы. Я видел код насквозь, как рентген. =D
Первой программой, которую я написал на PHP, была "Библиотека".
Скрипт просматривал директорию с файлами и составлял из них страничку со ссылками для чтения. Можно было открыть любой файл и читать его в постраничном режиме, задавая размер шрифта, количество слов на странице и пр. За несколько прогонов алгоритма, изложенного выше, прибегая к помощи гугла и интернет-форумов, я таки справился с этой задачей.
Именно этот скрипт я считаю своей первой полноценной программой.
👍6👏2🔥1🫡1
В комментариях на Stepik задали вопрос про то, как могут быть записаны очень-очень большие числа в переменной double.
На примере небольшого числа
Кому интересно про хранение вещественных чисел, предлагаю к изучению соответствующую ветку комментариев.
#из_комментариев_на_stepik
На примере небольшого числа
double r = 140737488355329.984375; попытался объяснить, как компилятор сохранит его в памяти компьютера. Кому интересно про хранение вещественных чисел, предлагаю к изучению соответствующую ветку комментариев.
#из_комментариев_на_stepik
Stepik: online education
Математические функции. Заголовочный файл math.h
❤2👍1🔥1
Вчера обновил теоретическую часть в уроке про арифметические операторы. Дополнил его нюансами работы оператора
p.s. И чтобы дважды не вставать, публикую ежемесячную статистику.
На 1 августа:
— 1 761 720 верных решений для задач на программирование;
— 790 отзывов
— 67106 учеников.
В Зале славы 5-го урока 6 учеников. Не густо!
% (взятие остатка от деления), добавил исследовательскую задачку для хакеров + поправил разметку. Повторите, если кто успел забыть. К соответствующему уроку на Stepik добавил шпаргалку.p.s. И чтобы дважды не вставать, публикую ежемесячную статистику.
На 1 августа:
— 1 761 720 верных решений для задач на программирование;
— 790 отзывов
— 67106 учеников.
В Зале славы 5-го урока 6 учеников. Не густо!
👍4🔥2
Дополнил урок по математическим функциям и неявному преобразованию типов.
Добавил немного поясняющих примеров, поправил разметку, добавил практических задач, включая пару исследовательских задачек.
Попробуйте решить задачу со скрина.
Если найдёте опечатки/ошибки, пишите в комменты к уроку. Заранее благодарю за помощь!
Добавил немного поясняющих примеров, поправил разметку, добавил практических задач, включая пару исследовательских задачек.
Попробуйте решить задачу со скрина.
Если найдёте опечатки/ошибки, пишите в комменты к уроку. Заранее благодарю за помощь!
👍5🔥3
Чуть-чуть дополнил материал по приоритетам операций. В основном дополнительные материалы и практические задания для самостоятельного решения.
🔥2👍1
Пару дней назад составил диаграмму распределения лайков и дизлайков по урокам на Stepikе. Заметил, что у раздела 5.1 очень удручающее соотношение между лайками и дизами. Стал разбираться, что не так. Изучил внимательно комментарии и обратную связь.
Основные жалобы:
— формулировки условий задач: запутанность, неясность.
— задачи требуют знания циклов, которые к этому моменту ещё не пройдены.
— много математики и надо самому искать формулы.
По итогам работы:
— переписал и поправил условия для всех задач (добавил элементы научно-фантастического сеттинга);
— кое-где добавил формулы, либо обыграл их отсутствие в тексте задачи и сослался на закреплённые комменты.
— удалил одну задачу;
— везде, где можно, добавил кнопку для запуска кода на своих данных;
— добавил небольшой теоретико-методический шаг про экономию вычислений. Задача этого шага подготовить ученика к последующим трём задачам и к дальнейшему изучению циклов. =)
— убрал баллы за оставление обратной связи по уроку.
В общем, предлагаю вам заценить новую версию. Если новая версия придётся вам по вкусу, не пожалейте лайка (не тут, на Stepikе)! =)
p.s. Для истории. Текущие показатели по лайкам и дизам: 535 / 275.
Основные жалобы:
— формулировки условий задач: запутанность, неясность.
— задачи требуют знания циклов, которые к этому моменту ещё не пройдены.
— много математики и надо самому искать формулы.
По итогам работы:
— переписал и поправил условия для всех задач (добавил элементы научно-фантастического сеттинга);
— кое-где добавил формулы, либо обыграл их отсутствие в тексте задачи и сослался на закреплённые комменты.
— удалил одну задачу;
— везде, где можно, добавил кнопку для запуска кода на своих данных;
— добавил небольшой теоретико-методический шаг про экономию вычислений. Задача этого шага подготовить ученика к последующим трём задачам и к дальнейшему изучению циклов. =)
— убрал баллы за оставление обратной связи по уроку.
В общем, предлагаю вам заценить новую версию. Если новая версия придётся вам по вкусу, не пожалейте лайка (не тут, на Stepikе)! =)
p.s. Для истории. Текущие показатели по лайкам и дизам: 535 / 275.
Stepik: online education
Набор задач для программирования.
❤7👍1
Замечаю в обратной связи, в комментариях и на форуме решений упоминание того, что кто-то решил задачу с помощью нейронки.
Генеративный AI это серьёзное явление, которое теперь с нами навсегда, поэтому посчитал важным написать небольшую заметку в блоге на этот счёт.
Использовании LLM при обучении программированию
Генеративный AI это серьёзное явление, которое теперь с нами навсегда, поэтому посчитал важным написать небольшую заметку в блоге на этот счёт.
Использовании LLM при обучении программированию
Teletype
Использование AI при обучении основам программирования
Стал замечать, что многие ребята используют AI (различные LLM) при прохождении курса. При этом, используют его совершенно неправильно.
👍5🔥2
Хорошая новость. Сегодня впервые получил в репозитории курса Pull Request с исправлением опечатки от человека, которого я не знаю. Спасибо, mavensk! =)
Неделю назад я добавил опрос о прошлом опыте программирования. Прикладываю распределение ответов. Полных новичков абсолютное меньшинство =D
Неделю назад я добавил опрос о прошлом опыте программирования. Прикладываю распределение ответов. Полных новичков абсолютное меньшинство =D
❤1👍1🔥1
Поиск рассеянных с улицы Бассейной, 21.
Указывайте в комментариях свой город и дату. Знакомьтесь, объединяйтесь и готовьтесь вместе.
Указывайте в комментариях свой город и дату. Знакомьтесь, объединяйтесь и готовьтесь вместе.
🔥17😁15❤5
Занимаюсь улучшением урока про условные инструкции. Сегодня обновил вступительную заметку.
А ещё добавил раздел manuals на сайт. Туда буду добавлять дополнительные материалы, которым пока не нашлось места в структуре курса. Будет что-то вроде маленькой базы знаний. Для тестирования добавил короткую заметку с таблицей приоритетов операторов в Си.
p.s. Ураааа! Нас ровно 107 человек. Скоро обгоним ютуб-канал! =)
А ещё добавил раздел manuals на сайт. Туда буду добавлять дополнительные материалы, которым пока не нашлось места в структуре курса. Будет что-то вроде маленькой базы знаний. Для тестирования добавил короткую заметку с таблицей приоритетов операторов в Си.
p.s. Ураааа! Нас ровно 107 человек. Скоро обгоним ютуб-канал! =)
youngcoder.ru
Урок 6: Инструкции ветвления в языке Си
Знакомимся с инструкциями ветвления в языке Си: if-else и switch. Разбираемся на простых примерах из жизни, когда и какую инструкцию использовать для принятия решений в программе.
🔥8👍3❤1
Новая версия урока про инструкцию переключения switch
Как обычно, объём текста вырос почти в два раза, но я всё равно доволен получившимся результатом.
— Урок стал более структурированным и подробным.
— Добавлены новые примеры на вложенные инструкции switch, а для старых примеров добавлены пояснения.
— Добавлены дополнительные материалы про ассемблер, константы, и, что меня радует всех больше, про конечные автоматы.
— Добавлена исследовательская задача для хакеров, посвящённая расширенной версии switch, поддерживаемой некоторыми компиляторами.
В общем, кто недавно читал старую заметку, предлагаю перечитать новую. Она гораздо лучше.
p.s. Если прочитали, отпишитесь тут или в комментах, всё ли понятно или где-то возникают трудности? Всем, кто найдёт опечатки, ошибки и т.п., отдельный респект.
Как обычно, объём текста вырос почти в два раза, но я всё равно доволен получившимся результатом.
— Урок стал более структурированным и подробным.
— Добавлены новые примеры на вложенные инструкции switch, а для старых примеров добавлены пояснения.
— Добавлены дополнительные материалы про ассемблер, константы, и, что меня радует всех больше, про конечные автоматы.
— Добавлена исследовательская задача для хакеров, посвящённая расширенной версии switch, поддерживаемой некоторыми компиляторами.
В общем, кто недавно читал старую заметку, предлагаю перечитать новую. Она гораздо лучше.
p.s. Если прочитали, отпишитесь тут или в комментах, всё ли понятно или где-то возникают трудности? Всем, кто найдёт опечатки, ошибки и т.п., отдельный респект.
👍4🔥2