تبلیغات
وبلاگ مهندسی عمران (مهندسی آب)
وبلاگ مهندسی عمران (مهندسی آب)
زَکاةُ العلم پَخْشُه!! البته‌با‌‌دانش‌‌وبیان‌مناسب‌و‌به‌دور‌از‌هرگونه Copy&Paste!
پاسخ به سؤال فرترن
نوشته‌شده در تاریخ جمعه 13 اردیبهشت 1392 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: دنباله فیبوناچی، فرترن، کد، مثال، Fibonacci،  

سلام!
توی نظرات پرسیده شده که چه‌طور می‌شه دنباله فیبوناچی رو حتی بدون استفاده از آرایه نوشت. همون‌طوری که قبلاً گفتم دنباله فیبوناچی رو در اصل باید با تابع بازگشتی (Recursive Function) نوشت و در غیر این صورت راحت‌ترین راه استفاده از آرایه هست. اگر از آرایه هم استفاده نکنیم فقط نوشتن برنامه رو سخت‌تر کردیم. به‌ هر حال من کدهای این برنامه رو براتون می‌ذارم.
توضیحات:
1- در هر بار محاسبه حلقه دو جمله از دنباله حساب می‌شه، جمله nام و جمله n+1ام. جمله nام توی متغیر U و جمله n+1ام توی متغیر V ذخیره می‌شه. به همین خاطره که تعداد تکرار حلقه اگر n زوج باشه n/2 هست و اگر n فرد باشه (n-1)/2. برای تشخیص زوج بودن یا نبودن n از تابع Mod() یعنی تابع باقیمانده استفاده کردیم. اگر باقیمانده تقسیم n بر 2 صفر شد عدد زوجه وگرنه عدد فرده.
2- به متغیر A مقدار 0 داده شده که همون جمله صفرم دنباله هست و به متغیر B مقدار 1 داده شده که جمله اول دنباله هست. با اولین ورود به حلقه، مقدار متغیر U برابر با A+B می‌شه که برابره با 1 و جمله دوم دنباله هست. بعد متغیر V برابر B+U می‌شه که برابر 1+1=2 هست و همون جمله سوم دنباله هست. برای محاسبه جملات بعدی مقدار A و B باید تغییر کنن. پس متغیر A مقدارش رو از متغیر U و متغیر B مقدارش رو از متغیر V می‌گیره. دفعه بعدی که حلقه تکرار می‌شه U=A+B=1+2=3 و V=B+U=2+3=5 که جملات چهارم و پنجم دنباله هستن. به همین ترتیب در هر تکرار حلقه دو جمله متوالی محاسبه می‌شن.
3- برای چاپ جمله nام دنباله، اگر n زوج باشه U و اگر n فرد باشه V چاپ می‌شه.

Implicit None
Integer :: A, B, N, M, U, V, I
A = 0
B = 1
Print*, "Please Enter n:"
Read*, N
If (Mod(N,2) == 0) Then
          M = N/2
Else
          M = (N-1)/2
End If
Do I = 1,M
          U = A + B
          V = B + U
          A = U
          B = V
End Do
If (Mod(N,2) == 0) Then
          Print*, "Un =", U
Else
          Print*, "Un =", V
End If
End



درباره‌ی وبلاگ

.::بسم الله الرحمن الرحیم::.
در این وبلاگ سعی می‌شه مطالب مختلفی در ارتباط با مهندسی عمران و به طور خاص مهندسی آب قرار داده بشه. تمام سعی بنده اینه که مطالبی رو ارائه بدم که یا حاصل تلاش خودم هست، یا اینکه مشابه اون در وبلاگ‌ها و سایت‌های فارسی پیدا نمی‌شه. بنابراین لطفاً حق کپی رایت فراموش نشه!!!

محمدصادق عباسیان
دانشجوی دکترای مهندسی عمران-آب، دانشگاه صنعتی شریف
پست الکترونیک
تماس با مدیر
RSS
ATOM
جستجو
آخرین مطالب
نوروز 1397 مبارک!
پذیرش مقاله در مجلۀ Theoretical and Applied Climatology
«یکِ عمران»: تخصصی‌ترین کانال مشاورۀ کنکور ارشد و دکتری
گفتگوی 6 از مجموعۀ «گفتگوهای آبی»
گفتگوی 5 از مجموعۀ «گفتگوهای آبی»
گفتگوی 4 از مجموعۀ «گفتگوهای آبی»
گفتگوی 3 از مجموعۀ «گفتگوهای آبی»
گفتگوی 2 از مجموعۀ «گفتگوهای آبی»
گفتگوی 1 از مجموعۀ «گفتگوهای آبی»
انتشار مقاله در مجله علمی-پژوهشی عمران مدرس
خلاصه‌های کنکور دکترای عمران آب
مشاوره رایگان کنکور کارشناسی ارشد
ارتفاع مکش کل خالص (NPSH)
رابطه بین مدت و شدت بارندگی
کلاس آموزش برنامه‌نویسی به زبان FORTRAN 90/95
آرشیو
اسفند 1396
مهر 1395
شهریور 1395
اردیبهشت 1395
فروردین 1395
بهمن 1393
مهر 1393
فروردین 1393
اسفند 1392
موضوعات
تغییر اقلیم
مقاله
«گفتگوهای آبی»
مبانی برنامه‌نویسی (فرترن)
مکانیک سیالات و هیدرولیک
هیدرولوژی
سازه
مقاومت مصالح و استاتیک
ریاضیات
مكانیك خاك
بتن
راه‌سازی و روسازی
نقشه‌برداری
اطلاع رسانی
علمی
نویسندگان
محمدصادق عباسیان
پیوندها
دانشگاه صنعتی شریف
کتاب عمران
وبلاگ فرآیندهای تصفیه‌ی آب و فاضلاب
پیوندهای روزانه
فروشگاه فایل‌های آموزشی جزوه‌ها و پروژه‌های مهندسی دانشگاه صنعتی شریف
صفحات جانبی
درباره‌ مدیر، محمدصادق عباسیان
ابر برچسب‌ها
فرترن سیالات مکانیک خاک مقاومت مصالح و استاتیک هیدرولوژی هیدرولیک مکانیک سیالات و هیدرولیک علمی مبانی برنامه‌نویسی فرترن بتن
آمار سایت
بازدیدهای امروز: نفر
بازدیدهای دیروز: نفر
كل بازدیدها: نفر
بازدید این ماه: نفر
بازدید ماه قبل: نفر
تعداد نویسندگان: عدد
كل مطالب: عدد
آخرین بازدید:
آخرین بروزرسانی:
Blog Skin