# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > F#‎‎ > مبتدی: تبدیل کدها Fortran  به F#‎

## voodoo01

سلام  خدمت دوست عزیز 
من برنامه ای با Fortran  جهت محاسبه دستگاه معادلات نوشته ام که جواب این محاسبات جهت پردازش روش حرکت گاز در لوله و  محاسبه افت فشار و سرعت به کار میرود مثلا در بانک من حدود 900 هزار رکرود برای محاسبه و جود دارد ، روش حل دستگاه تکرار در حل معادلات و رسیدن به خطایی نزدیک به 0.00006 مقدار است واین محاسبات برای مقار 900 هزار رکورد حود 1 دقیقه و 20 ثانیه می باشد...
آیا میتوان با F#‎ با سرعت Fortran  یا حتی بیشتر داده هارا پردازش نمود؟

----------


## Mehdi Asgari

اصلا نمیشه جواب قطعی ای به سوالت داد. در واقع جوابت به کلی فاکتور بستگی داره. با فرض مساوی بودن تمام شرایط (سخت افزار ، سیستم عامل ، الگوریتم به کار رفته ...) باز هم شاید بشه با استفاده از مثلا پردازش موازی روی چند هسته (در صورت CPU-bound بودن الگوریتم) یا Asynchronous Work-flows (در صورت IO-bound بودن الگوریتم) ، سرعت پردازش رو بالاتر برد.
اگر بتونی قطعه کدی یا الگوریتمی همراه با داده های اولیه اینجا قرار بدی ، من هم به عنوان یک چالش حاضرم باهات مسابقه بدم ، ببینیم کد کی سریع تر اجرا میشه  :چشمک:

----------


## voodoo01

دوست عزیز من هم مدت زیادی دنبال یک ماراتون بودم تا بدونم کد نوشته شده در چه سطحی قرار داره ...
 فایل t.f90 یک مجموعه روالها برای جواب گیری مقدیر محاسبات می باشد 
فایل input.txt تعدادی داده برای دست گرمی 
مقدار کارت های P1 تل p5  اطلاعات مر بوط به روش محاسبه و ورودی خروجی است و کارت NTBG نام گره و MTBG اتصالات مربوطه میباشد
الگوریتم >>
هاردی کراس بهینه شده که اگر دنبال اطلاعات بیشتر بودین با نام (مانم سفره گاز ) شناخته میشود

با احترام فراوان

VooDoo

----------


## Mehdi Asgari

من که فورترن بلد نیستم. شما شبهه کدی الگوریتمی چیزی بذار که سواد ما بکشه بتونیم بخونیمش
در ضمن ، فقط الگوریتم های حساس و محاسباتی هستن که مهمن ، وگرنه من که وقت ندارم کل برنامۀ شما رو بازنویسی کنم. (1700 خط کده)

----------


## voodoo01

> فقط الگوریتم های حساس و محاسباتی هستن که مهمن ، وگرنه من که وقت ندارم کل برنامۀ شما رو بازنویسی کنم. (1700 خط کده)


 :گیج:  :متفکر: 
کل برنامه نبودش که فقط قسمت محاسبات بودش همین :ناراحت: 
مثلا یک آرایه 800 هزار خانه ای  در سه 
ردیف اول شامل اعدادی بین  40 تا 70 به صورت تصادفی پرشود (اعداد اعشاری)
ردیف دوم شامل یک عدد بین 0 تا 1 (اعشاری)
ردیف سوم یک عدد بین 900 تا 1600 به صورت تصادفی (عدد صحیح)

فرمول :
D()=(a(2)-a(0)/360)+(sqr(a(0)-12)*atan(a(1)+90) ok

با تشکر 

VooDoo

----------


## Mehdi Asgari

فایل input.txt با اون چیزی که گفتی فرق داره. بیشتر توضیح بده (یا اگه لینکی به توضیح الگوریتم داری بده بخونم)

----------


## voodoo01

با سلام خدمت دوست عزیز من یک فکری کردم 
یک سری کد نمونه از سایت MSDN  گرفتم که خیلی کامل بودن در مورد کاربردهای F#‎ 
http://code.msdn.microsoft.com/fshar...ReleaseId=3359

با چند نفر از دوستان نشستیم داریم کدهای Fortran تبدیل میکنم به F#‎  تا چند روزه دیگه برنامه نهایی و داده ها رو قرار میدم تو همین تاپیک اگه لطف کنید و انجا برنامه هارا با هم مقایسه کنید و ویرایش های احتمالی یا ...

دوستان کد نمونه ها رو میتوانید از قسمت ضمینه ها هم دریافت کنند

با احترام فراوان 

VOODOO

----------


## mohammadsepehri

* 					نقل قول: منابع آموزشی #F 				*

* 							با سلام -کتاب جدید آموزشی اف شارپ با امکانات خیلی زیاد از انتشارات دیباگران منتشر شده است . لینک خرید کتاب هم  اینه :*
http://www.mftshop.com/productdetail...type=b&id=7608
پیشنهاد میکنم امتحان کنید .

----------

