Закреплено автором
ZDG
Навигатор по каналу
2K · 3 года назад
Статьи
292 прочтения · 5 дней назад
От C к C++: ООП
Я писал на языке C давно, и сейчас вернулся к нему просто для души. Мне просто нравится. Однако я вообще не знаю C++ и никогда не писал на нём, хотя это и покажется странным. Многие уверены, что C и C++ это практически одно и то же, ну как Java и JavaScript :) Да, C это подмножество C++, и поэтому можно написать программу на C, дать файлу расширение .cpp и скомпилировать компилятором C++. Формально это будет программа, написанная на C++, но на самом деле нет. Можно писать на C, используя некоторые...
158 прочтений · 1 неделю назад
Демистификация циклов
Цикл – одна из самых базовых конструкций программирования, и что там может вызывать непонимание? Действительно, ничего. Программист пишет циклы очень часто, это становится автоматическим навыком, но именно поэтому некоторые специфические детали могут систематически ускользать и попадать в поле зрения только тогда, когда что-то пойдёт не так. Цикл это повторное исполнение одного и того же кода. Например, вот одни и те же строчки кода: a = 5; a = 5; a = 5; И они будто бы даже выполняются повторно....
279 прочтений · 2 недели назад
Демистификация оператора switch
В этом материале разберём оператор switch, который есть во многих языках программирования, иногда под разными названиями. Он выполняет те же задачи, что и if, то есть организует условия и ветвления. Становится не совсем понятно, зачем он понадобился. Я буду использовать язык С. Разберём такой пример с условными операторами if: Его можно переписать с использованием switch: Что это нам даёт? Во-первых, можно заметить, что количество различных скобок и знаков == сократилось. Запись стала более "питонистой", появился воздух (и 4 лишние строки)...
50 прочтений · 2 недели назад
Графический интерфейс программы на языке C #13: Коварный комбобокс
В прошлом выпуске был сделан локальный менеджер памяти для создания элементов интерфейса: Само создание – именно на лету, а не заранее – нужно в принципе, но изначально потребовалось для реализации выпадающего списка (он же комбобокс). Выпадающий список в спокойном состоянии это поле с кнопкой: Но стоит его потревожить, у него появляются новые элементы: Это во-первых простыня со списком, и во-вторых, скроллбар (ползунок и две кнопки), если список слишком велик. Теоретически можно было бы все эти элементы сразу включить в состав комбобокса, и просто делать их видимыми или невидимыми...
60 прочтений · 3 недели назад
Пробил планку в 5000 подписчиков :) Особо не радуюсь, потому что число подписчиков совершенно не коррелирует с просмотрами или там лайками. На заработок тоже не влияет, за 4 года ведения канала он стабильно был около 300 рублей в месяц и очень-очень редко достигал 900 рублей в месяц и всего один-единственный раз был около 2000 рублей (ещё в прошлом году). Но всё-таки юбилей. Жаловаться мне не на что, пишу что могу и что хочу. Спасибо всем, кто читает!
65 прочтений · 3 недели назад
В последнее время часто вижу рекламу от cloud.ru (вон, скриншот сделал). Бесплатная виртуальная машина навсегда? Звучит заманчиво. Решил попробовать, и вот что из этого вышло. Конечно, это очень слабенькая машина с ограниченными ресурсами, но это-то ладно. Сразу оказалось, она не будет доступна извне, если не заказать для неё IP-адрес (уже за деньги). Но, отталкиваясь от утверждения "бесплатно", что именно мы можем поиметь бесплатно? Просто какую-то виртуальную машину, которую... мы могли бы точно так же поднять на своём компьютере без всяких ограничений. И кому она в таком случае вообще нужна? Ладно, допустим у нас нет своего компьютера, и мы идём делать бесплатную машину в облаке. Для начала мы должны заполнить какие-то там личные данные, телефон (обязательно, так как на него приходит код). Наконец, когда мы приступаем непосредственно к созданию бесплатной машины, от нас требуют... привязать карту. Зачем? Машина же бесплатная, причём навсегда! Вот у вас же написано – бесплатно навсегда! Ай-яй-яй. Карту я привязывать не стал, но там дальше должно быть ещё интереснее. Привязка карты даёт вам 4000 баллов, которыми вы можете оплачивать эту самую бесплатную машину. То есть эти баллы когда-то кончатся, и машина перестанет быть бесплатной. А если не кончатся, то у них есть срок годности – 60 дней. Иначе говоря, при любом раскладе машина перестанет быть бесплатной через 60 дней. А как же "навсегда"? Ай-яй-яй. Итого: вы получаете очевидно негодный товар в виде временно бесплатной слабой машины без выхода в сеть. Взамен эти хитрованы получают ваш почтовый адрес, телефон и данные платёжной карты. Я бы держался от них подальше.
49 прочтений · 4 недели назад
Графический интерфейс программы на языке C #12: Выделение памяти под элементы
В предыдущей части обсуждалась проблема создания композитных элементов, состоящих из нескольких связанных между собой примитивов: Если сам механизм был более-менее реализован, то осталась другая проблема: как задавать эти элементы в коде? К примеру, чтобы создать композитный ползунок с двумя кнопками, нужно описать его так: Здесь чётко видно, где ползунок и где кнопки, но также видно, что это скорее штучная работа, так как всё делается вручную. Поэтому в то место дерева, где должен быть ползунок, хотелось бы вставлять не такое развесистое описание, а например функцию: GUI_slider_create(...
622 прочтения · 1 месяц назад
Блеск и нищета нейросетей
Прошедший год был насыщен новостями о нейросетях, совершающих прорыв за прорывом. Я также писал кое-какие предсказания вот в этой статье: Оставим пока в покое ChatGPT и вспомним про генеративные нейросети Dall-E, Midjourney и Stable Diffusion, которые стали предметом пристального внимания со стороны группы людей, самоназвавшихся "нейрохудожниками". С виду всё было очень просто – составляй себе запросы да получай пачками отлично отрендеренные картинки из материалов, созданных настоящими художниками...
40 прочтений · 1 месяц назад
Графический интерфейс программы на языке C #11: Композитные элементы
В предыдущей части рассматривалось решение проблемы мульти-обработки события несколькими элементами: Именно благодаря ему можно теперь осуществить реализацию составных, или композитных элементов. Как можно было заметить, до сих пор все элементы интерфейса были простыми, монолитными: кнопка это просто кнопка, ползунок это просто ползунок. Но что, если надо сделать ползунок с двумя кнопками по краям? Можно пойти двумя путями: Монолитный Это будет по-прежнему один элемент, но со сложным поведением. Во-первых, он должен рисовать фиктивные кнопки, которых нет как отдельных объектов...
33 прочтения · 1 месяц назад
Графический интерфейс программы на языке C #10: Необходимое отступление
В предыдущей части было сделано поведение ползунков: На этот раз, по следам дискуссии в комментах, я решил сделать скроллинг контента внутри окна. И я его даже сделал, но. Возникло большое "но". Посмотрим на такую конфигурацию: Три цветных квадратика по горизонтали это группа элементов, которая прокручивается влево и вправо с помощью своего горизонтального скроллбара. Таких групп может быть две и более, и каждая прокручивается независимо собственным скроллбаром. Эти группы объединяются в более крупную группу, которая прокручивается уже вверх и вниз с помощью вертикального скроллбара справа...
57 прочтений · 1 месяц назад
Графический интерфейс программы на языке C #9: Ползунки
В предыдущей части были сделаны основные состояния элементов и переходы между ними: Но я слишком легкомысленно отнёсся к перетаскиванию, которое только перемещало окно. Позже вскрылся целый пласт задач, связанных с перетаскиванием. Это элементы, которые выглядят как движки или рукоятки, которые можно перемещать. В совокупности их можно назвать слайдерами, или по-русски ползунками. Например, горизонтальный ползунок: Аналогично – вертикальный. С его помощью можно вводить какие-то числовые значения, или использовать как скроллбар для прокрутки контента...
598 прочтений · 1 месяц назад
Демистификация хэш-таблиц
Хэш-таблицы широко используются в программировании, и даже новички знакомятся с ними практически сразу. Сами по себе они, однако, встречаются редко. Чаще на их основе делаются другие структуры, такие как множества или ассоциативные массивы. Чтобы было понятно, что и откуда и зачем и как, возьмём практическую задачу. Нужно реализовать множество. Для простоты скажем, что там может быть не более 10 элементов. Мы можем создать массив длиной в 10 элементов, и добавить к нему счётчик элементов: Добавим в множество значение 5...
Видео