Найти в Дзене
Чем Exit отличается от Halt в Lazarus
При написании программ на Lazarus (Free Pascal) начинающие разработчики часто путают две ключевые процедуры управления потоком выполнения: Exit и Halt. На первый взгляд они похожи — обе завершают выполнение какого-то блока кода. Однако их назначение и механизм работы кардинально различаются. Понимание этой разницы критически важно для создания правильно работающих приложений. Давайте разберем каждый оператор подробно и на примерах. Назначение: Exit предназначена для немедленного завершения работы...
1 день назад
Метод отладочной печати
Эта статья для самых-самых начинающих, так что профессионалы могут не тратить своё время на прочтение ))) Очень редко программа работает с первого раза. Опытные программисты обычно довольно быстро находят ошибки и исправляют их. Но даже с бывалыми иногда происходит так, что приходится повозиться, чтобы найти проблемный участок в коде. Здесь у каждого свои способы, но довольно часто (я, во всяком случае) применяют так называемый “метод отладочной печати”, когда добавление команд вывода данных в ключевых точках кода помогает понять, где “что-то пошло не так”...
2 дня назад
Атрибут type в теге <style>: Пережиток прошлого или необходимость?
В мире веб-разработки, который меняется каждый день, некоторые элементы кода становятся историей, а некоторые остаются важными маркерами правил «хорошего тона». Одним из таких элементов является атрибут type в теге <style>. Когда вы подключаете стили к HTML-документу с помощью тега <style>, вы часто можете увидеть такую конструкцию: <style type="text/css"> body { background-color: white; } </style> Но что именно означает этот атрибут и насколько он важен сегодня? Исторически сложилось так, что Интернет развивался как универсальная среда...
3 дня назад
Неизменяемость строк в C#: Почему разработчики выбрали этот путь?
В мире программирования на C# существует фундаментальная концепция, которая часто вызывает вопросы у новичков, особенно пришедших из других языков (например, C++) — неизменяемость (immutability) строк. Тип string в C# является ссылочным типом, но ведет себя так, как будто это константа: после создания строку нельзя изменить. В этой статье мы разберем, что значит "строка неизменяема", к каким последствиям это приводит, и главное — почему команда разработчиков .NET приняла именно такое архитектурное решение...
4 дня назад
Переменные в PHP: особенности и нестандартные возможности
PHP — один из самых популярных языков программирования для веб-разработки, и его система переменных имеет ряд интересных особенностей, которые отличают его от других языков. В PHP переменные начинаются с символа доллара ($), что делает их легко узнаваемыми. Это динамически типизированный язык — переменная может менять свой тип в процессе выполнения программы: $var = "текст"; // строка $var = 42; // теперь целое число $var = 3.14; // теперь число с плавающей точкой $var = true; // теперь булево значение...
1 неделю назад
Проверка существования файла в Python
При разработке программ на Python часто возникает необходимость проверить, существует ли файл или директория, прежде чем выполнять с ними какие-либо операции. Это помогает избежать ошибок (исключений) при чтении, записи или удалении данных. В Python существует несколько способов проверки существования файлов. Рассмотрим самые популярные и удобные из них. Представьте, что ваша программа пытается открыть файл data.txt для чтения. Если файла не существует, интерпретатор выдаст ошибку FileNotFoundError, и программа аварийно завершится...
1 неделю назад
Зачем использовать goto в современном программировании
Это спор, который не утихает уже более полувека: с тех самых пор, как Эдсгер Дейкстра написал свою знаменитую статью «Go To Statement Considered Harmful». Одни считают goto пережитком прошлого и признаком дурного тона, другие — законным инструментом для особых ситуаций. В этой статье на примере Lazarus (Free Pascal) мы рассмотрим, зачем вообще может понадобиться goto в современном программировании, и стоит ли его использовать. В 1968 году Дейкстра аргументировал свою позицию тем, что оператор goto делает код слишком сложным для понимания...
1 неделю назад
Зачем изучать программирование в эпоху ИИ: Когда код пишут машины, а мыслят — люди
Мы живем в удивительное и пугающее время. Еще вчера нам говорили, что программирование — это «профессия будущего», самая надежная специальность, гарантирующая высокий доход и стабильность. Сегодня же любой школьник может попросить ChatGPT или Claude написать работающий код на Python за считанные секунды. Рынок труда для айтишников действительно меняется, и для новичков он стал особенно жёстким. Начинающие программисты (джуны), еще вчера бывшие желанными стажерами, сегодня столкнулись с жесточайшей конкуренцией...
1 неделю назад
Передача объектов в функции JavaScript: Почему изменения не всегда работают?
Представьте, что вы дали другу свою книгу, он в ней что-то подчеркнул карандашом, и вернул вам обратно. Когда вы снова открываете книгу, пометки на месте — они остались. Всё логично. Но иногда в JavaScript происходит путаница: вы передаете объект в функцию, меняете его внутри, а снаружи он... не меняется. Или меняется, но не так, как вы ожидали. Давайте разберемся, почему так происходит, на понятных примерах. Обычно с простыми вещами (цифрами, текстом) всё просто. Копируя значение, мы создаем его независимую копию: Здесь внутри функции появилась своя независимая переменная ageInside...
2 недели назад
Строки в C#: Разбираемся в природе String и путанице с string
Каждый, кто начинает изучать C#, довольно быстро сталкивается со строками. Это фундаментальный тип данных, без которого не обходится практически ни одна программа. Мы пишем string name = "Иван"; и не задумываемся о том, что скрывается за этим простым действием. Однако, стоит копнуть чуть глубже, и у новичков (да и у опытных разработчиков, которые редко заглядывают в документацию) возникает закономерный вопрос: А в чем разница между string и String? И главное, почему говорят, что String — это класс, но ведет он себя порой как значение? Давайте раз и навсегда расставим все точки над i...
2 недели назад
Определение функции в PHP
Функции — это основа любого серьезного программирования. Представьте, что вам нужно в десяти местах сайта посчитать скидку на товар. Вместо того чтобы писать одну и ту же формулу десять раз, вы можете написать её один раз внутри функции и просто вызывать эту функцию, когда нужно. В PHP существуют встроенные функции (например, strlen() для вычисления длины строки), которые уже готовы к использованию, и пользовательские, которые мы создаем сами. Объявление функции начинается с ключевого слова function...
2 недели назад
Проверка типов в Python: как сделать код надежнее
Python — язык с динамической типизацией. Это значит, что нам не нужно указывать тип переменной, когда мы её создаем. Интерпретатор сам понимает, что x = 10 — это число, а name = "Анна" — это строка. Это удобно и позволяет писать код быстро. Но у медали есть обратная сторона: ошибки, связанные с типами данных, могут проявиться в самый неподходящий момент — во время выполнения программы. В Python есть принцип: "Если это выглядит как утка и крякает как утка, то это утка". Мы можем передать в функцию любой объект, главное, чтобы у него был нужный метод...
2 недели назад