Найти в Дзене
SEGMENT в ассемблере: Как нарезать память на «колбасу» для процессора
Когда новички слышат слово «ассемблер», у них перед глазами возникают ряды цифр, страшные команды вроде MOV и ADD, и, конечно, сегменты. А ведь сегментация — это просто. Готовьтесь, сейчас мы на пальцах разберем директиву SEGMENT и поймем, почему без нее ваш код даже не запустится. Представьте, что оперативная память — это огромное поле. А процессор — фермер, который по нему ходит. Чтобы не заблудиться, он делит поле на участки: в одном сегменте у нас морковка (код программы), в другом — кабачки (данные), в третьем — место для шашлыков (стек)...
1 день назад
Метод toString() в JavaScript: Магия превращения данных
Сегодня разбираем один из самых незаметных, но важнейших «кирпичиков» в фундаменте JavaScript — метод toString(). Если вы пишете на JavaScript, вы используете его каждый день, даже не замечая этого. Но знаете ли вы, как он работает на самом деле и как заставить его делать то, что нужно вам? Поехали. toString() — это встроенный метод, который есть у почти каждого значения в JavaScript. Его задача — превратить (преобразовать) сложный объект или число в простую строку. Грубо говоря, вы говорите компьютеру: «Объясни эту сущность человеческим языком (в виде текста)»...
3 дня назад
Trunc и Round в Lazarus: в чем разница и когда что использовать
При разработке приложений в среде Lazarus (Free Pascal) часто возникает необходимость преобразования вещественных чисел в целые. Две основные функции для этого — Trunc и Round. На первый взгляд они похожи, но между ними есть принципиальные различия, которые могут привести к неожиданным ошибкам, если не понимать их поведения. Функция Trunc отбрасывает дробную часть числа, возвращая целое значение, которое находится ближе к нулю. var x: Double; begin x := 3.14; ShowMessage(IntToStr(Trunc(x))); // Результат: 3 x := -3...
2 недели назад
Удаление пробелов в начале и в конце строки в C#
При работе со строками в C# часто возникает необходимость очистить их от лишних пробельных символов в начале или конце. Это может быть полезно при обработке пользовательского ввода, парсинге файлов или работе с данными из внешних источников. Самый простой и распространённый способ удалить пробелы в начале и конце строки — использовать метод Trim(): string text = " Привет, мир! "; string cleanedText = text.Trim(); Console.WriteLine($"'{cleanedText}'"); // Вывод: 'Привет, мир!' Метод Trim() удаляет все пробельные символы (не только обычные пробелы, но и табуляцию, символы новой строки и т...
3 недели назад
Области видимости переменных PHP
Переменные в PHP имеют свою область видимости — контекст, в котором они определены и могут быть использованы. Понимание этой концепции критически важно для написания корректного и безопасного кода. В этой статье мы подробно разберём все типы областей видимости в PHP. Переменные, объявленные вне функций, классов или методов, находятся в глобальной области видимости. Они доступны только вне функций, но не внутри них по умолчанию. Чтобы использовать глобальную переменную внутри функции, необходимо применить ключевое слово global или обратиться к массиву $GLOBALS...
3 недели назад
Вложенный список в Python: один элемент или несколько?
Многие начинающие программисты сталкиваются с неожиданным поведением при работе со вложенными списками в Python. Главное правило, которое нужно запомнить: вложенный список считается одним элементом родительского списка. Рассмотрим простой пример: my_list = [1, 2, [3, 4, 5], 6] print(len(my_list)) # 4 Несмотря на то, что внутри есть три числа и один список из трёх элементов, функция len() возвращает 4...
3 недели назад
Выпадающий список в ячейке TStringGrid
В Delphi и Lazarus, когда вы используете таблицы для ввода-вывода данных, иногда (впрочем, довольно часто) необходимо, чтобы в каком-то столбце была возможность не просто вводить текст, а выбирать значение из списка. При работе с базами данных это можно сделать, например, с помощью TDBGrid с полем lookup. Но, если вы не используете базу данных, а таблица вам нужна для отображения каких-то временных данных или для выгрузки в файл (загрузки из файла), то проще использовать TStringGrid. Однако в таблице этого вида нет стандартных возможностей сделать ячейку с выпадающим списком...
3 недели назад
Как скрыть HTML-элемент от пользователя
Ну вообще для решения этого вопроса в HTML есть комментарии: <!-- Это комментарий --> Однако, если вам очень сильно захочется использовать CSS для сокрытия какого-то блока, то и это возможно. Например, так: *[class=comment]...
4 недели назад
Перебор строки в цикле в C#: методы, нюансы и производительность
Строки в C# — это неизменяемые (immutable) последовательности символов Unicode, представленные типом string. При работе с ними часто возникает необходимость поэлементного обхода: поиск символа, анализ, преобразование или просто чтение. На первый взгляд задача простая, но существуют важные особенности, связанные с кодировкой, производительностью и корректной обработкой Unicode. В этой статье разберём основные способы перебора строки и определим, когда какой метод предпочтительнее. Самый прямой и...
1 месяц назад
get_included_files в PHP
В мире PHP-разработки часто приходится работать со сложной архитектурой, где файлы подключают друг друга (пример см. здесь). В процессе отладки или проверки кода порой сложно понять, какой файл откуда был вызван и какие зависимости были загружены. Функция get_included_files() — это простой, но мощный инструмент ядра PHP, который позволяет заглянуть в «черный ящик» автозагрузки и подключения файлов. Функция get_included_files() возвращает массив, содержащий имена (абсолютные пути) всех файлов, которые...
1 месяц назад
Списки в Python
Список (list) — это одна из самых полезных структур данных в Python. Его можно представить как коробку, в которой можно хранить множество вещей (элементов) в определенном порядке. Главные особенности: Список создается с помощью квадратных скобок []. Элементы внутри разделяются запятыми. В Python счет элементов начинается с нуля. Можно считать с конца, используя отрицательные индексы (также, как и в строках): print(fruits[-1]) # Выведет: апельсин print(fruits[-2]) # Выведет: банан Если нужно получить несколько элементов подряд, используются срезы...
1 месяц назад
Тип Comp в Lazarus: История, особенности и практическое применение
Среди множества встроенных типов данных в Lazarus и Free Pascal Compiler (FPC) тип Comp занимает особое, почти мифическое место. Разработчики, приходящие из Delphi, часто используют его по привычке, а новички находят в старом коде и недоумевают: что это за "странный" тип, который вроде бы и вещественный, но ведет себя как целый? В этой статье мы подробно разберем, что представляет собой тип Comp, в чем его ключевые отличия от других типов и, самое главное, существуют ли ситуации, где он незаменим...
1 месяц назад