تکنولوژی
Bluetooth که بعضی ها در فارسی آن را به دندانه آبی ترجمه کرده اند. استانداردی برای امواج رادیویی است که که برای ارتباطات بی سیم امپیوترهای قابل حمل و نقل (مانند lap top ها) و تلفن های همراه و وسایل الکترونیکی رایج استفاده می شوند این امواج برای فاصله های نزدیک استفاده می شوند و برای ارتباطات بی سیم تکنولوژی ارزانی محسوب می شوند. و بوسیله این تکنولوژی می توانید بین دو وسیله که دارای این تکنولوژی باشند به صورت بی سیم پیغام، عکس یا هر کلاً اطلاعات رد و بدل کنید.
رادیوی Bluetooth در داخل یک میکرو چیپ قرار دارد و در باند فرکانسی 2.4 گیگا هرتز عمل می کند. این تکنولوژی از سیستم "Frequency Hoping Spread Spectrum" استفاده می کند، که سیگنال آن 1600 بار در ثانیه تغییر می کند که کمک بزرگی برای جلوگیری از تداخل ناخواسته و غیر مجاز است. علاوه بر این بوسیله نرم افزار کد شناسایی وسیله طرف مقابل چک می شود. بدین ترتیب می توان اطمینان حاصل کرد که اطلاعات شما فقط به مقصد مورد نظر می رسد.
این امواج با دو قدرت وجود دارند. سطح قدرت پایین تر که محیطهای کوچک را می تواند پوشش دهد ( مثلاً داخل یک اتاق ) یا در نوع با قدرت بالاتر که رنج متوسطی را می تواند پوشش دهد. ( مثلاً کل یک خانه را متواند پوشش دهد. ) این سیستم هم برای ارتباط نقطه به نقطه و هم برای ارتباط یک نقطه با چند نقطه می تواند استفاده شود. دارای پهنای باند 720Kbs و 10 متر قدرت انتقال (در صورت تقویت تا 100 متر قابل افزایش است ) می باشد. این تکنولوژی که از سیستم گیرندگی و فرستندگی در جهت مناسب استفاده می کند. قادر است امواج رادیویی را از میان دیوار و دیگر موانع غیر فلزی عبور دهد. اگر امواج مزاحم دستگاه ثالثی باعث تداخل شود انتقال اطلاعات کند می شود ولی متوقف نمی شود.
با سیستمهای امروزی بیش از 7 دستگاه می توانند برای برقراری ارتباط با تولید کننده امواج در یک دستگاه دیگر فعال شوند. به این شیوه Piconet می گویند چندین piconet را می توان به یکدیگر متصل کرد که یک scatternet را تشکیل می دهند.
Bluetooth SIG
سازمان Bluetooth SIG یا Special interest group در سال 1998 بوسیله سونی اریکسون، IBM، Intel، نوکیا توشیبا بوجود آمد. و پس از آن شرکتهای تری کام، Lucent، مایکروسافت و موتورولا و بیش از 2000 کمپانی دیگر به این سازمان پیوستند.
فرایند صدور جواز و گواهینامه:
قبل از اینکه یک کارخانه بتواند محصولی که از تکنولوژی بی سیم Bluetooth استفاده می کند وارد بازار کند باید جواز آن را از دو جهت دریافت کند. ابتدا محصول مورد نظر استانداردهایی لازم دارد که بتواند با دستگاههای دیگر که دارای تکنولوژی بی سیم Bluetooth هستند ارتباط برقرار کند. دیگر اینکه باید مجوزهای لازم برای این سیستم چه در کشور سازنده و چه در کشوری که محصول به فروش می رود مجوزهای قانونی آنها را دریافت کند.
این تکنولوژی از سال 1990 به عنوان استاندارد کامپیوترهای شخصی (PC ) برای هارد دیسک ها بوده است و این زمانی بود که تکنولوژی مذکور جای درایوهای ESDI و MFM را گرفت یعنی زمانی که هارد دیسک ها به طور متوسط حجمی معادل 200 مگا بایت داشتند. در سال 1990 اولین هارد دیسک یک گیگا بایتی وارد بازار شد و قیمتی برابر 200 دلار در بازار آمریکا داشت. از آن پس تا کنون IDE تکنولوژی مورد استفاده بوده زیرا هارد دیسکها را با قیمت پایین در اختیار مصرف کننده قرار می داد، جای کمتری می گرفت و سرعت مناسبی داشت.
همتای IDE در آن زمان SCSI ( که مخفف Small Computer System Interface است) بود. SCSIکمی از IDE سریعتر است اما بسیار گرانتر است. به علاوه احتیاج به خرید یک ادپتر SCSI که ارزان هم نیست احتیاج دارید. به عبارت دیگر IDE بازار هارد دیسکهای کامپیوتر های شخصی را در انحصار خود گرفت. آنطر که به نظر می رسد کارخانه های معتبر حداقل یک تا دو سال دیگر به تولید هارد دیسکهای با تکنولوژی IDE ادامه دهند.
هارد دیسکهای IDE از کابلهای ریبون پهنی استفاده می کنند که در داخل کامپیوتر بسیار به چشم می آیند و مرتب کردن این کابلها در داخل کامپیوتر خود هنری است.
تکنولوژی هارد دیسک های ساتا ( SATA ) بر اساس پردازش اطلاعات متوالی ( سریال ) است. یعنی انتقال اطلاعات از هارد دیسک به باس دیتا و در جهت عکس به طور منظم و در دورهای زمانی مشخص انجام می گیرد.
هارد دیسکهای ساتا از کابلهای ریبون با پهنای کمتر استفاده می کنند که برای کسانی که آنرا اسمبل می کنند باعث بسی خوشبختی است. این کابلهای نازک دارای کانکتورهای بست داری هستند که کار کردن با آنها را ساده تر می کند.
هارد دیسکهای ساتا اطلاعات را با سرعت متوسط 150Mb بر ثانیه انتقال می دهند. اما مقاله های زیادی روی اینترنت در مورد هارد دیسکهای با سرعت 3Gb در ثانیه خواهید یافت.
اما بیایید این دو را در عمل با یکدیگر مقایسه کنیم و ببینیم چرا صنعت در آینده تکنولوژی SATA را بر خواهد گزید.
تا کنون در مقایسه دو هارد دیسک به قیمت هم توجه داشتیم اما حالا بدون در نظر گرفتن قیمت و تکنولوژی مرسوم کارایی را بررسی می کنیم.آزمایش از این قرار بود. یک کامپیوتر قدیمی را به یک هارد SATA مجهز کردیم. و بعد از آن دو کامپیوتر امروزی ( پنتیوم 4 ) با سرعت متعارف را با هارد دیسک هایIDE برای مقایسه انتخاب کردیم. آزمایش ها و نتایج به قرار زیر بودند.
آزمایش 1
آین آزمایش یک انتقال فایل معمولی بود. برای اینکه در هر سه کامپیوتر انتقال اطلاعات کاملاً مشابه باشد در ویندوز XP شاخه :
c:windowssystem32
انتخاب شد در یک سیستم که در آن ویندوز XP اجرا می شود این شاخه در حدود 330 مگابایت حجم دارد. و حدود 2000 فایل در آن وجود دارد. یک فولدر جدیر در درایو C (پارتیشن C ) از هارد دیسک ایجاد شد سپس در DOS فرمان
copy>c:>windows> system32>*.*
اجرا شد که همانطور که می دانید این دستور همه فایلهای داخل شاخه system32 را در فولدر جدید کپی می کند و نتایج جالب بدست آمده آز این قرار بود:
کامپیوتر و نوع هارد دیسک |
زمان انتقال اطلاعات |
سیستم جدید اول همراه با IDE | 127 ثانیه |
سیستم جدید دوم همراه با IDE | 151 ثانیه |
سیستم قدیمی همراه با SATA | 44 ثانیه |
آزمایش 2
دومین آزمایش زمان بوت شدن است که زمانهایی که مربوط به سخت افزار است حذف شده است. یعنی از لحظه ای که تصویر آغازین ویندوز به نمایش در می آید تا لحظه ای که دسک تاپ کامپیوتر به حالت عادی در می آید زمان اندازه گرفته شد نتایج به قرار زیر است
کامپیوتر و نوع هارد دیسک |
زمان بوت |
سیستم جدید اول همراه با IDE | 28 ثانیه |
سیستم جدید دوم همراه با IDE | 28 ثانیه |
سیستم قدیمی همراه با SATA | 17 ثانیه |
توجه: در این تستها به کارخانه سازنده دیسکها اشاره نشده است مطمئناً با در نظر گرفتن این فاکتور تغییر خواهد کرد ولی هر دو مدل IDE و SATA از هارد دیسک ساخت یک کارخانه استفاده شده است.
اساساً سه تکنولوژی کریستال مایع در مانیتورهای LCD استفاده شده است که عبارتند از TN+film , IPS ,MVA مهم نیست که از کدام تکنولوژی استفاده شود همه آنها از یک اساس پیروی می کنند.
یک یا چند لامپ نئون روشنایی صفحه را تأمین می کنند برای مدلهای ارزانتر یک لامپ نئون استفاده شده است اما در مدلهای گرانتر ممکن است تا چهار لامپ یا حتی بیشتر پیدا کنید.
تعداد لامپهای نئون تأثیری در کیفیت تصویر ندارند. در عوض لامپ لامپ دوم به عنوان یک پشتیبان عمل می کند اگر برای لامپ اول مشکلی پیش بیاید. در واقع عمر مفید مانیتور افزایش می یابد از آنجا که یک لامپ نئون معمولاً 50000 ساعت کار میکند در حالیکه وسایل الکترونیکی 100000 تا 150000 ساعت کار می کنند.
برای اینکه از یکنواختی صفحه تصویر اطمینان حاصل شود نور بوسیله یک سیستم منعکس کننده شدت یکسانی پیدا می کند اگر چه ممکن است در نگاه اول به نظر نرسد ولی عملکرد این صفحات فوق العاده پیچیده است در حقیقت 2 پانل وجود دارد یکی در هر طرف ساب پیکسلها که هر کدام با یک فیلتر قرمز سبز آبی پوشش داده شده است در یک مانیتور 15 اینچ تعداد ساب پیکسلها به "1024x768x3=2359296" میرسد هر سلول RGB بوسیله یک ترانزیستور که ولتاژ مختص به خودش را دارد کنترل می شود و این ولتاژ که در محدوده بزرگی تغییر می کند باعث می شود که کریستالهای مایع در هر ساب پیکسل در یک زاویه خاص بچرخند که این زاویه تعداد نورهای عبوری از هر ساب پیکسل را تعیین می کند ( منظور سه نور قرمز سبز و آبی است ). که در حقیقت سبب بوجود آمدن تصویر صفحه نمایش می شود. هدف نهایی کریستالها منحرف کردن نور برای عبور از میان فیلترهای پلاریزه است قبل از اینکه دیده شود اگر کریستالها همه در جهت فیلتر قرار گرفته باشند نور از آن عبور می کنند و برعکس اگر همه آنها عمود بر فیلتر قرار گرفته باشند صفحه نمایش سیاه باقی می ماند.
کریستال مایع:
اصولاً کریستالهای مایع موادی هستند که به طور فیزیکی دارای خاصیتهای جامد و مایع هر دو هستند. یکی از خاصیتهای جالب آنها توانایی آنها در تغییر موقعیت بسته به ولتاژ اعمالی به آنها است. اجازه دهید نگاه دقیقتری به آنها بیندازیم. در دنیای علم و تکنولوژی کریستالهای مایع همیشه جالب توجه بوده اند.
در سال 1888 «Friedrich Reinitzer» یک گیاه شناس اتریشی در مورد نقشی که کلسترول در گیاهان بازی می کرد تحقیق می کرد. یکی از آزمایشات او در معرض حرارت قرار دادن ماده بود. او کشف کرد کریستالها در دمای 14/5 درجه تبدیل به سیال و یک حالت ابری می شدند و در دمای 178/5 درجه یک مایع واقعی بودند. او اکتشافش را با اتو لهمان یک فیزیکدان آلمانی که کشف کرده بود مایعات خواص مشابه کریستال دارند در میان گذاشت. به خصوص راجع به رفتار آن زمانیکه به آن نور تابانده می شد بنابراین نام آن بوسیله اتولهمان به این صورت نام گذاری شد: کریستال مایع.
شکل بالا: یک ملکول با خواص کریستال مایع است به نام متوکسی بنزیلیدن بوتیلانالین
نمای نزدیک یک کریستال مایع
FSB مخفف Front side Bus است و همچنین تحت نامهای باس پرسسور و باس حافظه یا باس سیستم شناخته شده است. FSB پروسسور را به حافظه اصلی ( رم ) و سایر اجزاء داخل کامپیوتر متصل می کند. FSB می تواند 133و 266 و 400 MHz یا بالاتر باشد. زمانی که کامپیوتر یا مادربرد می خرید یکی از مهمترین مشخصاتی که باید به آن توجه کنید FSB است.
سرعت FSB بوسیله بایاس سیستم یا جامپر ( jumper ) که روی مادربرد قرار دارد تعیین می شود. بیشتر مادربردها اجازه تغییر FSB را تا جاییکه کامپیوتر over clock نشود می دهند.
قفل شدن سخت افزار کامپیوتر، از دست دادن ( خراب شدن ) اطلاعات یا ایرادات دیگر ممکن است از بکار بردن یک سخت افزار قدیمی با یک مادربرد با FSB بالا باشد. بنابراین سازگاری قطعات کامپیوتر را با مادربرد و یا FSB مادربرد چک کنید. در ضمن ببینید که آیا FSB کامپیوتر شما به طور مناسب تنظیم شده است over clock کردن کامپیوتر معمولآ چنین اشکالاتی بوجود می آورد.
تعریف کلی از اکسسAccess
اکسس ابزاری برای تولید بانکهای اطلاعاتی رابطه ای است. بانکهای اطلاعاتی امکان گردآوری انواع اطلاعات را برای ذخیره سازی ،جستجو و بازیابی فراهم میکند.
اجزا بانک اطلاعاتی اکسس عبارتند از:
DataBase:
1. Table
2. Query
3. Form
4. Report
5. Macros
6. Modules
• Table :(جدول ) هر جدول برای نگهداری دادههای خام بانک اطلاعاتی است.دادهها را شما در جدول وارد میکنید.جداول سپس این دادهها را به شکل سطرها و ستونهایی سازماندهی میکند.
• Query :هر پرس و جو برای استخراج اطلاعات مورد نظر از یک بانک اطلاعاتی مورد استفاده قرار میگیردهر پرس و جو میتواند گروهی از رکوردها را که شرایط خاص دارا هستند انتخاب کند.پرس و جوها را میتوان بر اساس جداول یا پرس و جوهای دیگر اماده نمود. با استفاده از پزسوجوها میتوان رکوردهای بانک اطلاعاتی را انتخاب کرد، تغییر داد و یا حذف نمود.
• Form :متداولترین روش استفاده از فرمها،برای ورود و نمایش دادهها است.
• Report :گزارش ها میتوانند بر اساس جدول ،پرسوجوها باشند ،قابلیت گزارش چاپ دادهها میباشدگزارشها را میتوان بر اساس چند جدول و پرسوجو تهیه نمود تا رابطه بین دادهها را نشان داد.
• Macro :ماکروها به خودکار کردن کارهای تکراری ،بدون نوشتن برنامههای پیچیده یا فراگیری یک زبان برنامه نویسی ، یاری میکند، در واقع ماکروها یکسری قابلیتهایی هستند که امکان سریع سازی را فراهم میسازند.
• Modules : محیط بسیار قوی و با کیفیت برای برنامهنویسی محاسبات و عملیات پیچیده روی سیستم بانک اطلاعاتی.
-----------------------------------
الف - تعریف دادهData :
هرگونه اطلاعات لازم و کاربردی درباره یک موجودیت را یک داده میگویند.
ب- تعریف Fild :
به هر ستون یک جدول که در بر گیرنده کلیه اطلاعات مربوط به آن ستون میباشد و بخشی از یک موجودیت را تشگیل میدهد فیلد گفته میشود.
ت- تعریف Record :
به هر سطر یک جدول که اطلاعات مربوط به یک موجودیت را نشان میدهد ، رکورد گویند.
ث- تعریف پایگاه دادهای ارتباطی:
پایگاه دادههای ارتباطی، مجموعهای از جدولهای داده است که یک فیلد مشترک در هر یک از جدولهای موجود دارد و از طریق آن میتوان دادهها را بهم ربط داد.به این مدل از پایگاه دادهها ، پایگاه دادههای ارتباطی RelationShip میگویند.
گاهی اوقات نیاز است فرم ما از نظر اندازه پیرو یک الگو باشد و کاربر نتواند خارج از محدوده این فرم را تغییر اندازه دهد، راهی که پیشنهاد می شود، استفاده از Windows Messages، تابع WM_GetMinMaxInfo میباشد.
unit MinMax;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMGetMinMaxInfo(var MSG: Tmessage); message WM_GetMinMaxInfo;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMGetMinMaxInfo(var MSG: Tmessage);
Begin
inherited;
with PMinMaxInfo(MSG.lparam)^ do
begin
with ptMinTrackSize do
begin
X := 300;
Y := 150;
end;
with ptMaxTrackSize do
begin
X := 350;
Y := 250;
end;
end;
end;
end.
ایجاد یک DLL
با استفاده از منو فایل گزینه New Items را انتخاب کنید و آیتم DLL Wizard را انتخاب نمایید. حال به فایل ایجاد شده، یک فرم با استفاده از روش بالا اضافه نمایید. دقت نمایید که Application را بجای فرم انتخاب ننمایید. حال اگر فرض کنیم که نام فرم شما Demo باشد و بانام UDemo.pas آنرا ذخیره کرده باشید. باید در فایل DLL بصورت زیر کد نویسی نمایید:
library demodll;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils,
Classes,
UDemo in 'UDemo.pas' {Demo};
{$R *.res}
procedure ShowdemoForm;stdcall;
begin
Demo :=Tdemo.Create(nil);
demo.Show;
end;
function ShowdemoFormModal:integer;stdcall;
begin
demo :=Tdemo.Create(nil);
Result := demo.ShowModal;
end;
Exports
ShowDemoForm,
ShowdemoFormModal;
begin
end.
دقت کنید که نام DLL فوق DemoDll می باشد و با نام DemoDll.dpr ذخیره گردیده است.
حال بر روی فرم موجود تمام دکمهها و آبجکتهای مورد نظرتان را اضافه و کد نویسی کنید (اختیاری). در پایان در منو Project گذینه Build DemoDll را انتخاب کرده و اجرا نمایید. فایلی با نام DemoDll.dll ایجاد می گردد که برای استفاده آماده است.
استفاده از یک DLL بصورت دینامیکی
برای استفاده از یک DLL بصورت دینامیکی، ابتدا نام توابعی را که در فایل DLL شما موجود است بصورت زیر تعریف نمایید:
unit UMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TShowdemoFormModal= Function :integer;
.
.
.
دقت کنید که نام برنامه انتخابی پیش فرض Main و با نام UMain.pas ذخیره گشته است. حال برای لود کردن DLL یادشده، یک دکمه بر روی فرم قرارداده آنرا بصورت زیر کد نویسی کنید:
var
hndDLLHandle:THandle;
ShowdemoFormModal:TShowdemoFormModal;
procedure TFMain.Button1Click(Sender: TObject);
begin
try
hndDLLHandle:=LoadLibrary('Demodll.dll');
if hndDLLHandle <> 0 then begin
@ShowdemoFormModal:=getProcAddress(hndDLLHandle,'ShowdemoFormModal');
if addr(ShowdemoFormModal) <> nil then begin
ShowdemoFormModal;
end
else
showmessage ('function not exists ...');
end
else
showMessage('Dll Not Found!');
finally
freelibrary(hndDLLHandle);
end;
end;
فرم شما آماده اجراست. در پایان متذکر می شوم که استفاده ار روش دینامیکی در لود کردن DLL ها باعث پایین آمدن سرعت نمایش فرمها و در عوض بالارفتن سرعت برنامه خواهد شد.
ProgressBar1: TprogressBar;
در ادامه دستورات زیر را در خاصیت OnCreate فرم خود بنویسید:
var
ProgressBarStyle: LongInt;
begin
{create a run progress bar in the status bar}
ProgressBar1 := TProgressBar.Create(StatusBar1);
ProgressBar1.Parent := StatusBar1;
{remove progress bar border}
ProgressBarStyle := GetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE);
ProgressBarStyle := ProgressBarStyle - WS_EX_STATICEDGE;
SetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE, ProgressBarStyle);
{set progress bar position and size - put in Panel[2]}
ProgressBar1.Left := StatusBar1.Panels.Items[0].Width +
StatusBar1.Panels.Items[1].Width + 4;
ProgressBar1.Top := 4;
ProgressBar1.Height := StatusBar1.Height - 6;
ProgressBar1.Width := StatusBar1.Panels.Items[2].Width - 6;
{set range and initial state}
ProgressBar1.Min := 0;
ProgressBar1.Max := 100;
ProgressBar1.Step := 1;
ProgressBar1.Position := 0;
end;
حالا برای آنکه پس از خارج شدن از فرم حافظه اشغال شده آزاد گردد، در قسمت
ProgressBar1.free;
چطور میتوان زمان کپی شدن فایل را با استفاده از ProgressBar نمایش داد؟
برای انجام این کار ابتدا بر روی یک فرم یک ProgressBar اضافه کنید سپس تابع زیر را تایپ کنید:
procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string);
var
FromF, ToF: file of byte;
Buffer: array[0..4096] of char;
NumRead: integer;
FileLength: longint;
begin
AssignFile(FromF, Source);
reset(FromF);
AssignFile(ToF, Destination);
rewrite(ToF);
FileLength := FileSize(FromF);
with Progressbar1 do
begin
Min := 0;
Max := FileLength;
while FileLength > 0 do
begin
BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
FileLength := FileLength - NumRead;
BlockWrite(ToF, Buffer[0], NumRead);
Position := Position + NumRead;
end;
CloseFile(FromF);
CloseFile(ToF);
end;
end;
در این تابع شما در واقع فایل مبدا را خوانده و در مقصد مینویسید. حالا یک دکمه اضافه کرده کد زیر رو اضافه نمایید:
procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFileWithProgressBar1('c:Welcome.exe', 'c: empWelcome.exe');
end;
چطور می توان زمان کپی شدن فایل را محاسبه و نمایش داد؟
برای این کار نیز میتوانید از تابع زیر استفاده کنید:
procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string);
var
FromF, ToF: file of byte;
Buffer: array[0..4096] of char;
NumRead: integer;
FileLength: longint;
t1, t2: DWORD;
maxi: integer;
begin
AssignFile(FromF, Source);
reset(FromF);
AssignFile(ToF, Destination);
rewrite(ToF);
FileLength := FileSize(FromF);
with Progressbar1 do
begin
Min := 0;
Max := FileLength;
t1 := TimeGetTime;
maxi := Max div 4096;
while FileLength > 0 do
begin
BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
FileLength := FileLength - NumRead;
BlockWrite(ToF, Buffer[0], NumRead);
t2 := TimeGetTime;
Min := Min + 1;
// Show the time in Label1
label1.Caption := FormatFloat('0.00', ((t2 - t1) / min * maxi - t2 + t1) / 100);
Application.ProcessMessages;
Position := Position + NumRead;
end;
CloseFile(FromF);
CloseFile(ToF);
end;
end;
در این تابغ ابتدا زمان اولیه در متغیر
((t2 - t1) / min * maxi - t2 + t1) / 100