None of you have seen how ordinary guys become cool programmers. But welcome to my blog! Here I will post my progress, articles and a lot of interesting from the world of machine...
Don't wanna be here? Send us removal request.
Text
Алгоритм Дейкстры
https://www.c-sharpcorner.com/blogs/coding-for-dijkstras-algorithm1
Алгори́тм Де́йкстры — алгоритм на графах, изобретённый нидерландским учёным Эдсгером Дейкстрой в 1959 году. Находит кратчайшие пути от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёберотрицательного веса. Алгоритм широко применяется в программировании и технологиях, например, его используют протоколы маршрутизации OSPF и IS-IS.
Псевдолкод:
Реализация на C#:
https://www.c-sharpcorner.com/blogs/coding-for-dijkstras-algorithm1
2 notes
·
View notes
Text
1.IntelliJ IDEA (разработчик JetBrains, Январь 2001 года)
Основные функции:
Поддержка более 20 языков программирования, так же 11 дополнительных языков через плагины сторонних разработчиков Направленна на максимальное удобство разработки, имеет умное автодополнение, включает поддержку всех последних технологий в области разработки ПО и все новейшие фреймворки.
2. NetBeans IDE (разработчик NetBeans Community и NetBeans Org , 1997 год)
Основные функции:
NetBeans IDE поддерживают рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету и множество предопределённых шаблонов кода. Среда разработки NetBeans по умолчанию поддерживает разработку для платформ J2SE и J2EE. Начиная с версии 6.0 NetBeans поддерживает разработку для мобильных платформ J2ME, C++ (только g++) и PHP без установки дополнительных компонентов.
3. Eclipse (разработчик Eclipse Foundation, 2003 год)
Основные функции:
Разработка модульных кроссплатформенных приложений Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ.
4.Qt Creator (разработчик Qt Development Frameworks, Март 2009 года)
Основные функции:
Кроссплатформенная свободная IDE созданная для разработки на С, С++ и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Основная отличительная особенность Qt Creator — упростить разработку приложения с помощью фреймворка Qt на разных платформах. Так же есть такие особенности как отладка приложений на QML и отображение в отладчике данных из контейнеров Qt, встроенный дизайнер интерфейсов как на QML, так и на QtWidgets.
5.Geany (разработчик Geany Community октябрь, 2005 года)
Основные функции:
Geany представляет собой среду разработки для программистов и вебмастеров, позволяя удобно работать с программным кодом. Текстовый редактор Geany обладает большой производительность, быстро открывая большие текстовые файлы.
6. Embarcadero RAD Studio (разработчик Embarcadero Technologies, август 2002 года)
Основные функции:
Основной функцией можно назвать RAD-программирование, для Microsoft Windows Спецификаця данной IDE предполагает максимально быструю и качественную разработку Windows приложений, полагая в своей основе концепцию RAD – программирования.
7. Code::Blocks (разработчик The Code::Blocks team, Июль 2005 года)
Основные функции:
Это кроссплатформенная RAD-IDE, основная функция – создание приложений с использованием C++ и wxWidgets. Поддержка плагинов, наличие встроенного редактора пользовательского интерфейса (плагин wxSmith), возможность запуска IDE под любой ОС.
8.Xcode (разработчик Apple Inc. , 2001 год)
Основные функции:
Разработка программного обеспечения под macOS и iOS Xcode включает в себя большую часть документации разработчика от Apple и Interface Builder — приложение, использующееся для создания графических интерфейсов. Поддерживает языки C, C++, Objective-C, Objective-C++, Swift, Java, AppleScript, Python и Ruby с различными моделями программирования, включая (но не ограничиваясь) Cocoa, Carbon и Java. Сторонними разработчиками реализована поддержка GNU Pascal, Free Pascal, Ada, C#, Perl, Haskell и D
9. Microsoft Visual Studio (разработчик Microsoft, Апрель 1995)
Основные функции:
Позволяет разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight. Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения
2 notes
·
View notes
Text
Устройство ядра ЦП. Завершение.
7. Блок работы с прерываниями – одна из интереснейших частей ядра процессора, потму что именно она обеспечивает ему возможность выполнять не одну, а множество операций одновременно. Как я понял работает это так- если в процессоре поступил запрос на прерывание какой либо инструкции, выполнением другой, то он отвлекается, на новую задачу, сохраняя данные первой инструкции в стек. Затем, когда инструкция ради которой был прервана первая, выполнена, процессор снова возвращается к первой и продолжает её выполнение- таким образом достигается так называемая псевдопараллельность.
8. Регистры – один из видов оперативной памяти, которая работает в несколько раз быстрее памяти КЭШа, но составляет всего несколько сотен килобайт, в ней хранятся промежуточные результаты выполнения инструкций. Делится на регистры специального и общего назначения.
Регистры общего назначения – в них хранятся данные выполнения логических, арифметических и операций дополнительных наборов инструкций.
Регистры специального назначения – просто хранят данные, которые необходимы для работы процессора. Доступ строго ограничен.
9. Счётчик команд – вы наверное уже догадались что он делает! Но нет, не смотря на название, этот блок решает какую инструкцию будет выполнять процессор на следующем такте работы(а не считает команды, как можно подумать из названия).
0 notes
Text
О процессорах 2.
Продолжаем наш рассказ о процессорах.
3. Блок выборки данных пожалуй объяснить проще всего, он выбирает из КЭШа данные которые необходимы для выполнения команды.
4. Управляющий блок, как вы наверно догадались, управляет всей работой по выполнению инструкций, то есть следит чтобы инструкции выполнялись своевременно, верно, а так же распределяет нагрузку между ними.
5. Блок выполнения инструкций – это собственно АЛУ(арифметическое-логическое устройство) о которой мы говорили в прошлых постах, и FPU – о которой более подробно мы поговорим потом, потому что это устройство предназначено для работы с плавающей точкой, и о ней мне ��отелось бы узнать более подробно.
Ядро процессора дополняют расширенными наборами инструкций, для ускорения обработки данных, шифровки и дешифровки.( о них поговорим в следующих блогах)
6. Блок сохранения результатов, проще некуда – он обеспечивает сохранение результатов выполненных команд, и сохраняет их по адресу, указанному в инструкции.
0 notes
Text
О процессорах. И разрядности системы.
Пожалуй, начну с интересного факта: процессоры intel с начала производства первого процессора модели 4004, сделали просто огромнейший скачок в производительности, представьте себе за 40 лет с 2300 транзисторов до 1 160 000 000.
Поражает тот факт, что под капотом моего ноутбука работает одна из таких квадратных штуковин, выполняющая с непостижимой мозгу быстротой, миллионы операций в секунду( хотя с мозгом его не сравнить, но всё же!), и ещё больше поражает то, что я совершенно не понимаю как эта маленькая квадратная хрень работает!!
Конечно, чтобы не выглядеть совсем тупым скажу, что я всё же кое что читал о процессоре, но сложить это в единое, целостное понимание устройства процессора, мне так и не удалось. Так что если бы меня попросили незнающему человеку объяснить, что же это такое, я бы просто не смог этого сделать.
Итак процессор состоит: из тракта данных в котором может быть от 1 до 32 регистров(или до 64) , затем Арифметическая-Логическая машина(АЛУ) и шины, которые всё соединяют между собой. Получается, что разрядность системы зависит от количества регистров? Но что же такое разрядность в таком случае – это термин означающий смену нулей и единиц, то есть разрядов? Пока трудно ответить на этот вопрос, но сразу понятно что 64-ёх битный процессор выигрывает в быстродействии у 32-ух битного, потому что в нём содержится большее число регистров для запоминания логических операций, которые выполняются АЛУ. Ну или как то так.
А что же такое АЛУ? Тут всё немного проще( если не вдаваться в подробности) – это устройство, которое выполняет логические операции, вроде логического И, ИЛИ и так далее, то есть сложение, вычитание. АЛУ имеет свои входные регистры, в которых команды ждут своей очереди к непосредственному выполнению.
Забыли про ш��ны? Ну с ними всё более менее ясно – соединяют между собой все основные части компа, как и процессора.
А теперь что я понял про разряды. Тут всё ещё сложнее. Под разрядом я понимаю смену напряжения между транзисторами в процессоре, происходит это следующим образом: при подаче на транзистор более сильного напряжения он включается и действует как проводник, при подаче напряжения ниже определённого напряжения он выключается и действует как очень сильное сопротивление. Таким образом и получаются те пресловутые нули и единицы, о которых все знают( ну или многие).
0 notes
Text
Немного о полезных ресурсах для начинающих программистов
1. www.codewars.com
Если вы думаете что решая задачки на паскале и бэйсике в школе и вузе вы стали великим гением, и любую из них вы решите на раз — два, то вам сюда. Можете в одиночку решать задачи придуманные пользователями, можете устроить с кем нибудь дуэль, и за все это вам даётся определённый ранг, определяющий ваш прогресс.
Отличный ресурс развивающий алгоритмическое мышление и помогающий лучше освоить основы языка программирования, который вы изучаете.
2. www.codecademy.com
Если вы только начинаете программировать, или уже программируете, но хотите выучить новую технологию или язык, руки в ноги и сюда. Здесь вас не просто научат код писать, но и объяснят где и как его можно применить, благодаря различным дополнительным курсам. Дерзайте!
3. www.sololearn.com
Если вам надо уехать, а прекращать изучение вашего любимого языка программирования не хочется ни на секунду, смело устанавливайте sololearn на любое ваше устройство и учите теорию, а так же занимайтесь практикой. Крайне удобный интерфейс и возможность соревноваться с другими игроками в знаниях языка. Отличное приложение чтобы закончить им нашу мини-подборку полезных ресурсов!
Всем спасибо!)
0 notes
Text
О процессорах. И разрядности системы.
Пожалуй, начну с интересного факта: процессоры intel с начала производства первого процессора модели 4004, сделали просто огромнейший скачок в производительности, представьте себе за 40 лет с 2300 транзисторов до 1 160 000 000.
Поражает тот факт, что под капотом моего ноутбука работает одна из таких квадратных штуковин, выполняющая с непостижимой мозгу быстротой, миллионы операций в секунду( хотя с мозгом его не сравнить, но всё же!), и ещё больше поражает то, что я совершенно не понимаю как эта маленькая квадратная хрень работает!!
Конечно, чтобы не выглядеть совсем тупым скажу, что я всё же кое что читал о процессоре, но сложить это в единое, целостное понимание устройства процессора, мне так и не удалось. Так что если бы меня попросили незнающему человеку объяснить, что же это такое, я бы просто не смог этого сделать.
Итак процессор состоит: из тракта данных в котором может быть от 1 до 32 регистров(или ��о 64) , затем Арифметическая-Логическая машина(АЛУ) и шины, которые всё соединяют между собой. Получается, что разрядность системы зависит от количества регистров? Но что же такое разрядность в таком случае – это термин означающий смену нулей и единиц, то есть разрядов? Пока трудно ответить на этот вопрос, но сразу понятно что 64-ёх битный процессор выигрывает в быстродействии у 32-ух битного, потому что в нём содержится большее число регистров для запоминания логических операций, которые выполняются АЛУ. Ну или как то так.
А что же такое АЛУ? Тут всё немного проще( если не вдаваться в подробности) – это устройство, которое выполняет логические операции, вроде логического И, ИЛИ и так далее, то есть сложение, вычитание. АЛУ имеет свои входные регистры, в которых команды ждут своей очереди к непосредственному выполнению.
Забыли про шины? Ну с ними всё более менее ясно – соединяют между собой все основные части компа, как и процессора.
А теперь что я понял про разряды. Тут всё ещё сложнее. Под разрядом я понимаю смену напряжения между транзисторами в процессоре, происходит это следующим образом: при подаче на транзистор более сильного напряжения он включается и действует как проводник, при подаче напряжения ниже определённого напряжения он выключается и действует как очень сильное сопротивление. Таким образом и получаются те пресловутые нули и единицы, о которых все знают( ну или многие).
0 notes