جمعه, 06 شهریور 1394 ساعت 18:14

آموزش فیلترنویسی (ادامه آشنایی با قالب کدنویسی) - بخش پنجم

نوشته شده توسط
این مورد را ارزیابی کنید
(1 رای)

در این بخش ادامه بحث قالب کدنویسی را با هم بررسی خواهیم کرد. پس بریم سراغ نوشتن فیلتر با قالب کد نویسی که در اون تابع هم استفاده شده باشه.

یک فیلتر جدید با نام نسبت میانگین های حجمی ایجاد کنید سپس قالب کلی کد نویسی رو در اون بنویسید. شکل زیر....

 

true==function()
{
// کد تابع فیلتر
};
if( // محل نوشتن شرط)
{
return true;
}
else
{
return false;
}
}()

 

خب حالا تو اون محلی که نوشتیم تابع میخوایم تابع محاسبه میانگین رو پیاده کنیم: تابع شامل موارد زیر هست:

1. ورودی

2. تعیین متغیرهای مورد استفاده

3. دستورات

4. خروجی

خب اول ببینیم ما چجوری میخوایم میانگین بگیریم؟؟؟؟

ما باید عدد حجم امروز رو به علاوه حجم دیروز کنیم و مجموع رو تقسیم بر 2 کنیم. حالا این عدد رو با حجم 2 روز قبل جمع میکنیم و دوباره تقسیم بر 2 میکنیم.

مثلا اگه حجم معاملات روز ها به شکل زیر باشه:

امروز: 2000

دیروز: 1000

2 روز قبل: 200

3 روز قبل: 1000

میانگین حجم دو روزه میشه:

 )2000+1000(/2=1500

میانگین حجم سه روزه :

 )1500+200(/2=850

میانگین حجم چهار روزه :

)850+1000(/2=925

 پس برای محاسبه میانگین حجم N روزه خواهیم داشت:

 

 v

این فرمول با وجود ظاهر پیچیده ای که دارد به راحتی توسط یک حلقه FOR قابل نوشتن است.

for(i=1; i<n; i++)

{

   V=(V+[ih][i].QTotTran5J)/2;

}

خب فرض کنید i=1 باشد. وارد حلقه میشویم. مقدار V با مقدار [ih][1].QTotTran5J که حجم معاملات یک روز قبل هست جمع شده و دوباره داخل V ذخیره میشه. دفعه بعدی i=2 میشود. این بار V با [ih][2].QTotTran5J جمع شده و حاصل بر 2 تقسیم می شود و در V ذخیره میشه. این کار تا وقتی ادامه پیدا میکنه که i از n کوچکتر باشه.

این حلقه میانگین n روزه را برای ما محاسبه میکند. حالا ما هر عددی به n میتوانیم بدهیم. 

خب پس ما تونستیم فرمول اصلی رو پیدا کنیم برای محاسبه حجم...

دقت کنید که خروجی در این تابع میانگین حجمی است.  در واقع ساده ترین قسمت خروجی تابع هست. خروجی همونی هست که ما دنبالش هستیم...

اما ورودی در این تابع چیست؟ عدد n. ما باید تعیین کنیم میانگین چند روزه رو میخوایم..

حالا براحتی میتونیم تابع محاسبه حجم n روزه را بنویسیم. به شکل زیر

 

Untitled

 خوب حالا کافیه این تابع رو در محل مناسب در قالب فیلتر بگذاریم. بعد از جایگذاری تابع در محل تعیین شده در قالب... فیلتر ما به شکل زیر در میاد:

 

 ff

 

 حالا فقط مونده شرط رو پر کنیم:

ما میخایم میانگین حجم 3 روزه بیشتر از میانگین 14 روزه باشد. پس شرط رو به این شکل مینویسیم:

 VolumeOfnDays(3)>20*VolumeOfnDays(14(

این یعنی حجم سه روزه بیشتر از 20 برابر حجم 14 روزه باشد.

فیلتر کلی ما به این شکل میشود:

ffff2

 

حالا خروجی این فیلتر رو به راحتی میتونید ببینید.  

 قسمت بعدی آموزش ما اینه که میخوام این نسبت ها رو دیده بان بازار داشته باشیم.

 

خواندن 2664 دفعه آخرین ویرایش در جمعه, 06 شهریور 1394 ساعت 19:01
برای ارسال نظر وارد سایت شوید