Советы по Delphi. Версия 1.4.3 от 1.1.2001 - [5]
> For i := 1 to kol_zn - 1 do snl := snl + '0';
> snl := snl+'1';
> n1 := StrToFloat(Copy(s,1,Pos(',',s)+kol_zn))+StrToFloat(snl);
> s := FloatToStr(n1);
> if Pos(',',s) > 0 then s1 := Copy(s,1,Pos(',',s)+kol_zn);
> end else s1 := s0 + IntToStr(nn);
> if s1[Length(s1)]=',' then s1 := s1 + '0';
> Result := StrToFloat(s1);
> end else Result := Zn;
>end;
Все-таки работа со строками здесь излишество -
>function RoundEx( X: Double; Precision : Integer ): Double;
> {Precision : 1 - до целых, 10 - до десятых, 100 - до сотых...}
>var
> ScaledFractPart, Temp : Double;
>begin
> ScaledFractPart := Frac(X)*Precision;
> Temp := Frac(ScaledFractPart);
> ScaledFractPart := Int(ScaledFractPart);
> if Temp >= 0.5 then ScaledFractPart := ScaledFractPart + 1;
> if Temp <= -0.5 then ScaledFractPart := ScaledFractPart - 1;
> RoundEx := Int(X) + ScaledFractPart/Precision;
>end;
Разное
Генерация еженедельных списков задач
Мне необходима программа, которая генерировала бы еженедельные списки задач. Программа должна просто показывать количество недель в списке задач и организовывать мероприятия, не совпадающие по времени. В моем текущем планировщике у меня имеется 12 групп и планы на 11 недель.
Мне нужен простой алгоритм, чтобы решить эту проблему. Какие идеи?
Вот рабочий код (но вы должны просто понять алгоритм работы):
>unit Unit1;
>interface
>uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
>type TForm1 = class(TForm)
> ListBox1: TListBox;
> Edit1: TEdit;
> Button1: TButton;
> procedure Button1Click(Sender: TObject);
>private { Private declarations }
>public { Public declarations }
>end;
>var Form1: TForm1;
>implementation
>{$R *.DFM}
>const maxTeams = 100;
>var
>Teams: Array[1..maxTeams] of integer;
> nTeams, ix, week, savix: integer;
>function WriteBox(week: integer): string;
>var
>str: string;
> ix: integer;
>begin
>Result := Format('Неделя=%d ',[week]);
> for ix := 1 to nTeams do begin
> if odd(ix) then Result := Result+' '
> else Result := Result+'v';
> Result := Result+IntToStr(Teams[ix]);
> end;
>end;
>procedure TForm1.Button1Click(Sender: TObject);
>begin
>nTeams := StrToInt(Edit1.Text);
> if Odd(nTeams) then inc(nTeams); {должны иметь номера каждой группы}
> ListBox1.Clear;
> for ix := 1 to nTeams do Teams[ix] := ix;
> ListBox1.Items.Add(WriteBox(1));
> for week := 2 to nTeams-1 do begin
>Teams[1] := Teams[nTeams-1]; {используем Teams[1] в качестве временного хранилища}
> for ix := nTeams downto 2 do if not Odd(ix) then begin
>savix := Teams[ix];
> Teams[ix] := Teams[1];
> Teams[1] := savix;
> end;
> for ix := 3 to nTeams-1 do if Odd(ix) then begin
>savix := Teams[ix];
> Teams[ix] := Teams[1];
> Teams[1] := savix;
> end;
> Teams[1] := 1; {восстанавливаем известное значение}
> ListBox1.Items.Add(WriteBox(week));
> end;
>end;
>end.
Mike Orriss
Генерация случайного пароля
The_Sprite советует:
Вам понадобилось, чтобы Ваше приложение само создавало пароли ? Возможно данный способ Вам пригодится. Всё очень просто: пароль создаётся из символов, выбираемых случайным образом из таблицы.
Совместимость: Delphi 5.x (или выше)
Собственно сам исходничек: Пароль создаётся из символов, содержащихся в таблице.
Внимание: Длина пароля должна быть меньше, чем длина таблицы!
>// запускаем генератор случайных чисел (только при старте приложения).
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> Randomize;
>end;
>function RandomPwd(PWLen: integer): string;
> // таблица символов, используемых в пароле
>const StrTable: string =
> '!#$%&/()=?@<>|{[]}\*~+#;:.-_' +
> 'ABCDEFGHIJKLMabcdefghijklm' +
> '0123456789' +
> 'ДЦЬдцьЯ' + 'NOPQRSTUVWXYZnopqrstuvwxyz';
>var
> N, K, X, Y: integer;
>begin
> // проверяем максимальную длину пароля
> if (PWlen > Length(StrTable)) then K := Length(StrTable)-1
> else K := PWLen;SetLength(result, K); // устанавливаем длину конечной строки
> Y := Length(StrTable); // Длина Таблицы для внутреннего цикла
> N := 0; // начальное значение цикла
> while N < K do begin // цикл для создания K символов
> X := Random(Y) + 1; // берём следующий случайный символ
> // проверяем присутствие этого символа в конечной строке
> if (pos(StrTable[X], result) = 0) then begin
> inc(N); // символ не найден
> Result[N] :=StrTable[X]; // теперь его сохраняем
> end;
> end;
>end;
>procedure TForm1.Button1Click(Sender: TObject);
>var
> cPwd: string;
>begin
> // вызываем функцию генерации пароля из 30 символов
> cPwd := RandomPwd(30);
> // ...
>end;
Проверка ISBN
Delphi 1
ISBN (или International Standard Book Numbers, международные стандартные номера книг) - мистические кодовые числа, однозначно идентифицирующие книги. Цель этой статьи заключается в том, чтобы убрать покров таинственности, окружающий структуру ISBN, и в качестве примера разработать приложение, проверяющее правильность создания кода-кандидата на ISBN.
ISBN имеет длину тринадцать символов, которые ограничиваются в использовании символами-цифрами от "0" до "9", дефисом, и буквой "X". Этот тринадцатисимвольный код состоит из четырех частей (между которыми располагается дефис): идентификатор группы, идентификатор издателя, идентификатор книги для издателя, и контрольная цифра. Первая часть (идентификатор группы) используется для обозначения страны, географического региона, языка и пр.. Вторая часть (идентификатор издателя) однозначно идентифицирует издателя. Третья часть (идентификатор книги) однозначно идентифицирует данную книгу среди коллекции книг, выпущенных данным издателем. Четвертая, заключительная часть (контрольная цифра), используется в коде алгоритме другими цифрами для получения поддающегося проверке ISBN. Количество цифр, содержащееся в первых трех частях, может быть различным, но контрольная цифра всегда содержит один символ (расположенный между "0" и "9" включительно, или "X" для величины 10), а само ISBN в целом имеет длину тринадцать символов (десять чисел плюс три дефиса, разделяющих три части ISBN).
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.