Всем, кто хочет помочь рассылке!:
Наши Web-Money кошельки:
WMZ:Z291237744828
WMR:R136486730344
Рассылки Subscribe.Ru
это стильно удобно, и информативно!
СообЧа (СООБщество ЧАйников). Обмен опытом, вопросы, ответы.
подпишись и подпиши друга!!!!
Срочное объявление:
Человеку, болеющему сахарным диабетом и циррозом печени нужнен ноутбук
или PDA, для выполнения работы из места получения лечения и на дому при
постельном режиме. Сам больной в очень тяжелом положении и позволить
себе покупку не может, согласен на любую б/у модель в любом состоянии(даже
в аварийном), лишь бы работала.Человеку, который не пожалеет выслать
б/у ноутбук - респект.
Среда
программирования Delphi 5-6. Справочное пособие
Книга полностью описывает среду программирования Delphi, которая включает
в себя полный набор визуальных инструментов для быстрой и профессиональной
разработки приложений для различных операционных систем, кроме того
рассмотрены проблемы перехода между этими версиями дельфи.
Книга содержит методические и справочные материалы
по новой версии системы визуального объектно-ориентированного программирования
Delphi
6 и предшествующим версиям Delphi 5 и 4. Рассмотрены такие новые возможности
Delphi, как кросс-платформенные приложения, технологии доступа к
данным
ADO, InterBase Express, dbExpress, компоненты ; серверы СОМ, технологии
распределенных приложений СОМ, CORBA, MIDAS, новая методика диспетчеризации
действий...
Внимание, всплываем!!
Долгое время наша рассылка была в "дауне", но не потому, что ее закинули.
Проблеммы со здоровьем у автора и финансами немного выбили нас из рабочего
графика. Мы постараемся наверстать упущенное и поднять нашу оперативность
до прежнего уровня.
Однако, теперь рассылка будет часто отходить от тематики в сторону, поскольку
я сейчас работаю над играми и софтом.
Очень помогли бы ваши материалы или ссылки на сайты, где можно найти
чего-нибудь интересного, а я коротко напомню основные:
delphi.mastak.ru
www.glscene.org
www.g32.org
sulaco.co.za
www.graph64.miesto.sk
www.delphi3d.com
www.torry.(com или net не помню)
http://www.alan-warriner.co.uk
Уж конечно вы все заметили объявление в начале рассылки - это наше главное
условие работы. Мы помогаем вам, а вы нам и другим читателям, иначе фига
с два я буду надрываться и печатать в пустоту эти строки. Взаимовыручка
- ключ к успеху. Если вы хотите скачивать софт и более подробные статьи,
а также иметь доступ к архиву всех выпусков, то попробуйте найти нам хороший
хостинг(не верю что среди знакомых у наших читателей нет никого, кто не
помог бы с хостингом в стиле www.delphi2000.ru).
Ну на этом все, ждите выпусков с советами в ближайшую неделю... А вот вам
на закуску:
unit BasicMath;
interface
uses Math;
const Epsilon = 1e-8; // выставлять в зависимости от точности IReal
Epsilon2 = Epsilon*1000;
ES1 = 1 - Epsilon;
EB1 = 1 + Epsilon;
type
IReal = Double; // основной тип с плавающей точкой
// операции с числами
function Sign(A:IReal): IReal; // возвращает 1 со знаком числа A; 0, если A=0
function Arctan3(dX, dY: IReal):IReal; // арктангенс угла (1,0)-(0,0)-(dX,dY)
function AngleSub(Angle1, Angle2: IReal):IReal; // Разность углов Angle1-Angle2
procedure Swap(var A, B: IReal); // меняет числа местами
function SwapIfAMax(var A,B: IReal):Boolean;// меняет числа местами, если A
больше B,
// возвращает True, если была замена
implementation
function Sign(A:IReal): IReal; // возвращает 1 со знаком числа A
begin
if A > 0.0 then Result := 1.0 else
if A < 0.0 then Result:= -1.0 else Result:=0.0;
end;
function Max(A, B: IReal):IReal; // возвращает наибольшее из двух чисел
begin
if A>B then Result:=A else Result:=B;
end;
function Min(A, B: IReal):IReal; // возвращает наименьшее из двух чисел
begin
if A<B then Result:=A else Result:=B;
end;
procedure Swap(var A, B: IReal); // меняет числа местами
var Tmp:IReal;
begin
Tmp:=A;
A:=B;
B:=Tmp;
end;
function SwapIfAMax(var A,B: IReal):Boolean;// меняет числа местами, если
A больше B, возвращает True, если была замена
var Tmp:IReal;
begin
if A>B then
begin
Tmp:=A;
A:=B;
B:=Tmp;
Result:=True;
end
else Result:=False;
end;
function Arctan3(dX, dY: IReal):IReal; // арктангенс угла (1,0)-(0,0)-(dX,dY)
begin
if Abs(dX) > Epsilon then Result:=Arctan2(dY,dX) else
if dY>0.0 then Result:=pi/2 else Result:=-pi/2;
end;
function AngleSub(Angle1, Angle2: IReal):IReal; // Разность углов Angle1-Angle2
var S,C: Extended;
begin
SinCos(Angle1-Angle2, S, C);
Result := Arctan3(C, S);
end;