Форум программистов, компьютерный форум, киберфорум
Delphi/pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Старый
Как прочитать множество из строки
Запись от Ales'hon'ne размещена 25.05.2013 в 11:20
Показов 2543 Комментарии 0

Собственно, вопрос: есть строка, определяющая множество чисел как в паскале. Нужно эту строку разобрать. Готовых решений не нашёл (может, плохо искал), и пришлось писать велосипед.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
type
  ByteSet=set of Byte;
 
function StringToSet(v: AnsiString): ByteSet;
type
  TToken=(ttNomber, ttPause, ttDiapasone, ttEnd, ttOther, ttError);
var
  i: Integer;
  lastNomber: byte;
 
  procedure SpaceDil;
  begin
    while (v[i] in
...
Аватар для Ales'hon'ne
Старый
Преобразование RGB-HSL
Запись от Ales'hon'ne размещена 17.02.2013 в 15:32
Показов 7998 Комментарии 0
Метки delphi/pascal, hsl, rgb, цвет

Функции для преобразования цветов из человекоудобной системы HSL в компьютероудобную RGB и обратно.
Суть системы HSL (для тех, кто не знает)
Нажмите на изображение для увеличения
Название: color-wheel.jpg
Просмотров: 2847
Размер:	144.0 Кб
ID:	1736
Итоговый цвет в HSL получается путём выбора основного тона (H, hue) и его насыщенности (S, saturation) и светлоты (L, lightness). В качестве иллюстрации можно представить лампочку, которую нужно покрасить. Вы можете выбрать
...
Аватар для Ales'hon'ne
Старый
Класс-кэш
Запись от Ales'hon'ne размещена 21.08.2012 в 21:30
Показов 13169 Комментарии 1
Метки delphi/pascal

Назначение класса - временное хранение некоторого набора именованных значений, причём значение, к которому обращались недавно, будет возвращено быстрее, чем значение, к которому обращались давно.
После долгих и упорных издевательств над дельфями выяснилось, что Dispose память, выделенную процедурой New, не освобождает, хотя вроде должен. Зато FreeMem - освобождает, хотя для этого и не предназначен. Возможно, что это только у меня
...
Аватар для Ales'hon'ne
Старый
Реализация метода Рунге-Кутты
Запись от Ales'hon'ne размещена 20.08.2012 в 19:13
Показов 3665 Комментарии 0

Пример использования:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program CallExponent;
{программа вычисляет значение константы e путём
 решения дифференциального уравнения y'=y, y(0)=1}
uses
  RungeKutta;
 
function Equation(x,y:extended):extended;
begin
  Result:=y
end;
 
begin
  WriteLn(GetSolutionAtPoint(1,0.001,0,1,Equation)) 
  // 2.71828182845902
  // погрешность в 14-ом знаке после запятой
end.
Собственно модуль (для...
Аватар для Ales'hon'ne
Старый
Рейтинг: 4.25. Голосов: 4.
Формула оценки сложности пароля
Запись от Ales'hon'ne размещена 25.07.2012 в 20:13
Показов 9046 Комментарии 2

Не очень сложная, но, при этом, вроде как что-то оценивает:
https://www.cyberforum.ru/cgi-bin/latex.cgi?(N+\sqrt{0.5N_s+N_r}-\sqrt{N_c})\log_N{N_u}
N - число символов в пароле
Nu - число уникальных символов (с учётом регистра)
Ns - число специальных символов (!,",*,?,},…)
Nr - число букв, регистр которых отличается от предыдущей (регистр цифр и спецсимволов — нейтральный (не верхний и не нижний))
Nc - число идущих подряд символов одного типа (буквы, цифры, спецсимволы)
logNNu≤1 -...
Аватар для Ales'hon'ne
Старый
Функции вычисления кратных приставок
Запись от Ales'hon'ne размещена 22.06.2012 в 21:44
Показов 3308 Комментарии 0

Пример использования
Delphi
1
2
3
4
5
6
7
GetScPref(0.00017,0,'Ф');//=170 мкФ
GetScPref(1e20,0,'Дж');//=100 ЭДж
GetScPref(0.19856,2,'г');//=198,56 мг
GetScPref(0.19856,1,'г');//=198,6 мг
{-----------------}
GetCompPref(100000000,2);//=95,37 МиБ
GetCompPref(1000,2);//=0,98 КиБ
Собственно функции
Delphi
1
2
3
4
5
6
7
8
uses
  Math, SysUtils;
 
function GetScPref(v:extended;n:byte;meas:string):string;
var
  t:integer;
const
  pref:array[-8..8] of string=
...
Аватар для Ales'hon'ne
Старый
Бинарный поиск по монотонной функции или массиву
Запись от Ales'hon'ne размещена 21.06.2012 в 19:12
Показов 5489 Комментарии 0

Все сравнения осуществляются с точностью epsilon, если eps=0, то имеется реальный шанс искать значение вечно добиться переполнения стека.
Delphi
1
2
3
4
5
unit BynaryFind;
 
{Будьте внимательны при использовании границ поиска по умолчанию, поскольку
использованы максимальное и минимальное возможные значения переменной типа
Extended, и если для
...
Аватар для Ales'hon'ne
Старый
Модуль для хранения пароля
Запись от Ales'hon'ne размещена 12.02.2012 в 20:52
Показов 3413 Комментарии 0

Хранение пароля в виде самописного восьмибитного хэша (так что криптостойкость не особо велика), реализованы функции записи в файл, сравнения и изменения с запросом старого пароля.
Delphi
1
2
3
4
5
6
7
8
unit SubRosa;
 
{
+----------------------+
|Примеры использования:|
+----------------------+------------------------+
|...                                            |
|  Write('Введите старый пароль: ');            |
...
Аватар для Ales'hon'ne
Старый
Модуль рисования почтового индекса на канве
Запись от Ales'hon'ne размещена 12.02.2012 в 20:38
Показов 3965 Комментарии 0

Возможно, кому-нибудь пригодится. Правда, чтобы добиться совпадения рисунка с пунктиром на конверте придётся попотеть с коэффициентами.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
unit ZipCode;
 
interface
 
uses
  Math, Graphics;
 
/// <summary>
///   Вывод на канву почтового индекса
/// </summary>
/// <param name="Canvas:TCanvas">
///   Указатель на экземпляр класса TCanvas, на
...
Аватар для Ales'hon'ne
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru