الکترون‍‍ــــ



سلام رفقا

توی این پست می‌خوام روش ساده‌ای برای بدست آوردن دنباله‌ی فیبوناچی با استفاده از دستورات متلب رو براتون توضیح بدم.

برای این کار پیش‌نیاز زبان برنامه‌نویسی متلب (پایه‌ی زبان C) و اندکی هم فلوچارت نویسی هست که البته اصلا نگران نباشید اگر این‌ ها رو بلد نیستید. چون زبانی بسیار ساده‌ست و به راحتی می‌تونید تحلیلش کنید

همونطور که می‌دونید دنباله‌ی فیبوناچی این شکلیه:

1, 1, 2, 3, 5, 8, 13, 21 و.

اگر کمی بهش دقت کنید متوجه می‌شید که در مرحله اول عدد ۱ رو با ۱ جمع می‌کنیم. مرحله دوم یا به عبارتی جمله‌ی سوم دنباله‌ی فیبوناچی با جمع کردن دو جمله‌ی قبلی حاصل می‌شه یعنی اگر جملات رو با fn مشخص کنیم، جمله سوم دنباله از طریق رابطه‌ی f3=f2+f1 بدست میاد. و همینطور جمله چهارم هم از حاصل جمع جمله‌ی دوم و سوم، جمله‌ی پنجم از حاصل جمع جمله‌ی چهارم و سوم و الی آخر.

دقیقا کاری که ما می‌خوایم توی محیط متلب انجام بدیم:

این کد‌ها رو ببینید:

clc;
clear all;
i=0;
f1=1;
f2=1;
n=input('set n value:');
while(i<n)
  if i<=n 
    disp(f1);
    f3 = f2+f1;
    f1 = f2;
    f2 = f3;
    i=i+1;
    
  elseif i>n
    disp(f1);
    break;
  end
end
    

برای توضیحش از خط اول شروع می‌کنیم و خط به خط می‌ریم جلو

۱. این دستور به منظور تمیز کردن command prompt متلب استفاده می‌شه و یه جورایی کدهای اضافی رو از صفحه پاک می‌کنه.

۲. هر متغیری که توی workspace شما ذخیره شده باشه با این دستور پاک می‌شه.

۳. برای حلقه‌هایی که داریم باید از یه شمارنده استفاده کنیم. متغیر i رو برای شمارش تعداد تکرارهای حلقه‌مون استفاده می‌کنیم.

۴. جمله‌ی اول دنباله‌ی فیبوناچی رو با مشخص کردن مقدار اولیه برای متغیر f1 مشخص می‌کنیم.

۵. مشابه خط قبلی، جمله‌ی دوم دنباله رو با مشخص کردن مقدار اولیه برای متغیر f2 مشخص می‌کنیم.

۶. حالا وقتشه از کاربر بپرسیم که می‌خواد این دنباله تا چند جمله نمایش داده بشه. یعنی تا کجا این کار ادامه پیدا کنه؟! این مقدار رو از کاربر درخواست می‌کنیم و اون رو توی متغیر n قرار می‌دیم.

۷. ما نیاز به یه حلقه‌ داریم. برای اینکه مجبور نباشیم تمام جملات دنباله رو خودمون وارد کنیم! و این کار توسط کامپیوتر انجام بشه. بنابراین یه حلقه با شرط تعریف می‌کنیم و شرط توقف حلقه رو اینطور تعریف می‌کنیم: مادامی که تعداد جملات نوشته شده به عدد انتخابی کاربر نرسیده حلقه را تکرار کن.

۸. حالا باید مشخص کنیم که اگر هنوز تعداد جملاتی که نوشته شده به تعداد جملاتی که کاربر انتخاب کرده نرسیده، چه اتفاقی باید بیفته! پس یه شرط می‌ذاریم و مقدار شرط رو مطابق کدی که نوشتیم انتخاب می‌کنیم.

۹. توی خط اول، اولین جمله‌ی دنباله‌ی خودمون رو چاپ می‌کنیم.

۱۰. مقدار جمله‌ی سوم رو از مقدار دو جمله‌ی قبلی محاسبه می‌کنیم.

۱۱. از اینجا به بعد یک مقدار کمی پیچیده می‌شه ماجرا. چرا؟! چون باید یک سری تغییراتی توی جملاتمون بدیم. به توضیحات زیر دقت کنید:

شما در تکرار اول این حلقه، مقدار f3 رو محاسبه می‌کنید. یعنی تا الان اعداد زیر رو بدست آوردید:

f1, f2, f3

1,  2, 3

و جمله‌ی اول رو چاپ کردید. یعنی تا الان خروجیتون به این صورته:

1

توی خط ۱۱ کاری که ما انجام می‌دیم اینه که، اعداد رو یه دونه به عقب هل می‌دیم. یعنی چی؟ دنباله فیبوناچی رو اینجا رو ببینید:

f1, f2, f3, f4, f5, f6, .

1,  1, 2,  3, 5, 8, .

و کاری که ما در این مرحله و مرحله‌ی بعدی یعنی خط ۱۲ انجام می‌دیم این دنباله رو به شکل زیر تغییر می‌ده:

f1, f2, f3, f4, f5, f6, .

1,  2, 3,  5, 8, 13, .

فهمیدید چی شد؟ ما با این کار عدد اول دنباله رو نوشتیم و از گردونه‌ی اعداد خارجش کردیم.

حالا باید دوباره اولین عددی که داریم رو بنویسیم.

۱۲. توضیحات مرحله‌ی (خط) ۱۱ رو با دقت بخونید.

۱۳. شمارنده‌ی ما برای اینکه بتونیم تشخیص بدیم تو چه مرحله‌ای هستیم باید یک واحد افزایش پیدا کنه.

۱۴. اما اگر از ابتدا، جمله‌ای که مشخص کردیم یا عدد n برابر صفر بود چی؟!

۱۵. فقط مقدار جمله‌ی اول یا همون ۱ در خروجی نوشته می‌شه و دستور توقف برنامه صادر می‌شه.

 

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

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

این پست رو به دوستانتون هم معرفی کنید.


سلام 

وقت بخیر

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

بنده دانشجوی ایشون بودم در مقطع کارشناسی. دو فایل PDF از تمرین‌های مرتبط با این درس در مورد طراحی حفاظت دیفرانسیل ترانس و باسبار، و همچنین طراحی رله‌های دیستانس از ترم ۹۷-۹۸ ایشون رو براتون به اشتراک می‌ذارم؛ تمرین‌های ارزشمندی هستن و فکر نمی‌کنم جایی بتونید مشابه اینها رو به راحتی تهیه کنید. چون خودم هم خیلی دنبالش گشتم ولی متاسفانه منابع بسیار محدود هستند بخصوص منابع سوال همراه با پاسخ.

برای دانلود فایل‌ها ادامه‌ی مطلب رو باز کنید.

ادامه مطلب

سلام و روز بخیر
این پروژه‌ای بود که در زمان کارشناسی بنده در طول ترم به عنوان پروژه درس الکترونیک صنعتی باید انجام می‌شد
مدار این پروژه رو آقای مهندس شبیری زحمتش رو کشیدن و استاد درس هم دکتر ناصر اسکندریان هستن.
فعلا عکس مدار رو داشته باشیم تا بعد:
در مدار زیر، ترانس سر وسط استفاده شده از نوع ۲۲۰/۹ یا ۲۲۰/۱۲ می‌تونه باشه. همچنین پل دیودی، خازن‌های الکترولیت 2200uf, 25v که پلاریته‌هاشون مهمه در نحوه‌ی بستن مدار، رگولاتور ولتاژ (تثبیت کننده‌ی ولتاژ مثبت (7805) و منفی (7905) ۵ ولت) که پایه‌هاشون باهم دیگه فرق داره و حتما موقع بستن مدار PIN out‌ ها رو چک کنید. نکته اینه که ظرفیت خازن‌های الکترولیتی خیلیییی زیاد مهم نیست و بیشتر ولتاژشون مهمه.

سلام و عرض ادب!
من مصطفی میزانی هستم. مهندس برق گرایش قدرت از دانشگاه سمنان.
در دوران تحصیل و البته پسا تحصیلم دغدغه‌هایی داشتم و دارم که دوست دارم بهشون بپردازم.
خیلی از دانشجوهای دور و اطراف من و صد البته خود بنده نیازهایی داشتم در زمان تحصیل که فکر می‌کنم به هیچ وجه برآورده نشد! و دلم نمی‌خواد عبث و ابتر باقی‌ بمونه. ایشالا که مسیر درستش رو طی کنه به جای خوب هم برسه.
ممنون می‌شم از دوستان عزیزی که دنبال می‌کنن بنده رو، در صورتی که کمکی از دستشون بر میاد دریغ نکنن.

تبلیغات

آخرین ارسال ها

آخرین جستجو ها

یک دختر پی اچ پی کار خرید ویلا در نوشهر راه های کمک به خود خانواده و دوستان در مقابل ویروس کرونا مدرسه رباتیک دست نوشته های زرد من مهدی قاسمی . اجاره تجهیزات نمایشگاهی ، صوتی و تصویری * دانلود خلاصه کتاب آسیب شناسی روانی هالجین