Задать вопрос
Ответы пользователя по тегу Программирование
  • Говорят,что не надо знать матем. при изучении программирования, но почему все задачи математические?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Для программирования всё же надо знать математику как минимум на хорошем уровне средней школы. Лучше - старшей на отлично. Математика на уровне высшей школы в основном нужна при работе с графикой, физикой и научными вычислениями. Но, именно, что "в основном". Иногда даже в обычных приложения встречаются задачи, где надо более глубокое понимание и знание математики.
    Математика - это фундамент всех современных вычислительных систем и языков программирования. Без знания математики невозможно разрабатывать приложения сложнее, чем скрипт на пару сотен строчек кода. А ещё и логику знать.
    Ответ написан
    Комментировать
  • Что можно реализовать для обучения ИБ на сайте?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Есть дипломный проект

    нужно что-то добавить

    Открываете гугл, вбиваете вашу тему, находите что-то более-менее похожее и просто копируете нужное вам. Чего-то большего от диплома не требуется.
    Ответ написан
  • Почему при полностью идентичном содержимом файлов (*.js, *.php, *.css) они могут иметь разный вес/размер?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как именно вы проверяли вес файлов и чем и как сравнивали их содержимое? Есть два варианта: возможно вы спутали размер файла и место занимаемое на диске, показываемые в свойствах файла - это разные вещи. На диске файл занимает больше место, т.к. под файл выделяется место кластерами, а размер кластера фиксирован для раздела и может быть разным, и соответственно в разных ОС и в разных ФС он может быть разным. Второй вариант - разные переводы строк в разных ОС. Гит умеет подменять и в разных ОС размер и хэш файлов будет отличаться из-за разных принятых переводов строк в ОС или настроек гита.
    Ответ написан
    Комментировать
  • Из-за чего программа C++ на amd работает быстрее чем на intel?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Из-за того, что процессоры от разных производителей обладают разной производительностью, внезапно, из-за отличий в архитектуре, командах, транзисторах, частотах, кэшах и во всём остальном. Сюрприз! А еще есть такие факторы как: кэши, оперативная память, дисковая подсистема, запущенные приложения, сервисы, разные ОС, разные чипсеты, разные биосы, да даже вентилятор на процессоре может влиять на производительность, из-за которого турбобуст какой-нибудь включится или выключится, и еще целый вагон других факторов.
    Ответ написан
    5 комментариев
  • Как декомпозировать задачи, с которыми ты впервые сталкиваешься?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Искать, читать, анализировать, исследовать, делать выводы. Какие тут еще могут быть варианты-то? Ну, кроме варианта напрячь кого-то, а самому пойти пить чай/кофе с пончиками. Логика плюс научный метод в помощь.
    В целом же, касательно задачи именно декомпозиции есть следующие основные подходы: сверху вниз, снизу вверх и совмещённый - часть делается сверху, часть снизу. Берёте листочек бумаги и рисуете на нём все элементы вашей задачи и вообще всё, что по ней известно. Ваша задача - это ведь не просто одно слово какое-то или фраза какая-то, а что-то типа "если на входе А - то на выходе Б, если В - то Г". Далее рисуете связи между ними - что, к чему, куда и как. Вот вам и готов первый уровень декомпозиции. Если что-то неизвестно или висит в воздухе - ничего страшного, значит надо просто изучить вопрос глубже, собрать дополнительные данные и прочее. И далее повторяете в таком же духе. Берёте один элемент и делите его на составляющие таким же способом.
    Еще один тоже достаточно неплохой подход: слева рисуете исходные данные - то, что у вас есть, а справа результат - то, что должно получиться в итоге. Вот где-то между ними и есть решение. Рисуем стрелочку слева направо и думаем - что это за стрелочка? Как она работает? Что она делает такого, чтобы получился нужный результат? В центре рисуем известные части/элементы сей головоломки и потихоньку создаём между ними связи в процессе размышлений и исследований.
    Реальные примеры декомпозиции:

    Киоск для онлайн-магазина
    Ответ написан
    8 комментариев
  • Какая самая простая для программирования среда на Windows XP?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Ну, самый простой ЯП - это Форт. Проще уже некуда: просто слова разделённые пробелами. Известный мне рекорд минимальной реализации: 254 занятых байта из 256 байт оперативной памяти в каком-то МК и целых два свободных байта для использования. И SciTE-Ru в качестве IDE - он очень гибкий, плагины, множество поддерживаемых ЯП, огромная куча настроек, автоматизация и прочее. В общем, почти как VSCode - только шустрый нативный интерфейс без браузерных движков и жаваскрипта.
    А если что-то более сложное - то C# и .Net 4.7.
    Ответ написан
    Комментировать
  • Как сделать такое приложение для пожарных, суть- пожарные водоисточники?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Уже давно существует готовый сервис для добавления объектов на существующую карту: wikimapia.org - регистрируетесь, открываете карту вашего города и спокойно добавляете туда гидранты, пожарные водоёмы и все что захотите в категорию "Объекты пожарной охраны", например. После добавления объектов открываете вашу категорию и все нужные объекты будут обозначены на карте. И никакого программирования вам здесь не нужно. Причем там используются 4 разных источников карт: гугл, яндекс, yahoo, OSM.
    Наша альтернатива: 2Гис.
    UPD: пример карты гидрантов на гугл-карте, используемой в реальной работе: https://youtu.be/JzgiEn3uyIs?t=65
    Ответ написан
  • Вычитаю одно округленное число из другого, в ответе выдается число с кучей знаков после запятой, как это исправить?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Добро пожаловать в реальный мир вычислений чисел с плавающей запятой с погрешностью! Если вам нужны точные вычисления - используйте тип decimal или аналогичный для вашего ЯП.
    https://habr.com/ru/articles/266023/
    https://learn.microsoft.com/ru-ru/office/troublesh...
    https://0.30000000000000004.com/
    Ответ написан
    2 комментария
  • Задание на учебную практику у программистов колледжа?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Обычный десктопный или веб калькулятор: от простой считалки до математического, инженерного или для программистов, как с простыми фичами, так и с более сложными: поддержка нескольких языков, тем и стилей, кроссплатформенности (win, mac, *nix, ios, android), истории вычислений, поддержка экзотических форм записи - стек с обратной польской записью, синхронизация и объединение между машинами (управление на телефоне/планшете/клавиатуре, экран - на мониторе ПК/планшете/другом телефоне), построение графиков 2D/3D и прочее. Разные платформы - dotNet, C++, Python, Web и т.п. Кому на что фантазии хватит - хоть до экселя встроенного. Главное - чтобы студентам было интересно. Можно даже на базе такого проекта диплом подготовить. Или, как вариант, взять все фичи, но разделить их на всех: сделать общий для всех проект - как для команды, что тоже будет очень полезным опытом. Можно даже взять реальный таск менеджер, в него завести все задачи проекта и провести всех студентов через реальный опыт работы в команде над общим проектом.
    Ответ написан
    2 комментария
  • Как практиковаться в программировании?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Решать реальные задачи. Написание кода - это всего лишь небольшая часть в разработке ПО. Язык программирования - это инструмент. Рекомендую присмотреться к готовым схемам изучения ЯП. Например: https://roadmap.sh/ А так же пробовать не только решать разные задачи, но и разные ЯП и разными способами. Так же имеет смысл присмотреться к играм с мощными редакторами и системами модификации: создать свой квест/карту/игру очень даже неплохо мотивирует делать что-то большее. Ну и, конечно же, учиться, учиться и учиться. Причем еще и учиться учиться. И обязательно учить английский и математику. IT меняется и развивается очень быстро и без навыков и способностей к самостоятельному обучению тут очень быстро можно оказаться за бортом и уйти на дно как топор.
    Ответ написан
    Комментировать
  • Как игра понимает, что используется не физическая клавиатура?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Проблема с эмуляцией ввода в играх в том, что в винде существует несколько разных АПИ и методов получения пользовательского ввода - возраст ОС, легаси, обратная совместимость и все такое прочее. И каждый разработчик использует то, что нравится/нашел/встроенное в движок/попалось под руку, а некоторые специально усложняют возможности программной эмуляции для блокировки ботов. Поэтому надо пробовать несколько вариантов, а если не работает - то остается либо свой драйвер в ядре ОС либо эмуляция с внешнего устройства.
    Ответ написан
    Комментировать
  • Как сделать из локального чата публичный?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Вам следует описать конкретно, что именно у вас не получается. В целом ваша задача состоит из следующих подзадач:
    1. Арендовать сервер
    2. Арендовать домен
    3. Подключить сервер к домену
    4. Сделать дополнительные настройки на сервере в соответствии с требованиями вашего приложения
    5. Разместить приложение на сервере
    6. Запустить приложение
    Ответ написан
    8 комментариев
  • Какая есть бесплатная библиотека на C# для воспроизведения и записи аудио на Linux+Windows?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Дык VLC же есть, прям первая ссылка в гугле на биндинг: https://github.com/videolan/libvlcsharp
    Да даже если не можете найти конкретно либу или вот VLC биндинг завести, то что мешает тупо в командной строке запускать любой бесплатный плеер для воспроизведения/записи?
    Ответ написан
  • Как проверить запросы, которые пришли в Postman?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Postman manual -> Designing and developing your API -> Mocking an API -> Setting up mock servers:
    https://learning.postman.com/docs/designing-and-de...
    Ответ написан
    Комментировать
  • Почему код не правильно работает?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Просто отформатируйте код в нормальный вид - это не просто так придумали, а для удобства. Кроме того, вам IDE даже точное место ошибки показывает - выделяет красным и подчеркивает. Что именно тут непонятного?
    Ответ написан
  • Как реализовать эту блок схему в код?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Для реализации алгоритма потребуется использовать константы, переменные, операторы ветвления и цикл. Или https://freelance.habr.com/
    Ответ написан
    Комментировать
  • Как погрузиться в начала/фундамент программирования?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как построенн язык программирования, например: Как понять, как устроенны ключевые слова; Препроцессорные процессы: define, include и др.; - Я правильно понимаю, нужно опустится на ещё более низкий уровень до ассемблера? - Ассемлер является той фундаментальной сущностью в программировании (не считая машинный код, который и так человек не должен понимать)?

    Абсолютное большинство ЯП имеют во-первых - стандарт, где описывается вся его логика, а во-вторых открытый исходный код(либо имеется открытая реализация) и где можно изучить все детали реализации.

    Возможно достичь понимания работы программ не физически, а программно. (Я не знаю как это точно сказать.) То есть не как в комп’ютере выполняется программа, а как работает отдельная сущность - программа? - И вообще это возможно, либо я просто многое чего хочу от жизни?

    Любая программа - это просто алгоритм. Так что смотрим что делает программа и спокойно разбираем её алгоритм. А если есть исходный код - то вообще все полностью можно разобрать.

    Ну и вообщем, какие-то фундаментальные знания - на чём базуется/построенна програмированние и IT, тоже не помешало. Например рекомендуют SICP почитать, правильно ли я тогда пойду или это не то. Если да, можете ещё набросать ваши варианты? Буду признателен.

    Фундамент - бинарная логика. Над ней - процессорные инструкции или машинный код. Далее - ассемблер, минимально простая абстракция для составления инструкций для процессора. Следующий этаж - язык программирования высокого уровня, который в своем составе имеет какой-то типовой набор абстракций (переменные, функции, операции с памятью, блоки и разные типы данных), функций и алгоритмов для более человечного описания алгоритмов и для работы с данными. ЯП бывают разные и решают проблему в какой-то определенной области или для какой-то цели. Также существуют предметно/проблемно-ориентированные ЯП (DSL - domain-specific language) - более узкие решения. Дальше - стандартные и дополнительные библиотеки для упрощения работы с определенными данными, алгоритмами и прочее. Выше лежат фреймворки реализующие какой-то определенный каркас/функционал для реализации программ/алгоритмов для решения задач в рамках какой-то специфической области.
    Ответ написан
    4 комментария
  • Как процессор ''понимает'' машинный код?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никак не понимает - у него нет сознания для понимания чего бы-то ни было. Биты сами по себе реализуются на физическом уровне: есть сигнал - есть бит, нет сигнала - ноль. И далее сигнал либо идет дальше либо нет. Есть транзисторы - на базе транзисторов строятся другие логические элементы, которые перенаправляют сигнал дальше в зависимости от состояния. И вот это все вместе позволяет делать вещи такого типа: если вот тут такое-то сочетание битов, то сложить содержимое вот этих двух регистров, если другое - то вычесть и т.д. (примерно, конечно). В процессоре есть декодер команд - вот в нем и реализована вся эта логика по выполнению команд. Рекомендую изучить основы компьютерной схемотехники, устройство процессоров, транзисторов и как оно все работает.
    Ответ написан
  • Как реализовать условные конструкции в языке Форт?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как мне реализовать оператор ветвления так, чтобы он поддерживал вложенность.

    Стеком, конечно. Для этого, обычно, используется т.н. стек управления или управляющих структур. Он существует только во время компиляции. Точный механизм не помню, но то ли кладем в этот стек код операции то ли адрес точки ветвления для вычисления смещения ветвления то ли все вместе.
    И ещё, не подскажите ли, как разбить код на функции? А то функция eval-forth-program слишком большая и сложная.

    Традиционно форт реализуется с использованием т.н. шитого кода. Так же есть и вариации шитого кода и другие механизмы. В целом логика такая: есть список - это словарь слов. Логика интерпретатора крайне проста:
    1. Получить следующий символ из входного потока
    2. Если ноль или конец строки - выход
    3. Если не разделитель - перейти к следующему символу
    4. Если разделитель - искать слово в словаре
    5. Если слово найдено - выполнить его
    6. Не найдено - сообщить об ошибке

    Далее, организовываем два стека - основной, возврата, переменную STATE (интепретация/компиляция), основной словарь или список словарей, минимальный набор слов для компиляции - двоеточие, точка с запятой и далее по мере надобности все остальное. Главное запустить интерпретатор, от него компилятор, а далее уже можно средствами самого форта реализовать остальной минимальный набор слов, затем учим форт компилировать и собирать самого себя и получаем самодостаточную систему. Рекомендую книги Лео Броуди к прочтению и регистрацию на форт-форуме - там тоже очень много материалов по теме реализации форта )
    Ответ написан
    1 комментарий
  • Как сделать программу которую невозможно закрыть?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Максимум, что можно сделать - при получении сигнала/сообщения об остановке/закрытии окна не останавливать приложение/не закрывать окно. В случае остановки процесса - перезапускать его сторонним приложением. Сам процесс легко убивается таск-менеджером или ОС. За исключением редких некоторых багов на уровне системы (конкретно windows), когда процесс завис наглухо либо что-то в системе и система по каким-то причинам не способна его завершить.
    Ответ написан
    Комментировать