سایت علمی و پژوهشی آسمان - مطالب ارسال شده توسط lotfi

راهنمای سایت

سایت اقدام پژوهی -  گزارش تخصصی و فایل های مورد نیاز فرهنگیان

1 -با اطمینان خرید کنید ، پشتیبان سایت همیشه در خدمت شما می باشد .فایل ها بعد از خرید بصورت ورد و قابل ویرایش به دست شما خواهد رسید. پشتیبانی : بااسمس و واتساپ: 09159886819  -  صارمی

2- شما با هر کارت بانکی عضو شتاب (همه کارت های عضو شتاب ) و داشتن رمز دوم کارت خود و cvv2  و تاریخ انقاضاکارت ، می توانید بصورت آنلاین از سامانه پرداخت بانکی  (که کاملا مطمئن و محافظت شده می باشد ) خرید نمائید .

3 - درهنگام خرید اگر ایمیل ندارید ، در قسمت ایمیل ، ایمیل http://up.asemankafinet.ir/view/2488784/email.png  را بنویسید.

http://up.asemankafinet.ir/view/2518890/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86.jpghttp://up.asemankafinet.ir/view/2518891/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%DA%A9%D8%A7%D8%B1%D8%AA%20%D8%A8%D9%87%20%DA%A9%D8%A7%D8%B1%D8%AA.jpg

لیست گزارش تخصصی   لیست اقدام پژوهی     لیست کلیه طرح درس ها

پشتیبانی سایت

در صورت هر گونه مشکل در دریافت فایل بعد از خرید به شماره 09159886819 در شاد ، تلگرام و یا نرم افزار ایتا  پیام بدهید
آیدی ما در نرم افزار شاد : @asemankafinet

درمورد مهندسی کامپیوتر1

بازديد: 185

مهندسی کامپیوتر

هدف: 

رشته مهندسي كامپيوتر كه به طراحي و ساخت اجزاي مختلف كامپيوتر مي پردازد، لذا اهميت بسيار زيادي در دنياي امروز برخوردار است. هدف از طي اين دوره تربيت كارشناساني است كه در زمينه تحليل، طراحي، ساخت و راه اندازي دستگاهها و مجموعه هاي سخت افزاري جديد، بررسي و شناخت مجموعه هاي سخت افزاري و نرم افزاري موجود، نگه داري، عيب يابي و تعمير و اصلاح و توسعه فعاليت كنند.

طراحي، شبيه سازي، فرآوري، پردازش، سنجش، آموزش، ويرايش و ... همه مفاهيمي هستند كه با بالاترين دقت و در كوتاهترين مدت زمان ممكن در برنامه هاي نرم افزاري كامپيوتر انجام مي شوند. لذا هدف از اين رشته تربيت نيروي متخصص براي انجام امور فوق است.

تواناييهاي فارغ التحصيلان

فارغ التحصيلان اين مقطع، قابليتها و تواناييهاي زيادي دارند و چنانچه در مسير مناسب هدايت شوند، قادر خواهد بود مشكلات زيادي را حل كنند. برخي از اين تواناييها به شرح زير است:

1) بررسي و شناخت نرم افزارها و سخت افزارهاي جديد و به كارگيري آنها.

2) بررسي كمبودها و نيازهاي نرم افزاري و سخت افزاري بخشهاي صنعت و خدمات و تدوين نيازهاي آنها، امكان سنجي و تعيين ابزار و نيروي انساني لازم براي رفع كمبودها.

3) تجزيه و تحليل سيستمهاي كوچك و متوسط نرم افزاري و سخت افزاري و ارائه راه حل مناسب براي اجراي آنها.

4) طراحي مجموعه هاي كوچك و متوسط نرم افزاري و سخت افزراي و توليد طرحهاي اجرايي براي انها.

5) اجراي طرحهاي كامپيوتري، نصب، آزمايش و آموزش آنها.

6) پشتيباني و نگه داري سيستمهاي نرم افزاري شامل شناسايي خطاها، رفع خطاها و افزودن امكانات جديد به سيستمها.

7) عيب يابي كامپيوترها و سيستمهاي كامپيوتري و رفع عيبها.

8) شناسايي فنون جديد طراحي و ساخت كامپيوتر و ارزيابي و به كارگيري آنها.

تواناييهاي ذكر شده مربوط به كارشناسان نرم افزار و سخت افزار مي باشد، اما روشن است كه كارشناسان نرم افزار در محدوده مسائل نرم افزاري توانايي بيشتري دارند و برعكس كارشناسان سخت افزار در محدوده مسائل سخت افزاري از توانايي بيشتري برخوردارند.

 

ماهيت:

كامپيوتر داراي دو جزء متفاوت سخت افزار و نرم افزار است. اجزاء فيزيكي و قابل لمس كامپيوتر مانند مدارها و بردهاي الكترونيكي سخت افزار ناميده مي شوند.

نرم افزار جزء غيرقابل لمس كامپيوتر است. نرم افزار برنامه ها و داده هايي است كه به كامپيوتر فرمان مي دهند كه چه عملي را انجام دهد. يك مهندس نرم افزار ياد مي گيرد كه چگونه نرم افزارهاي بزرگ و عظيم را طراحي و برنامه ريزي كند، تست و ارزيابي نهايي نمايد و در نهايت مستند سازد.

پس بدين گونه نسبت كه يك تعميركار كامپيوتري يك مهندس سخت افزار و يك اپراتور كامپيوتر يك مهندس نرم افزار تلقي گردد.

"نرم افزار در حقيقت روح و جان كامپيوتر است كه به سخت افزار هويت مي بخشد و اصولاً به برنامه اي گفته مي شود كه براي به كارگيري سخت افزار ساخته شده باشد.

نرم افزارها را مي توان به دوره كلي دسته بندي كرد كه عبارتند از : نرم افزارهاي سيستمي و نرم افزارهاي كاربردي.

نرم افزراهاي سيستمي برنامه هايي هستند كه كامپيوتر براي فعال شدن يا سرويس دادن به آن نياز دارد و اين دليل از سوي سازندگان سيستم كامپيوتري عرضه مي شوند و مهمترين آنها سيستم عامل، برنامه هاي سودمند و مترجم هاي زبان مي باشد.

نرم افزارهاي كاربردي نيز برنامه هايي هستند كه كاربر يا خود آن ها را مي نويسد يا شركت هاي نرم افزاري آنها را تهيه كرده و براي فروش عرضه مي كنند. اين گونه برنامه ها معمولاً عموميت برنامه هاي سيستم را نداشته و براي زمينه هاي مختلف مهندسي، علمي، تجاري، آموزشي، تفريحي و يا طراحي نوشته مي شوند."

"مهندسي سخت افزار در مقطع ليسانس به مطالعه و بررسي طراحي سخت افزاري، كنترل سخت افزاري و شبكه هاي كامپيوتري مي پردازد. براي مثال يك مهندس سخت افزار مي تواند طراحي سخت افزاري كند كه با IC ها كار كند، با كامپيوتر كار كند و يا از دروازه هاي كامپيوتر استفاده نمايد و در نهايت مي تواند به طراحي مدارهاي مجتمع ديجيتالي بپردازد. كه البته به اين بخش از سخت افزار بيشتر در مقطع كارشناسي ارشد و دكتري پرداخته مي شود."

گرايش هاي مقطع ليسانس:

رشته مهندسي كامپيوتر در مقطع كارشناسي داراي دو گرايش سخت افزار و نرم افزار است كه البته اين دو گرايش در مقطع كارشناسي تفاوت قابل توجهي با يكديگر ندارند.

"گرايش سخت افزار در برگيرنده فعاليت هاي آموزشي، پژوهشي و صنعتي در خصوص قطعات، بردها، تجهيزات و در نهايت سيستم هاي كامپيوتري در مقياس هاي مختلف است و يكي از شاخه هاي مهم آن به نام معماري كامپيوتر (طراحي و ساخت كامپيوتر) مي باشد."

"هدف از گرايش نرم افزار كامپيوتر، آموزش و پژوهش در زمينه زبانهاي مختلف برنامه نويسي، سيستم هاي عامل مختلف و طراحي انواع الگوريتم ها مي باشد."

آينده شغلي، بازار كار، درآمد:

با توجه به گسترش روزافزون دنياي كامپيوتر امروزه بيش از هر زمان ديگري نياز به متخصصان كامپيوتر احساس مي شود. امروزه يك مهندس كامپيوتر اگر علاقمند به كار باشد، هيچ وقت با مشكل بيكاري روبه رو نمي شود. به خصوص مهندسين نرم افزار فرصت هاي شغلي بيشتري داشته و براي كاركردن نياز به امكانات و تجهيزات زيادي ندارند. فرصت هاي شغلي اين رشته به حدي گسترده و متعدد است كه نه تنها فارغ التحصيلان اين رشته به راحتي جذب بازار كار مي شوند بلكه دانشجويان دو سال آخر اين رشته نيز مي توانند وارد بازار كار شده و فعاليت كنند. براي مهندسين سخت افزار هم امكان كار در شركتهاي توليد كننده قطعات و دستگاهها و مراكز صنعتي – توليدي بسيار فراهم است و از نظر سطح درآمدي هم با توجه به دانش و پشتكار شخصي در حد قابل قبول و ايده آلي قرار دارند. از طرفي با توجه به استفاده روزافزون از شبكه اينترنت زمينه كار در اين موضوع نيز بسيار مهياست.

توانايي هاي جسمي، علمي، رواني و ... مورد نياز و قابل توصيه

توانايي علمي: يك مهندس كامپيوتر بايد سخت كوش و با پشتكار باشد چون رشته كامپيوتر رشته پويايي است و هميشه بايد اطلاعاتش به روز بوده و به دنبال فراگرفتن مطالب جديد باشد. مهندس كامپيوتر بايد پايه رياضي قوي داشته و توانايي اش در زمينه فيزيك خوب باشد. همچنين لازم است فردي خلاق باشد تا بتواند مسايل را از راههاي ابتكاري حل كند.

علاقمنديها: مهندس كامپيوتر نرم افزار و سخت افزار بايد به يادگيري و مطالعه علاقمند باشد تا پيشرفت در خور توجه داشته باشد. همچنين بايد از جستجو و كاوش در مدارها و ريزساختارها استقبال كند و به كار با كامپيوتر علاقه داشته باشد.

توانايي مالي: با توجه به توضيحات گفته شده داشتن يك دستگاه كامپيوتر براي يك مهندس كامپيوتر امري ضروري به نظر مي رسد ولي اين گونه نيست كه بدون داشتن كامپيوتر دانشجويان از ادامه تحصيل و پيشرفت باز بمانند.

وضعيت نياز كشور به اين رشته در حال حاضر:

رشته كامپيوتر كه باعث جهاني شدن اطلاعات و ارتباطات شده است ، رشته روز و رشته آينده است تا جايي كه پيش بيني مي شود تا 10 سال ديگر در كشورهاي پيشرفته مردم همان قدر كه بر نيروي برق وابسته هستند به شبكه اينترنت وابسته خواهند شد. با توجه به توضيحات گفته شده روند رو به رشد استفاده از كامپيوتر در زندگي روزانه اشتغال و موقعيت كاري براي فارغ التحصيلان اين رشته فراهم است تا در قالب شركتهاي توليدكننده نرم افزار، شركتهاي توليدكننده قطعات، مراكز صنعتي – توليدي، شركتها و موسسات خدماتي، مراكز آموزشي و ... مشغول به كار شده و فعاليت كنند. با توجه به پيشرفت كند ايران نسبت به جامعه جهاني كامپيوتر در سالهاي اخير نياز به مهندسين خلاق و كوشا در اين زمينه كاملاً احساس مي شود.

روند رو به رشد استفاده از كامپيوتر در محافل عمومي و خصوصي، استفاده گسترده از شبكه اينترنت و زمينه هاي مرتبط با آن، فراهم آمدن شرايط آموزش و تجارت الكترونيك همه و همه دست به دست هم داده اند تا از اكنون چشم انداز روشني نسبت به آينده اين رشته وجود داشته باشد به نحوي كه فعالان در اين زمينه از آينده معلوم و مطمئني برخوردار خواهند بود. تنها نگراني به قسمت نرم افزار مربوط مي شود كه بايد مهندسان خلاق ايراني اقدام به تهيه نرم افزارهاي گوناگون و كارآمد كرده تا تنها مصرف كننده صرف نباشيم.

 

 

نكات تكميلي:

"بعضي از افراد تصور مي كنند كه مهندسي سخت افزار در حد يك تعميركار كامپيوتر است در حالي كه كار يك مهندس سخت افزار، تعمير يا نصب و راه اندازي كامپيوتر نيست. هر چند كه مي تواند چنين كاري را انجام دهد. در واقع كار يك مهندس سخت افزار، طراحي هاي سخت افزاري است و به همين دليل در دانشگاه دروسي مثل رياضيات و يا مدارهاي منطقي را مطالعه مي كند همچنين برخلاف تصور كساني كه يك اپراتور را در حد يك مهندس نرم افزار مي دانند، بايد گفت كه يك مهندس نرم افزار لازم است از دانش رياضي خوبي برخوردار باشد تا بتواند برنامه هاي كامپيوتري را طراحي كند و آنها را توسعه دهد. براي مثال بايد بتواند يك كار گرافيكي را از بنيان طراحي كند. كاري كه از عهده يك اپراتور بر نمي آيد. و به همين دليل ما معتقديم كه كلاسهاي آزاد آموزش كامپيوتر هيچ وقت نمي توانند يك مهندس كامپيوتر پرورش دهند. 

ریاضیات

نظریه گراف

 

 

نمایش تصویری یک گراف

نظریه گراف شاخه ای از ریاضیات است که درباره اشیاء خاصی در ریاضی به نام گراف بحث می‌کند. به صورت شهودی گراف نمودار یا دیاگرامی است شامل تعدادی رأس که با یالهایی به هم وصل شده‌اند. تعریف دقیق‌تر گراف به این صورت است که گراف مجموعه‌ای از رأس‌ها است که توسط خانواده‌ای از زوج‌های مرتب که همان یال‌ها هستند به هم مربوط شده‌اند.

یالها بر دو نوع ساده و جهت دار هستند که هر کدام در جای خود کاربردهای بسیاری دارد. مثلا اگر صرفا اتصال دو نقطه -مانند اتصال تهران و زنجان با کمک آژادراه- مد نظر شما باشد کافیست آن دو شهر را با دو نقطه نمایش داده و اتوبان مزبور را با یالی ساده نمایش دهید. اما اگر بین دو شهر جاده ای یکطرفه وجود داشته باشد آنگاه لازمست تا شما با قرار دادن یالی جهت دار مسیر حرکت را در آن جاده مشخص کنید.

آغاز نظریهٔ گراف به سدهٔ هجدهم بر می‌گردد. اویلر ریاضیدان بزرگ مفهوم گراف را برای حل مسئله پل‌های کونیگسبرگ ابداع کرد اما رشد و پویایی این نظریه عمدتاً مربوط به نیم سدهٔ اخیر و با رشد علم داده‌ورزی (انفورماتیک) بوده است.

مهم‌ترین کاربرد گراف مدل‌سازی پدیده‌های گوناگون و بررسی بر روی آنهاست. با گراف می‌توان به راحتی یک نقشه بسیار بزرگ یا شبکه‌ای عظیم را در درون یک ماتریس به نام ماتریس وقوع گراف ذخیره کرد و یا الگوریتمهای‌ مناسب مانند الگوریتم دایسترا یا الگوریتم کروسکال و ... را بر روی آن اعمال نمود.

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

نظریه گراف یکی از پرکاربردترین نظریه ها در شاخه های مختلف علوم مهندسی (مانند عمران)، باستانشناسی(کشف محدوده یک تمدن) و ... است.

نظریه محاسبات

نظریه محاسبه‌پذیری

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

پیچیدگی محاسباتی

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

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

بعضی منابع دیگری که در این نظریه مورد بررسی قرار می‌گیرند، مثل عدم تعین صرفا جنبه‌ی صوری دارند ولی بررسی آن‌ها موجب درک عمیق‌تر منابع واقعی مثل زمان و فضا می‌شود.

معروف‌ترین کلاس‌های پیچیدگی، P و NP هستند که مساله‌ها را از نظر زمان مورد نیاز تقسیم‌بندی می‌کنند. به طور شهودی می‌توان گفت P کلاس مساله‌هایی است که الگوریتم‌های سریع برای پیدا کردن جواب آن‌ها وجود دارد. اما NP شامل آن دسته از مساله‌هاست که اگرچه ممکن است پیدا کردن جواب ‌برای آن‌ها نیاز به زمان زیادی داشته باشد اما چک کردن درستی جواب به وسیله‌ٔ یک الگوریتم سریع ممکن است. البته کلاس‌هاي پيچيدگي به مرتبه سخت‌تري از NP نيز وجود دارند.

•PSPACE: مسائلي که با اختصاص دادن مقدار کافي حافظه (که اين مقدار حافظه معمولا تابعي از اندازه مساله مي‌باشد) بدون در نظر گرفتن زمان مورد نياز به حل آن، مي‌توانند حل شوند. 

•EXPTIME: مسائلي که زمان مورد نياز براي حل آنها به صورت تواني مي‌باشد. مسائل اين کلاس بسيار جذاب و سرگرم کننده مي‌باشند (حداقل براي ما!). و شامل همه مسائل سه کلاس بالايي نيز مي‌باشد. نکته جالب و قابل توجه اين مي‌باشد که حتي اين کلاس نيز جامع نمي‌باشد. يعني مسائلي وجود دارند که بهترين و کارامدترين الگوريتم‌ها نيز زمان بيش‌تري نسبت به زمان تواني مي‌گيرند. 

•Un-decidable يا غيرقابل تصميم‌گيري: براي برخي از مسائل مي‌توانيم اثبات کنيم که الگوريتمي را نمي‌شود پيدا کردن که هميشه آن مساله را حل مي‌کند، بدون در نظر گرفتن فضا و زمان. در اين زمينه آقاي ريچارد ليپتون (از صاحب‌نظران اين زمينه) در مقاله‌اي نوشته‌اند: يک روش اثبات غيررسمي براي اين مساله مي‌تواند اين باشد: تعداد زيادي مساله، مثلا به زيادي اعداد حقيقي وجود دارند، ولي تعداد برنامه‌هايي که مسائل را حال مي‌کنند در حد اعداد صحيح مي‌باشند. اما ما هميشه مي‌توانيم مسائل به دردبخوري را پيدا کنيم که قابل حل نمي‌باشند. 

 آيا P=NP مي‌باشد؟

اين سوال که آيا مسائل کلاس P دقيقا همان مسائل کلاس NP مي باشند، يکي از مهم ترين سوال‌هاي بدون جواب علوم کامپيوتري مي‌باشد. به بياني ديگر اگر هميشه به اين سادگي باشد که بتوان صحت يک راه‌حل را بررسي کرد، آيا پيدا کردن راه‌حل نيز مي‌تواند به آن سادگي باشد؟ براي اين سوال يک جايزه 1 ميليون دلاري از طرف انسیتیتو ریاضی Clay در نظرگرفته شده‌است. ما هيچ دليلي براي قبول کردن آن نداريم ولي بين نظريه‌پردازان نيز اين باور وجود دارد که بايد جواب اين سوال منفي باشد. همچنين دليلي براي رد کردن آن نيز وجود ندارد.

پیچیدگی زمانی

پيچيدگي زماني يک مساله تعداد گام‌هاي مورد نياز براي حل يک نمونه از يک مساله به عنوان تابعي از اندازه‌ي ورودي (معمولا بوسيله تعداد بيت‌ها بيان مي‌شود) بوسيله کارآمدترين الگوريتم مي‌باشد. براي درک بهتر اين مساله، فرض کنيد که يک مساله با ورودي n بيت در n² گام حل شود. در اين مثال مي‌گوييم که مساله از درجه پيچيدگي n² مي‌باشد. البته تعداد دقيق گام‌ها بستگي به ماشين و زبان مورد استفاده دارد. اما براي صرف نظر کردن از اين مشکل، نشانه‌گذاری O بزرگ (Big O notation) معمولا بکار مي‌رود. اگر يک مساله پيچيدگي زماني از مرتبه (O(n² روي يک کامپيوتر نمونه داشته باشد، معمولا روي اکثر کامپيوتر‌هاي ديگر نيز پيچيدگي زماني از مرتبه (O(n² خواهد‌داشت. پس اين نشانه به ما کمک مي‌کند که صرف نظر از يک کامپيوتر خاص، يک حالت کلي براي پيچيدگي زماني يک الگوريتم ارائه دهيم.

معرفي NP-Complete

تا اين بخش از مقاله مسائلي معرفي شدند که اگر بتوان روشي براي حل آنها حدس زد، در زمان نزديک به زمان خطي و يا حداقل در زمان چند جمله‌اي برحسب ورودي مي‌توانستيم صحت راه‌حل را بررسي کنيم. ولي NP-Completeها مسائلي هستند که اثبات شده به سرعت قابل حل نيستند. در تئوري پيچيدگي NP-Completeها دشوارترين مسائل کلاس NP هستند و جزء مسائلي مي‌باشند که احتمال حضورشان در کلاس P خيلي کم است. علت اين امر اين مي‌باشد که اگر يک راه‌حل پيدا شود که بتوانديک مساله NP-Complete را حل کند، مي‌توان از آن الگوريتم براي حل کردن سريع همه مسائل NP-Complete استفاده کرد. به خاطر اين مساله و نيز بخاطر اينکه تحقيقات زيادي براي پيدا کردن الگوريتم کارآمدي براي حل کردن اينگونه مسائل با شکست مواجه شده‌اند، وقتي که مساله‌اي به عنوان NP-Complete معرفي شد، معمولا اينطور قلمداد مي‌شود که اين مساله در زمان Polynomial قابل حل شدن نمي‌باشد، يا به بياني ديگر هيچ الگوريتمي وجود ندارد که اين مساله را در زمان Polynomial حل نمايد. کلاس متشکل از مسائل NP-Compete با نام NP-C نيز خوانده مي‌شود.

 بررسي ناکارآمد بودن زماني

مسائلي که در تئوري قابل حل شدن مي‌باشند ولي در عمل نمي‌توان آنها را حل کرد، محال يا ناشدني مي‌نامند. در حالت کلي فقط مسائلي که زمان آنها به صورت Polynomial مي‌باشد و اندازه ورودي آنها در حد کوچک يا متوسط مي‌باشد قابل حل شدن مي‌باشند. مسائلي که زمان آنها به صورت تواني (EXPTIME-complete) مي‌باشند به عنوان مسائل محال يا ناشدني شناخته شده‌اند. همچنين اگر مسائل رده NP جز مسائل رده P نباشند، مسائل NP-Complete نيز به عنوان محال يا نشدني خواهند بود. براي ملموس‌تر شدن اين مساله فرض کنيد که يک مساله 2n مرحله لازم دارد تا حل شود (n اندازه ورودي مي‌باشد). براي مقادير کوچک n=100 و با در نظر گرفتن کامپيوتري که 1010 (10 giga) عمليات را در يک ثانيه انجام مي‌دهد، حل کردن اين مساله زماني حدود 1012 * 4 سال طول خواهد کشيد، که اين زمان از عمر فعلي جهان بيشتر است!

 چرا حل مسائل NP-Complete مشکل است؟

به خاطر اينکه مسائل بسيار مهمي در اين کلاس وجود دارد، تلاش‌هاي بسيار زيادي صورت گرفته است تا الگوريتم‌هايي براي حل مسائل NP که زمان آن به صورت Polynomial از اندازه ورودي باشد، پيدا شود. باوجود اين، مسائل خيلي بيشتري در اين رده وجود دارد که زمان لازم براي حل آن‌ها به صورت Super-Polynomial مي‌باشد. اين مساله که آيا اين مسائل در زمان Polynomial قابل حل شدن مي‌باشند، يکي از مهم‌ترين چالش‌هاي علوم کامپيوتري مي‌باشد.

 روش‌هايي براي حل مسائل NP-Complete

به خاطر اينکه تعداد مسائل NP-Complete بسيار زياد مي‌باشد، شناختن اينگونه مسائل به ما کمک مي‌کند تا دست از پيدا کردن يک الگوريتم سريع و جامع برداريم و يکي از روش‌هاي زير را امتحان کنيم:

•به کار بردن يک روش حدسي: يک الگوريتم که تا حد قابل قبولي در بيشتر موارد درست کار مي‌کند، ولي تضميني وجود ندارد که در همه موارد با سرعت قابل قبول نتيجه درستي توليد کند. 

•حل کردن تقريبي مساله به جاي حل کردن دقيق آن: اغلب موارد اين روش قابل قبول مي‌باشد که با يک الگوريتم نسبتا سريع يک مساله را به طور تقريبي حل کنيم که مي‌توان ثابت کرد جواب بدست آمده تقرييا نزديک به جواب کاملا صحيح مي‌باشد. 

•الگوريتم‌هاي زمان تواني را به کار ببريم: اگر واقعا مجبور به حل کردن مساله به طور کامل هستيم، مي‌توان يک الگوريتم با زمان تواني نوشت و ديگر نگران پيدا کردن جواب بهتر نباشيم. 

•از خلاصه کردن استفاده کنيم: خلاصه کردن به اين مفهوم مي‌باشد که از برخي اطلاعات غيرضروري مي‌توان صرف نظر کرد. اغلب اين اطلاعات براي پياده‌سازي مساله پيچيده در دنياي واقعي مورد نياز مي‌باشد، ولي در شرايطي که بخواهيم به نحوي مساله را حل کنيم (حداقل به صورت تئوري و نه در عمل) مي‌توان از برخي اطلاعات غيرضروري صرف نظر کرد. 

 نمونه مساله

يک مسير ساده در يک گراف به مسيري اطلاق مي‌شود که هيچ راس يا يال تکراري در آن وجود‌نداشته‌باشد. براي پياده سازي مساله ما به اين احتياج داريم که بتوانيم يک سوال بلي/خير طراحي کنيم. با داشتن گراف G، رئوس s و t و عدد k آيا يک مسير ساده از s به t با حداقل k يال وجوددارد؟ راه‌حل اين مساله جواب سوال خواهد بود. چرا اين مساله NP مي‌باشد؟ چون اگر مسيري به شما داده شود، به راحتي مي‌توان طول مسير را مشخص نمود و آن را با k مقايسه کرد. همه اين کار‌ها در زمان خطي و صد البته در زمان Polynomial قابل انجام مي‌باشد. اگر چه مي نمي‌دانيم که اين مساله آيا در کلاس P مي‌باشد يا نه، با اين حال روش خاصي براي پيدا کردن مسيري با ويژگي‌هاي ذکر شده نيز وجود بيان نشده است. و در حقيقت اين مساله جز NP-Completeها مي‌باشد، پس مي‌توان به اين نتيجه نيز رسيد که الگوريتمي کارآمد با چنان عمليات وجود ندارد. الگوريتم‌هايي وجود دارند که اين مساله را حل مي‌کنند، به عنوان مثال همه مسير‌هاي موجود و ممکن را بررسي نموده و نتايج مقايسه شوند که آيا اين مسير مساله را حل مي‌کند يا نه. اما تا آنجايي که مي‌دانيم، الگوريتمي با زمان Polynomial براي حل اين مساله وجود ندارد.

طراحی و تحلیل الگوریتم‌ها و ساختار داده‌ها

الگوریتم

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

نام

واژه الگوریتم از نام محمد ابن موسی خوارزمی گرفته شده است. کتاب معروف الجبر و المقابله خوارزمی که حاوی دستورالعمل‌های مختلف برای حل مسائل محاسباتی است از راه ترجمه اسپانیایی آن در اروپا شناخته شد و نام عربی او، الخوارزمی، (از طریق آوانگاری آن در زبان اسپانیایی و سپس ورود آن به دیگر زبان‌های اروپائی) مترادف شد با "دستورهای حل مسائل".

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

مفهوم الگوریتم

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

الگوریتم گاه دارای مراحلی است که تکرار می‌شود (در مثال آبگوشت مثلاً چند بار باید نمک زد یا آب اضافه کرد) و یا در مرحله‌ای نیازمند تصمیم‌گیری است (اگر نمک کافی است دیگر نمک نمی‌زنیم، اگر نیست می‌زنیم).

اگر الگوریتم برای عمل مورد نظر مناسب نباشد و با غلط باشد به نتیجه مورد نظر نمی‌رسیم. مثلاً اگر الگوریتم آبگوشت را با مواد اولیه کباب انجام دهیم یا اگر در الگوریتم ما ذکری از گوشت نباشد واضح است که به آبگوشت نمی‌رسیم.

تحلیل الگوریتم

هر الگوریتم ممکن است عمل مورد نظر را با دستورات مختلف در مدت زمان، و میزان حافظه و کار کمتر یا بیشتری نسبت به الگوریتم دیگر انجام دهد. به همین دلیل انتخاب الگوریتم مناسب و کارآ اهمیت زیادی در موفق بودن و کارآئی برنامه رایانه‌ای دارد.

تحلیل الگوریتم‌ها رشته‌ای است که به بررسی کارآئی الگوریتم‌ها میپردازد. موضوع تحلیل الگوریتم‌ها در مورد تعیین میزان منابعی است که برای اجرای هر الگوریتم لازم است. این منابع معمولاً زمان و حافظه در نظر گرفته می‌شوند. کارآئی یا پیچیدگی هر الگوریتم را با تابعی نشان می‌دهند که تعداد مراحل لازم برای اجرای الگوریتم را برحسب طول داده ورودی، یا میزان محل‌های لازم حافظه را بر حسب طول داده ورودی نشان می‌دهد.

جنبه حقوقی

در بعضی کشورها، مثل امریکا اگر تعبیه فیزیکی الگوریتمی ممکن باشد (برای مثال، یک الگوریتم ضرب که می‌شود آن را در واحد محاسبهٔ یک ریز پردازنده تعبیه کرد) می‌شود آن الگوریتم را به ثبت رساند.

الگوریتم مرتب‌سازی

الگوریتم مرتب‌سازی، در علوم کامپیوتر و ریاضی، الگوریتمی است که لیستی از داده‌ها را به ترتیبی مشخص می‌چیند.

پر استفاده‌ترین ترتیب‌ها، ترتیب‌های عددی و لغت‌نامه‌ای هستند. مرتب‌سازی کارا در بهینه سازی الگوریم‌هایی که به لیست‌های مرتب شده نیاز دارند (مثل جستجو و ترکیب) اهمیت زیادی دارد.

از ابتدای علم کامپیوتر مسائل مرتب‌سازی تحقیقات فراوانی را متوجه خود ساختند، شاید به این علت که در عین ساده بودن، حل آن به صورت کارا پیچیده‌است. برای مثال مرتب‌سازی حبابی در سال ۱۹۵۶ به وجود آمد. در حالی که بسیاری این را یک مسئلهٔ حل شده می‌پندارند، الگوریتم کارآمد جدیدی همچنان ابداع می‌شوند (مثلاً مرتب‌سازی کتاب خانه‌ای در سال ۲۰۰۴ مطرح شد).

مبحث مرتب‌سازی در کلاس‌های معرفی علم کامپیوتر بسیار پر کاربرد است، مبحثی که در آن وجود الگوریتم‌های فراوان به آشنایی با ایده‌های کلی و مراحل طراحی الگوریتم‌های مختلف کمک می‌کند؛ مانند تحلیل الگوریتم، داده‌ساختارها، الگوریتم‌های تصادفی، تحلیل بدترین و بهترین حالت و حالت میانگین، هزینهٔ زمان و حافظه، و حد پایین.

طبقه‌بندی

در علم کامپیوتر معمولاً الگوریتم‌های مرتب‌سازی بر اساس این معیارها طبقه‌بندی می‌شوند:

•پیچیدگی (بدترین و بهترین عملکرد و عملکرد میانگین): با توجه به اندازهٔ لیست (n). در مرتب‌سازی‌های معمولی عملکرد خوب (O(n log n و عملکرد بد (O(n۲ است. بهترین عملکرد برای مرتب‌سازی (O(n است. الگوریتم‌هایی که فقط از مقایسهٔ کلیدها استفاده می‌کنند در حالت میانگین حداقل (O(n log n مقایسه نیاز دارند. 

•حافظه (و سایر منابع کامپیوتر) : بعضی از الگوریتم‌های مرتب‌سازی «در جا[1]» هستند. یعنی به جز داده‌هایی که باید مرتب شوند، حافظهٔ کمی ((O(۱) مورد نیاز است؛ در حالی که سایر الگوریتم‌ها به ایجاد مکان‌های کمکی در حافظه برای نگه‌داری اطلاعات موقت نیاز دارند. 

•پایداری[2] : الگوریتم‌های مرتب‌سازی پایدار ترتیب را بین داده‌های دارای کلیدهای برابر حفظ می‌کنند. فرض کنید می‌خواهیم چند نفر را بر اساس سن با یک الگوریتم پایدار مرتب کنیم. اگر دو نفر با نام‌های الف و ب هم‌سن باشند و در لیست اولیه الف جلوتر از ب آمده باشد، در لیست مرتب شده هم الف جلوتر از ب است. 

•مقایسه‌ای بودن یا نبودن. در یک مرتب‌سازی مقایسه‌ای داده‌ها فقط با مقایسه به وسیلهٔ یک عملگر مقایسه مرتب می‌شوند. 

•روش کلی : درجی، جابجایی، گزینشی، ترکیبی و غیره. جابجایی مانند مرتب‌سازی حبابی و مرتب‌سازی سریع و گزینشی مانند مرتب‌سازی پشته‌ای. 

الگوریتم‌های مرتب سازی

مرتب سازی حبابی

(به انگلیسی: Bubble Sort)

فرض کنید n داده داریم که می‌خواهیم به صورت صعودی مرتب شوند. عنصر اول رو با دومی مقایسه ، و در صورتی که اولی بزرگتر باشد جاهاشون رو عوض می‌کنیم. همین کار رو با عناصر دوم و سوم انجام می‌دهید و همینطور عناصر سوم و چهارم ، الی آخر. وقتی این کار تموم شد بزرگترین عنصر بین داده‌ها به آخر لیست می‌رسد . حالا یک بار دیگه از اول این کار رو انجام می‌دهیم اما این بار تا عنصر (n -۱)ام ادامه می‌دهیم (عنصر nام مرحله اول جای خودش رو پیدا کرده). باز هم این کار رو تا عنصر (n - ۲)ام تکرار می‌کنیم ، و بازهم .... تا اینکه بالاخره داده‌ها مرتب می‌شوند. مثلا:

۰ - ۰)    ۵ ۶ ۴ ۲

 

۱ - ۱)    ۵ ۶ ۴ ۲

 

۱ - ۲)    ۵ ۴ ۶ ۲

 

۱ - ۳)    ۵ ۴ ۲ ۶

 

۲ - ۱)    ۴ ۵ ۲ ۶

 

۲ - ۲)    ۴ ۲ ۵ ۶

 

۳ - ۱)    ۲ ۴ ۵ ۶

مرحله اول سه مقایسه ، مرحله دوم دو مقایسه و مرحله سوم یک مقایسه داره ، که روی هم می‌شوند شش مقایسه. در کل این روش n (n - ۱) / ۲ مقایسه لازم داره. اما نه همیشه. به مثال زیر توجه کنید:

۰ - ۰)    ۰ ۷ ۱ ۳ ۵ ۴

 

۱ - ۱)    ۰ ۱ ۷ ۳ ۵ ۴

 

۱ - ۲)    ۰ ۱ ۷ ۳ ۵ ۴

 

۱ - ۳)    ۰ ۱ ۳ ۷ ۵ ۴

 

۱ - ۴)    ۰ ۱ ۳ ۵ ۷ ۴ 

 

۱ - ۵)    ۰ ۱ ۳ ۵ ۴ ۷ 

 

۲ - ۱)    ۰ ۱ ۳ ۵ ۴ ۷

 

۲ - ۲)    ۰ ۱ ۳ ۵ ۴ ۷

 

۲ - ۳)    ۰ ۱ ۳ ۵ ۴ ۷

 

۲ - ۴)    ۰ ۱ ۳ ۴ ۵ ۷ 

 

۳ - ۱)    ۰ ۱ ۳ ۴ ۵ ۷

 

۳ - ۲)    ۰ ۱ ۳ ۴ ۵ ۷

 

۳ - ۳)    ۰ ۱ ۳ ۴ ۵ ۷

 

۴ - ۱)    ۰ ۱ ۳ ۴ ۵ ۷

 

۴ - ۲)    ۰ ۱ ۳ ۴ ۵ ۷

 

۵ - ۱)    ۰ ۱ ۳ ۴ ۵ ۷

همونطور که می‌بینید انتهای مرحله ۲ داده‌ها مرتب هستن. تشخیص این مساله هم کار سختی نیست: اگه به مرحله‌ای رسیدیم که هیچ جابجایی در اون رخ نداد نتیجه می‌شه که داده‌ها مرتب هستن (مرحله سوم). پس بعد از مرحله ۳ مطمئن می‌شیم که داده هامون مرتب شدن و نیازی به مراحل ۴ و ۵ نیست. پیاده سازی (مرتب سازی حبابی) در c++

 

void bubble_sort (int arr [ ] , int n)

 

{

 

  register int i , j , t , c;

 

(--  for (i = n - ۲ ; i >= ۰ ; i 

 

  {

 

    c = ۰;

 

   (++ for (j = ۰ ; j <= i ; j 

 

       if (arr [ j ] > arr [ j + ۱ ]) 

 

     {

 

     ; ] t = arr [ j

 

          arr [ j ] = arr [ j + ۱ ]; 

 

       ; arr [ j + ۱ ] = t

        C++;

 

   }

 

     (if (c == ۰ 

 

       ; break

 

  }

}

 

مرتب سازی گزینشی

(به انگلیسی: Selection Sort)

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

روش انتخابی اولین روشیه که به ذهن می‌رسه: بزرگترین رکورد بین رکوردهای لیست رو پیدا می‌کنیم و به انتهای لیست انتقال می‌دیم. از بقیه رکوردها بزرگترین رو انتخاب می‌کنیم و انتهای لیست - کنار رکورد قبلی - قرار می‌دیم و ... مثلا:

۰:  ۹ ۱ ۶ ۴ ۷ ۳ ۵

 

۱:  ۵ ۱ ۶ ۴ ۷ ۳ ۹

 

۲:  ۵ ۱ ۶ ۴ ۳ ۷ ۹

 

۳:  ۵ ۱ ۳ ۴ ۶ ۷ ۹

 

۴:  ۴ ۱ ۳ ۵ ۶ ۷ ۹

 

۵:  ۳ ۱ ۴ ۵ ۶ ۷ ۹

 

۶:  ۱ ۳ ۴ ۵ ۶ ۷ ۹

 

پیاده سازی (مرتب سازی انتخابی) در c++

 

void selection_sort (int arr[] , int n) 

 

{

 

  register int i , j; 

 

  int max , temp; 

 

  (--for (i = n - ۱ ; i > ۰ ; i 

 

  }

 

    max = ۰; 

 

    for (j = ۱ ; j <= i ; j++) 

 

      if (arr[ max ] < arr[ j]) 

 

            max = j; 

 

          ; ] temp = arr[ i

 

            arr[ i ] = arr[ max];

 

            arr[ max ] = temp;

 

 }

 

}

۳ - مرتب سازی (Shell Sort)

نام این الگوریتم از نام مخترع آن گرفته شده‌است. در این الگوریتم از روش درج استفاده می‌شود .

به عنوان مثال رشته f d a c b e را تحت این الگوریتم مرتب می‌کنیم.

 

           F     d   a    c    b    e             : شروع

 

           C     d   a    f    d    e            : مرحله اول

 

           A     b   c    d    e    f            : مرحله دوم

 

           A     b   c    d    e    f             : نتیجه

 

در مرحله اول : دادههای با فاصله ۳ از یکدیگر ، مقایسه و مرتب شده ، در مرحله دوم داده‌های با فاصله ۲ از یکدیگر ، مقایسه و مرتب می‌شوند  و در مرحله دوم داده‌ها با فاصله یک از یکدیگر مقایسه و مرتب می‌شوند .

منظور از فاصله سه این است که عنصر اول با عنصر چهارم(۳+۱) ، عنصر دوم با عنصر پنجم(۵=۳+۲) و عنصر سوم با عنصر ششم(۶=۳+۳) مقایسه شده در جای مناسب خود قرار می‌گیرد .

برای انتخاب فاصله در اولین مرحله ، تعداد عناصر لیست بر ۲ تقسیم می‌شود(n/۲) وفاصله بعدی نیز با تقسیم فاصله فعلی بر ۲ حاصل می‌گردد و الگریتم تا زمانی ادامه پیدا می‌کند که این فاصله به صفر برسد.

برای نمونه اگر تعداد عناصر برابر با ۱۰ باشد ، فاصله در مرحله اول برابر با ۵ ، در مرحله دوم برابر با ۲ ور در مرحله سوم برابر با ۱ و در نهایت برابر با صفر خواهد بود .

زمان مرتب سازی shell  از رابطه n       پیروی می‌کند که نسبت به    n^۲  بهبود خوبی پیدا کرده‌است لذا  سرعت عمل روش مرتب سازی shell   از روشهای  انتخابی ، در جی و حبابی   بیشتر است.

پیاده سازی مرتب سازی Shell sort)) در c++ :

 

#include<stdio.h>

 

#include<conio.h>

 

< include<string.h#

 

Void shell(int *,char*,int)

Int main()

 

{

 

            Char s[۸۰];

 

            Int gap[۸۰];

 

           (); Clrscr

 

           ;(«: Printf(» Enter a string

 

        ); Gets(s

 

        )); Shell(gap,s,strlen(s

 

        ); Printf(«\n the sorted string is : ٪s»,s

 

            Getch();

 

            Return ۰;

 

}

 

****************************//

 

Void shell(int gap [], char * item, int count)

{

 

                Register int I, j,step,k,p;

 

               ; Char x

 

                Gap[۰] =count /۲;

 

                While(gap[k] > ۱)

 

{

 

 ++; K

 

Gap[k]=gap[k-۱]/۲;

 

}//end of while

 

For (i= ۰;i<=k;i++)

 

{

 

Step=gap[i];

 

For(j=step;j<count; j++)

 

{

 

X=item[j];

 

P=j-step;

 

             While(p>=۰ &&  x<item[p])

 

{

 

Item[p+step]=item[p];

 

P=p-step;

 

}

 

Item[p+step]=x;

 

       }

 

}

 

                                               }

 

مرتب سازی سریع

(به انگلیسی: Quick Sort)

مرتب سازی سریع (Quick Sort) از جمله روشهای محبوب و با سرعت بالا برای مرتب کردن داده‌ها محسوب می‌شه. این روش هم مثل روش ادغام از تقسیم و حل (Divide and Conqure) برای مرتب کردن داده‌ها استفاده می‌کنه. به این ترتیب که داده‌ها رو به دو قسمت مجزا تقسیم، و با مرتب کردن اونها کل داده‌ها رو مرتب می‌کنه. برای اینکار یکی از داده‌ها (مثلا داده اول) به عنوان محور انتخاب می‌شه. داده‌ها بر اساس محور طوری چینش می‌شن که همه داده‌های کوچکتر از محور سمت چپ و داده‌های بزرگتر یا مساوی اون سمت راستش قرار می‌گیرن. با مرتب کردن دو قسمت به دست اومده کل داده‌ها مرتب می‌شن. در این حالت مثل روش ادغام نیازی به ادغام کردن داده‌ها نیست. چرا که قسمت سمت راست همگی از قسمت سمت چپ کوچکتر هستن و بالعکس. مثلا اعداد صحیح زیر رو در نظر بگیرید:

 

۵  ۶  ۱  ۹  -۲  ۴  ۵  ۱۵  ۳  ۱  ۴  ۱۰

 

عدد ۵ رو به عنوان محور در نظر می‌گیریم. داده‌ها به این صورت بازچینی می‌شن:

 

۱  -۲  ۴  ۳  ۱  ۴  ۵  ۶  ۹  ۵  ۱۵  ۱۰

 

همونطور که مشاهده می‌کنید اعداد سمت چپ عدد ۵ زیر خط دار همگی از ۵ کوچیکتر و اعداد سمت راست بزرگتر یا مساوی اون هستن.

پیاده سازی مرتب سازی Quick sort)) در c++

تابع partition با دریافت آرایه و حد بالا و پایین تکه‌ای که باید تقسیم بشه عملیات لازم رو انجام می‌ده، و اندیس محل تفکیک رو (محل عدد ۵ در مثال بالا) به عنوان نتیجه بر می‌گردونه.

int partition (int arr[ ] , int low , int high) 

 

{

 

 int lb = low + ۱ , rb = high , temp , pivot = arr[ low ] , p; 

 

 while (lb <= rb)

 

 {

 

  while (arr[ lb ] <= pivot && lb <= rb) 

 

   lb++; 

 

  while (arr[ rb ] > pivot && lb <= rb) 

 

   rb--; 

 

  if (lb < rb) 

 

  {

 

   temp = arr[ lb];

 

   arr[ lb ] = arr[ rb];

 

   arr[ rb ] = temp;

 

  }

 

 }

 

 (if (rb == high

 

  p = high; 

 

else if(rb == low)

 

  p = low; 

 

 else

 

  p = lb – ۱;

 

 arr[ low ] = arr[ p];

 

 arr[ p ] = pivot;

 

 return p;

 

}

اگه این تابع رو برای مثال بالا استفاده کنیم مقدار ۶ (اندیس ۵ زیرخط دار) برگشت داده می‌شه. با تکرار کردن این عملیات برای دو قسمت به دست اومده (در مثال بالا از اندیس صفر تا ۵ و از اندیس ۷ تا ۱۱) داده‌ها به صورت کامل مرتب می‌شن.

بر اساس گفته‌های بالا تابع مرتب سازی به این صورت خواهد بود:

void quick_sort (int arr[ ] , int low , int high)

 

{

if (low < high) 

 

 {

 

  int p = partition(arr , low , high); 

 

  quick_sort(arr , low , p – ۱); 

 

  quick_sort(arr , p + ۱ , high);

 

 }

 

}

همونطور که مشاهده می‌کنید این تابع بصورت بازگشتی نوشته شده. در صورتی که بخواید به صورت غیر بازگشتی بنویسید باید از پشته به صورت زیر استفاده کنید:

void quick_sort (int arr[ ] ,int n)

 

{

 

 stack st;

 

 st.push(۰); 

 

 st.push(n – ۱); 

 

 int low , p , high; 

 

 while(! st.isempty())

 

 {

 

  high = st.pop();

 

  low = st.pop();

 

  p = partition(arr , low , high); 

 

  if (p > low)

 

  {

 

   st.push(low);

 

   st.push(p – ۱); 

 

  }

 

  if (p < high)

 

 {

 

   st.push(p + ۱);

 

   st.push(high);

 

  }

 

}

 

}

 

۵ - مرتب سازی ادغامSort) Merge)

روش مرتب سازی ادغام از الگوریتم تقسیم و حل (divide-and-conqure) برای مرتب کردن داده‌ها استفاده می‌کنه. در این الگوریتم مساله به چند جزء کوچکتر تقسیم می‌شه. هر کدوم از این قسمتها رو به طور مجزا حل کرده ، و با ترکیب اونها به مساله اصلی می‌رسیم. و اما طرح کلی مرتب سازی ادغام:

در این روش داده‌ها به دو قسمت مساوی تقسیم می‌شن. و هر کدوم از این قسمتها - به صورت بازگشتی - مرتب ، و با ادغامشون دادها بصورت کامل مرتب می‌شن.

پیاده سازی مرتب سازی Merge sort)) در c++

 

void merge_sort (int arr[ ] , int low , int high)

 

{

 

 if (low >= high) 

  return;

 

 int mid = (low + high) / ۲; 

 

 merge_sort (arr , low , mid);

 

 merge_sort (arr , mid + ۱ , high); 

 

 merge_array (arr , low , mid , high); 

 

}

procedure merge_sort (var arr : array of integer ; l : integer ; h : integer);

var

 

 m : integer;

 

begin

 

 if l >= h then

 

  exit;

 

 m := (l + h) div ۲; 

 

 merge_sort (arr , l , m);

 

 merge_sort (arr , m + ۱ , h);

 

 merge_array (arr , l , m , h); 

 

end;

 

این توابع اونقدر ساده هستن که نیاز به هیچ توضیحی ندارن. فقط می‌مونه تابع merge_array که دو زیر آرایه رو با هم ادغام می‌کنه.

 

void merge (int arr[ ] , int low , int mid , int high)

{

 

 register int i , j , k , t; 

 

 j = low; 

 

 for (i = mid + ۱ ; i <= high ; i++)

 

 {

 

  while (arr[ j ] <= arr[ i ] && j < i)

 

   j++; 

 

  if (j == i)

 

   break; 

 

  t = arr[ i]; 

 

  for (k = i ; k > j ; k--) 

 

   arr[ k ] = arr[ k – ۱];

 

  arr[ j ] = t;

 

 }

 

}

 

procedure merge_array (var arr : array of integer ; l : integer ; m : integer ; h : integer); 

 

var

 

 i , j , k , t : integer; 

 

begin

 

 j := l; 

 

 for i := m + ۱ to h do

 

 begin

 

  while (arr[ j ] <= arr[ i ]) and (j < i) do

 

   inc (j);

 

  if j = i then

 

   break; 

 

  t := arr[ i];

 

  for k := i downto j + ۱ do

 

   arr[ k ] := arr[ k – ۱];

 

  arr[ j ] := t;

 

 end; 

 

End;

 

تابع merge_array خود آرایه و اندیسهای بالا ، پایین و جداکننده زیر آرایه‌ای رو که باید ادغام بشه دریافت می‌کنه ، و به صورت درجا (بدون استفاده از آرایه کمکی) دو قمست مرتب شده زیر آرایه رو ادغام می‌کنه.

۶ - مرتب سازی درجی (Insertion Sort)

مرتب سازی درجی (Insertion Sort) یکی از روشهای مرتب سازی رایج و البته نه چندان کارا محسوب می‌شه. این روش در مقایسه با مرتب سازی حبابی و انتخابی سرعت بهتری داره و برای مرتب کردن تعداد کمی از عناصر مناسبه. به همین خاطر مراخل انتهایی روش مرتب سازی سریع (Quick Sort) با کمک گرفتن از این روش انجام می‌گیره.

الگوریتم مرتب سازی درجی بر اساس مرتب سازیهایی که معمولا خود ما بصورت دستی انجام می‌دیم طراحی شده. فرض کنید دسته کارتی با شماره‌های ۱ تا ۱۰ بصورت نامرتب و کنار هم روی زمین چیده شدن:

۵ ۲ ۹ ۳ ۱ ۱۰ ۴ ۶ ۸ ۷

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

۲ ۵ ۹ ۳ ۱ ۱۰ ۴ ۶ ۸ ۷

حالا نوبت به کارت سوم می‌رسه. این کارت رو نسبت به دو کارت قبلی در جای مناسب قرار می‌دیم. چون ۹ در مقایسه با ۲ و ۵ جای درستی داره بدون هیچ جابجایی به کارت چهارم می‌رسیم. جای این کارت رو نسبت به سه کارت قبلی مشخص می‌کنیم:

۲ ۳ ۵ ۹ ۱ ۱۰ ۴ ۶ ۸ ۷

و به همین ترتیب تا آخر ادامه می‌دیم.

اگه n تعداد عناصر رو مشخص کنه ، این روش n - ۱ مرحله رو برای مرتب کردن طی می‌کنه. بعد از اتمام مرحله i ام مطمئنا i + ۱ عنصر اول به صورت مرتب شده هستن (قسمتی که زیرشون خط کشیده شده). این مساله یکی از حسنهای مرتب سازی درجی محسوب می‌شه: در هر مرحله حتما قطعه‌ای از عناصر مرتب شذه هستن. مرتب سازی حبابی این ویژگی رو نداره.

پیاده سازی(مرتب سازی درجی) در c++

 

void insertion_sort (int arr[ ] , int n)

 

{

 

  register int i , j , t; 

 

 (++ for (i = ۱ ; i < n ; i

 

  }

 

  ]; t = arr[ i 

 

   (-- for (j = i ; j > ۰ && arr[ j - ۱ ] >= t ; j

 

     ; arr[ j ] = arr[ j - ۱] 

 

    arr[ i ] = t;

 

  }

 

}

 

۷ - مرتب سازی Heep Sort))

 

یک الگوریتم مرتب سازی در حافظه (RAM) میباشد. Heap یک درخت دودویی کامل است با ارتفاع Height = ëlog nû هر گره (node) یک کلید بیشتر ندارد که بزرگتر یا برابر کلید گره پدر (parent) میباشد. بصورت یک آرایه (Array) ذخیره میشود. برای هر گره (i) فرزندان آن در گره‌های (۲i) و (۲i+۱) ذخیره شده‌اند. پدر هر گره (j) در گره (j/۲) میباشد.

الگوریتم Insert در Heap Sort چگونه است؟

۱) رکورد جدید در آخر Heap اضافه میشود.

۱) کلید آن با کلید گره پدر مقایسه می‌شود و اگر مقدار آن کوچکتر بود محل آن با محل گره پدر تعویض میشود.

۱) در صورت لزوم عمل (۲) تا ریشه درخت (Root) ادامه مییابد.

الگوریتم Remove در Heap Sort چگونه است؟ ۱) کوچکترین کلید که در گره Root میباشد خارج میشود. ۲) بزرگترین کلید (آخرین گره) به گره Root منتقل میگردد. ۳) کلید آن با کوچکترین کلید فرزند مقایسه می‌شود و اگر بیشتر بود جای آن دو تعویض میشود. ۴) در صورت لزوم عمل (۳) تا آخر Heap تکرار میگردد.

فهرست الگوریتم‌های مرتب‌سازی

در این جدول، n تعداد داده‌ها و k تعداد داده‌ها با کلیدهای متفاوت است. ستون‌های بهترین، میانگین و بدترین، پیچیدگی در هر حالت را نشان می‌دهد و حافظه بیانگر مقدار حافظهٔ کمکی (علاوه بر خود داده‌ها) است.

نامبهترینمیانگینبدترینحافظهپایدارمقایسه‌ای‌روشتوضیحات

مرتب سازی حبابی (Bubble sort)(O(n—(O(n۲(O(۱بلهبلهجابجاییTimes are for best variant

Cocktail sort(O(n—(O(n۲(O(۱بلهبلهجابجایی

Comb sort(O(n log n—(O(n log n(O(۱خیربلهجابجایی

Gnome sort(O(n—(O(n۲(O(۱بلهبلهجابجایی

Selection sort(O(n۲(O(n۲(O(n۲(O(۱خیربلهگزینشی

Insertion sort(O(n—(O(n۲(O(۱بلهبلهدرجی

Shell sort(O(n log n—(O(n log۲n(O(۱خیربلهدرجیTimes are for best variant

Binary tree sort(O(n log n—(O(n log n(O(۱بلهبلهدرجی

Library sort(O(n(O(n log n(O(n۲ε+۱)n)بلهبلهدرجی

Merge sort(O(n log n—(O(n log n(O(nبلهبلهMerging

In-place merge sort(O(n log n—(O(n log n(O(۱بلهبلهMergingTimes are for best variant

Heapsort(O(n log n—(O(n log n(O(۱خیربلهگزینشی

Smoothsort(O(n—(O(n log n(O(۱خیربلهگزینشی

Quicksort(O(n log n(O(n log n(O(n۲(O(nخیربلهPartitioningNaive variants use (O(n space

Introsort(O(n log n(O(n log n(O(n log n(O(nخیربلهHybrid

Pigeonhole sort(O(n+k—(O(n+k(O(kبلهخیرIndexing

Bucket sort(O(n(O(n(O(n۲(O(kبلهخیرIndexing

Counting sort(O(n+k—(O(n+k(O(n+kبلهخیرIndexing

Radix sort(O(nk—(O(nk(O(nبلهخیرIndexing

Patience sorting(O(n—(O(n log n(O(nخیربلهدرجیتمام زیر دنباله‌های صعودی را با (O(n log (log(n پیدا می‌کند.

این جدول الگوریتم‌هایی را توضیح می‌دهد که به علت اجرای بسیار ضعیف و یا نیاز به سخت‌افزار خاص، کاربرد زیادی ندارند.

نامبهترینمیانگینبدترینحافظهپایدارمقایسه‌ایتوضیحات

Bogosort(O(nO(n × n!)بدون حد(O(۱خیربله

Stooge sort(O(n۲٫۷۱—(O(n۲٫۷۱(O(۱خیربله

Bead sort(O(n—(O(n—N/Aخیربه سخت‌افزار مخصوص نیاز دارد.

Pancake sorting(O(n—(O(n—خیربلهبه سخت‌افزار مخصوص نیاز دارد.

Sorting networks(O(log n—(O(log n—بلهبلهRequires a custom circuit of size (O(log n

زبان‌های برنامه‌نویسی و کامپایلرها

زبان‌های برنامه‌نویسی

زبان‌های برنامه‌نویسی ساختارهای زبانی‌ دستورمداری در رایانه‌ها هستند که به‌وسیلهٔ آنها می‌توان یک الگوریتم را به‌وسیلهٔ ساختارهای دستوری متفاوت برای اجرای رایانه توصیف کرد و با این روش امکان نوشتن برنامه جهت تولید نرم‌افزارهای جدید بوجود می‌آید. معمولاً هر زبان برنامه‌نویسی دارای یک محیط نرم‌افزاری برای وارد کردن متن برنامه، اجرا، همگردانی و رفع اشکال آن هستند.

 

تعداد زبانهای برنامه‌نویسی رایانه‌ای بسیار زیاد است، اما از میان معروفترین و اصلی‌ترین آنها می‌توان به این موارد اشاره کرد :

Visual Basic, C#, C++, Java, Python, Delphi, Turbo Pascal, Foxpro, Fortran, Cobol, PL1, Qbasic, Gwbasic,

همگردان

كامپایلر در اصل برنامه یا مجموعه ای از برنامه های كامپیوتری است كه متن تایپ شده در زبان برنامه نویسی را (زبان مبدا) به زبان ماشین دیگری تبدیل می كند(زبان مقصد). معمولا ورودی اصلی را كد مبدا و خروجی را كد شی گوییم. خروجی این برنامه ممكن است برای پردازش شدن توسط برنامه دیگری مثل Linker مناسب باشد یا فایل متنی باشد كه انسان نیز بتواند آنرا بخواند. مهمترین علت استفاده از ترجمه كد مبدا، ایجاد برنامه اجرایی می باشد. اصطلاح همگردان (compiler) اصولا برای برنامه هایی به كار میرود كه كد مبدا را از یك زبان سطح بالا به زبانی سطح پایین تری مثل اسمبلی یا زبان سطح ماشین ترجمه می كند. برعكس برنامه ای كه زبان سطح پایین را به بالاتر تبدیل می كند را decompiler گوییم.

به طور خلاصه می توان گفت:

•هر برنامه‌ای که با استفاده از قوانین دستوری و معنایی، مجموعه‌ای از نمادها را ترجمه می‌کند. 

•برنامه‌ای که تمامی دستورات ترجمه نشدهٔ یک برنامهٔ نوشته شده با یک زبان سطح بالا را پیش از اجرا به زبان ماشین ترجمه می‌‌کند. 

تاریخچه

كامپیوتر های اولیه از كامپایلر ها استفاده نمی كردند، چرا كه این كامپیوتر ها حافظه كوچكی داشتند و با برنامه های كوتاه سر و كار داشتیم. كاربران مجبور بودند كد باینری یا دسیمال برنامه ها را به طور مستقیم و با كمك نوار های مغناطیسی به سیستم وارد كنند. اما برنامه نویس ها زیاد این وضعیت را تحمل نكردند و به فكر تولید برنامه ای افتادند كه كاراكتر های الفبایی(واژه های اختصاری) را به تعدادی دستور كه قابل اجرا توسط ماشین باشد تبدیل كند. در این وضعیت بود كه زبان های اسمبلی و كامپایلر های اولیه با نام اسمبلر به وجود آمد. در اواخر دهه 90 بود كه ماشین های وابسطه به زبانهای زبانهای برنامه نویسی رونق گرفتند. متعاقبا كامپایلرهای آزمایشی ایجاد شدند. FORTRAN به سرپرستی John Backus در شركت IBM به عنوان اولین كامپایلر كامل را در سال 1957 تولید شد. كوبول اولین زبان كامپایلی با معماری چندگانه در سال 1960 تولید شد. در طی دهه 60 كامپایلر های زیادی تولید شد اما بر روی كیفیت كامپایلر ها كمتر فكر می شد. همزمان با تكامل زبان های برنامه سازی و افزایش قدرت كامپیوتر ها، كامپایلرها هرچه بیشتر پیچیده می شدند. یك كامپایلر خود برنامه ای است كه توسط زبان پیاده ساز تولید شده است. اولین كامپایلر خود محور كه می توانست كد خود را كامپایل كند برای زبان Lisp و توسط Hart و Levin در سال 1962 و در دانشگاه MIT ایجاد شد. در دهه 70 از زبانهای سطح بالایی مثل Pascal و C جهت نوشتن كامپایلر ها استفاده شد. ساخت كامپایلر های خود محور دارای مشكل راه اندازی است، چونكه هر كامپایلری باید توسط كامپایلر نوشته شده ای به زبان دیگر كامپایل شود یا برای این مشكل دست به دامن مفسری بشود. ساختار كامپایلر ها و كامپایلر بهینه ساز امروزه بخشی از برنامه درسی دانشجویان كامپیوتر است. برخی كامپایلر ها به منظور آموزشی برای زبان های برنامه نویسی تولید می گردد. مثلا كامپایلر PL/0 توسط Niklaus Wirth برای آموزش در دهه 1970 به كار رفت. به علت سادگی و دلایل زیر هنوز برای آموزش مورد استفاده قرار می گیرد:

•توسعه گام به گام برنامه 

•به كار گیری پارسر های بازگشتی 

•استفاده از EBNF جهت تعریف نحو زبان 

•استفاده از P-Code در جریان تولید كد خروجی قابل حمل 

•نمایش T-diagram جهت تعارف رسمی 

کامپایلر تاریخچه کامپایلر

در تاریخچه کامپایلر سه دوره می‌توان در نظر گرفت:

 

از 1945تا1960:تولید کد

 

در این دوره ,زبانها به تدریج به وجود آمدند و ماشینها چندان متعارف نبودند . مسئله این بود که چگونه باید کدی را برای یک ماشین تولید کرد . با توجه به اینکه برنامه نویسی به زبان اسمبلی رواج داشت , این مسئله وخیمتر شد. استفاده از کامپایلر , برنامه نویسی خودکار نامیده شد . طرفداران زبانهای سطح بالا می‌ترسیدند که کد تولید شده نسبت به زبان اسمبلی کارایی چندان نداشته باشد. اولین کامپایلر فرترن(شریدان 1959) به خوبی بهینه سازی شد

 

از 1960تا1975 :تجزیه کردن

 

در دهه‌های 1960و1970 زبانهای برنامه‌سازی جدید به وجود آمدند و طراحان زبان معتقد بودند که طراحی سریع کامپایلر برای زبان جدید , مهمتر از وجود کامپایلری با کد کارآمد است .بدین ترتیب , در ساخت کامپایلر به پردازشگر جلویی تاکید شده است . در همین زمان , مطالعه زبانهای رسمی , تکنیکهای قدرتمندی را برای ساخت پردازشگر جلوی , بخصوص تولید تجزیه کننده به وجود آورد

 

از 1975 تاکنون :تولید کد و بهینه سازی کد

 

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

انواع كامپایلر ها

راه های مختلفی جهت دسته بندی كامپایلر ها وجود دارد مثلا می توان آنها را با توجه به ورودی، خروجی، ساختار داخلی و یا رفتار زمان اجرای آن تقسیم بندی كرد.

كامپایلرهای Native و cross

اكثر كامپایلرها به دو دسته Native و Cross تقسیم می شوند. كامپایلرهایی كه به منظور اجرای برنامه ها كدهای باینری را تولید می كنند، كامپایلر هایی با كد محلی یا Native گوییم چرا كه تنها در كامپیوترهای یك نوع با سیستم عامل های یكسان قابل به كارگیری است. از طرف دیگر ممكن است كامپایلرها كدهای باینری را تولید كنند كه در سیستم های مختلف قابل اجرا باشد. به این دسته از كامپایلر ها كه وابستگی به سخت افزار ندارند، كامپایلر های عبوری یا Cross گوییم. برای این نوع كاپایلر ها تنها كافی است برای بار اول سخت افزار را به آن معرفی نمود. بنابراین می توان نتیجه گرفت كه كامپایلرهای عبوری مفیدتر هستند. این تقسیم بندی برای مفسرها به كار نمی رود جونكه آنها از نمایش دودویی برای اجرای كد خود استفاده نمی كنند. ماشین های مجازی در هیچ یك از این دسته بندی ها نمی گنجد. هر گاه در ماشین های مجازی یكسان قابل اجرا باشد می توان آنرا Native و هرگاه كامپایلر قادر به تولید خروجی برای پلت فورم های مختلف باشد آنرا Cross گوییم.

كامپایلرهای تك فاز و چند فاز

فاز بندی كامپایلر ها كه در پشت زمینه به محدودیت های منابع سخت افزاری وابسته است. در نتیجه كامپایلر ها به مجموعه برنامه های كوچكتر تقسیم می شوند هر یك بخشی از عمل ترجمه یا آنالیز را برعهده می گیرند. كامپایل تك فازی به نظر مفید می آید، چراكه سریعتر است. زبان پاسكال از این امكان استفاده می كند. اما مشكل اینجا است كه اگر اعلان جلوتر از دستور به كارگیری باشد، چه كار باید كرد؟ برای حل این مشكل میتوان در فاز اول اعلان ها را مشخص كرد و در فاز بعد عمل ترجمه را انجام داد. عیب دیگر كامپایلر تك فازی دشواری بهینه سازی كدهای زبان سطح بالا می باشد. همگردان یک‌گذره (One-Pass Compiler) کامپایلری است که برای تولید کد ماشین، تنها یک مرتبه متن برنامه را می‌‌خواند. دستور برخی زبان‌ها به گونه‌ای است که تولید همگردان یک‌گذره برای آنها غیر ممکن است. مجموعه همگردان های گنو یا Gnu complier colection یا به صورت مخفف GCC مجموعه ای از همگردان های آزاد برای زبان های برنامه نویسی است. تقسم بندی كامپایلر ها به برنامه های كوچكتر تكنیكی است كه همچنان مورد بحث محققان است. در این نوع دسته بندی كامپایلر ها، انواع دیگری نیز وجود دارد:

•كامپایلر مبدا به مبدا كه كدی با زبان سطح بالا را دریافت می كند و خروجی آن نیز زبان سطح بالا می باشد. مثلا موازی سازی خودكار كامپایلر در مواردی كه به طور تكراری در برنامه ورودی وجود دارد و سپس تغییر شكل دادن كد و نوشتن كد یا ساختار زبانی موازی(برابر)با آن.(همچون دستور DOALL در فورترن) . 

•كامپایلر Stage كه به زبان اسمبلی برای ماشین نظری ترجمه می كند. مثلا در Prolog 

oماشین پرولوگ معمولا ماشین انتزائی (WAM) خوانده می شود. بایت كدهای جاوا و Python زیر مجموعه ای از این دسته اند. 

•كامپایلر زمان اجرا، برای سیستم های Smalltalk ، Java و زبان های میانه(CIL) در محصولات NET. استفاده می شود. 

زبانهای تفسیری و كامپایلی

بسیاری از افراد زبانهای سطح بالا را به دو دسته تفسیری و كامپایلی تقسیم می كنند. كامپایلر ها و مفسر ها روی زبان ها عمل می كنند نه زبانها روی آنها! مثلا این تصور وجود دارد كه الزاما BASIC تفسیر می شود و C كامپایل. اما ممكن است نمونه هایی از BASIC یا C ارائه شود كه به ترتیب كامپایلری و تفسیری باشد. البته استثنا هایی نیز وجود دارد، مثلا برخی زبانها در خصوصیات خود این تقسیم بندی را مشخص كرده اند(C كامپایلری است یا SNOBOL4 و اكثر زبانهای اسكریپتی كه كد منبع زمان اجرا دارند تفسیری می باشد).

طراحی كامپایلر ها

تقسیم بندی پروسه های كامپایل به مجموعه ای از فاز ها مورد حمایت پروژه كامپایلری (( تولید كامپایلرهای باكیفیت ))(PQCC) از دانشگاه Carnegie Mellon قرار گرفت. در این پروژه اصطلاحات جلو بندی، میان بندی(امروزه به ندرت به كار میرود) و عقب بندی معرفی شد. اكثر كامپایلرهای امروزی بیش از دو فاز دارند. جلوبندی معمولا با پردازش املایی و معنایی شرح داده می شود. عقب بندی شامل تبدیل نوع و بهینه سازی های مختلف می باشد. سپس كد برای آن كامپیوتر خاص تولید می شود. استفاده از جلوبندی و عقب بندی این را ممكن می كند كه جلوبندی های مختلفی برای زبانهای مختلف وجود داشته باشد و عقب بندی های مختلفی نیز برای CPU های مختلف.

جلو بندی

جلوبندی به منظور تولید كد میانی یا IR از كد مبدا استفاده می شود. جلوبندی معمولا جدول نماد ها را مدیریت نموده و یك نگاشتگر ساختمان داده ای، هر نماد را از درون كد مبدا به اطلاعات مربوط به آن مثل نوع و دامنه تعریف آن نگاشت می شود. این امر در چند فاز انجام میگردد:

1.خط نوسازی. زبانهایی كه اجازه تعیین فضای اختیاری برای شناسه ها را می دهند قبل از عمل تجزیه نیاز به فاز اضافی دارند كه كد ورودی را به صورت متعارفی برای تجزیه گر آماده كند. Algol، Coral66، Atlas Autocode وImp نمونه هایی از این زبانه هستند كه به خط نوسازی (Line Reconstruction) نیازمند است. 

2.پیش پردازش. برخی زبانها همچون C احتیاج به فاز پیش پردازش برای جایگزینی شروط كامپایل و ماكرو ها دارند.در زبان C فاز پیش پردازش شامل مرحله تحلیل لغوی می شود. 

3.تحلیل لغوی كد متنی مبدا را به اجزای كوچكی كه نشانه(token) نامیده می شود می شكند. هر نشانه واحد ساده ای از زبان است مثل كلمات كلیدی و نام نمادها. نحو نشانه ها نوعا یك زبان باقاعده است، بنابراین یك ماشین حالت متناهی كه برپایه یك عبارت باقاعده بنا می شود می تواند جهت شناخت آن استفاده شود. 

4.تحلیل نحوی شامل تجزیه كردن نشانه های مرتب جهت شناخت ساختار نحوی زبان می باشد. 

5.تحلیل معنایی فازی است كه معنای برنامه را جهت رعایت قوانین زبان بررسی می كند. یك مثال برای این فاز كنترل نوع است. 

عقب بندی

گاهی مرحله عقب بندی با مرحله تولید كد اشتباه گرفته می شود. اما می توان گفت كه عقب بندی به مراحل چند گانه زیر تقسیم می شود:

1.تحلیل كامپایلر: این پروسه برای بدست آوردن اطلاعات بیشتر از نمایش میانی فایل های ورودی می باشد. تحلیلگر نوعی تعاریف مختلفی دارد همچون تحلیلگر حلقوی، تحلیلگر وابسطه، تحلیلگر مستعار، تحلیلگر اشاره ای یا غیره می باشد. تحلیل دقیق زیر بنای هر كامپایلرهای بهینه است. گراف فراخوانی و نمودار جریان كنترل معمولا در فاز تجزیه تولید می گردد. 

2.بهینه سازی: نمایش میانی زبان به معادل های پر سرعت تر با شكل های كوتاه تری تبدیل می گردد. از بهینه ساز های محبوبتر می توان به موارد زیر اشاره نمود: توسعه درون خطی، حذف كد های مرده، انتشار ثوابت، تبدیل حلقه ها، تخصیص های ثباتی و موازی سازی خودكار. 

3.تولید كننده كد: زبان میانی تغییر كرده به زبان خروجی مثل زبان ماشین ترجمه می شود. این شامل تخصیص منابع و تصمیمات ذخیره سازی است، مثلا اینكه كدام متغیر به رجستر ها یا حافظه اختصاص یابد و گزینش و زمانبندی دستورات مناسب ماشین . 

 

" البته در ابتدای امر که در مورد زبانهای تفسیری و کامپایلری گفته بودند باید خاطر نشان کرد که زبانهای تفسیری خط به خط خوانده شده و اجرا میگردد در حالیکه در کامپایلری ابتدا تمام برنامه ترجمه شده و سپس اجرا میگردد پس در زمان اجرا سرعت اجرا شدن زبانهای کامپایلری بیشتر است. اما کشف و تصحیح خطا در تفسیری بهتر و راحت تر است ."

همگردان های نمونه

مجموعه همگردان گنو

gcc از ابتدا مخفف Gnu C Compiler بود ولی از زمانی که توانست زبانهای دیگری غیر از C از قبیل C++,Ada,Java,Objective C و Fortran را کامپایل کند بهGnu Compiler Colection تغییر نام داد. پدید آورنده اصلی GCC ریچارد استالمن است کسی که بنیانگذار پروژه Gnu محسوب می شود. نخستین نسخه GCC در سال 1987 انتشار یافت که یک پیشرفت مهم محسوب می شد زیرا محصول جدید اولین کامپایلر بهینه سازی شده قابل حمل ANSI C به عنوان یک نرم افزار آزاد محسوب می شد. در سال 1992 نسخه 2.0 کامپایلر GCC عرضه شد. نسخه جدید قابلیت کامپایل کدهای ++C را نیز داشت. در سال 1997 یک انشعاب آزمایشی در GCC به نام EGCC به منظور بهینه سازی کامپیایلر و پشتیبانی کامل تر از ++C ایجاد شد. در ادامه EGCC به عنوان نسل بعدی کامپایلر GCC پذیرفته شد و تکامل آن باعث انتشار نسخه سوم GCC در سال 2004 گردید. چهارمین نسخه از کامپایلر GCC در سال 2005 عرضه شد.

هوش مصنوعی

 

 

 

 

 

منبع : سايت علمی و پژوهشي آسمان--صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: سه شنبه 19 اسفند 1393 ساعت: 17:42 منتشر شده است
برچسب ها : ,
نظرات(0)

مهندسی كامپیوتر

بازديد: 151

مهندسی كامپیوتر

هدف:

رشته مهندسی كامپیوتر كه به طراحی و ساخت اجزای مختلف كامپیوتر می پردازد، لذا اهمیت بسیار زیادی در دنیای امروز برخوردار است. هدف از طی این دوره تربیت كارشناسانی است كه در زمینه تحلیل، طراحی، ساخت و راه اندازی دستگاهها و مجموعه های سخت افزاری جدید، بررسی و شناخت مجموعه های سخت افزاری و نرم افزاری موجود، نگه داری، عیب یابی و تعمیر و اصلاح و توسعه فعالیت كنند.

طراحی، شبیه سازی، فرآوری، پردازش، سنجش، آموزش، ویرایش و ... همه مفاهیمی هستند كه با بالاترین دقت و در كوتاهترین مدت زمان ممكن در برنامه های نرم افزاری كامپیوتر انجام می شوند. لذا هدف از این رشته تربیت نیروی متخصص برای انجام امور فوق است.

 

تواناییهای فارغ التحصیلان

فارغ التحصیلان این مقطع، قابلیتها و تواناییهای زیادی دارند و چنانچه در مسیر مناسب هدایت شوند، قادر خواهد بود مشكلات زیادی را حل كنند. برخی از این تواناییها به شرح زیر است:

1- بررسی و شناخت نرم افزارها و سخت افزارهای جدید و به كارگیری آنها.

2- بررسی كمبودها و نیازهای نرم افزاری و سخت افزاری بخشهای صنعت و خدمات و تدوین نیازهای آنها، امكان سنجی و تعیین ابزار و نیروی انسانی لازم برای رفع كمبودها.

3- تجزیه و تحلیل سیستمهای كوچك و متوسط نرم افزاری و سخت افزاری و ارائه راه حل مناسب برای اجرای آنها.

4- طراحی مجموعه های كوچك و متوسط نرم افزاری و سخت افزرای و تولید طرحهای اجرایی برای انها.

5- اجرای طرحهای كامپیوتری، نصب، آزمایش و آموزش آنها.

6- پشتیبانی و نگه داری سیستمهای نرم افزاری شامل شناسایی خطاها، رفع خطاها و افزودن امكانات جدید به سیستمها.

7- عیب یابی كامپیوترها و سیستمهای كامپیوتری و رفع عیبها.

8- شناسایی فنون جدید طراحی و ساخت كامپیوتر و ارزیابی و به كارگیری آنها.

تواناییهای ذكر شده مربوط به كارشناسان نرم افزار و سخت افزار می باشد، اما روشن است كه كارشناسان نرم افزار در محدوده مسائل نرم افزاری توانایی بیشتری دارند و برعكس كارشناسان سخت افزار در محدوده مسائل سخت افزاری از توانایی بیشتری برخوردارند.

ماهیت:

كامپیوتر دارای دو جزء متفاوت سخت افزار و نرم افزار است. اجزاء فیزیكی و قابل لمس كامپیوتر مانند مدارها و بردهای الكترونیكی سخت افزار نامیده می شوند.

نرم افزار جزء غیرقابل لمس كامپیوتر است. نرم افزار برنامه ها و داده هایی است كه به كامپیوتر فرمان می دهند كه چه عملی را انجام دهد. یك مهندس نرم افزار یاد می گیرد كه چگونه نرم افزارهای بزرگ و عظیم را طراحی و برنامه ریزی كند، تست و ارزیابی نهایی نماید و در نهایت مستند سازد.

پس بدین گونه نسبت كه یك تعمیركار كامپیوتری یك مهندس سخت افزار و یك اپراتور كامپیوتر یك مهندس نرم افزار تلقی گردد.

"نرم افزار در حقیقت روح و جان كامپیوتر است كه به سخت افزار هویت می بخشد و اصولاً به برنامه ای گفته می شود كه برای به كارگیری سخت افزار ساخته شده باشد.

نرم افزارها را می توان به دوره كلی دسته بندی كرد كه عبارتند از : نرم افزارهای سیستمی و نرم افزارهای كاربردی.

نرم افزراهای سیستمی برنامه هایی هستند كه كامپیوتر برای فعال شدن یا سرویس دادن به آن نیاز دارد و این دلیل از سوی سازندگان سیستم كامپیوتری عرضه می شوند و مهمترین آنها سیستم عامل، برنامه های سودمند و مترجم های زبان می باشد.

نرم افزارهای كاربردی نیز برنامه هایی هستند كه كاربر یا خود آن ها را می نویسد یا شركت های نرم افزاری آنها را تهیه كرده و برای فروش عرضه می كنند. این گونه برنامه ها معمولاً عمومیت برنامه های سیستم را نداشته و برای زمینه های مختلف مهندسی، علمی، تجاری، آموزشی، تفریحی و یا طراحی نوشته می شوند."

"مهندسی سخت افزار در مقطع لیسانس به مطالعه و بررسی طراحی سخت افزاری، كنترل سخت افزاری و شبكه های كامپیوتری می پردازد. برای مثال یك مهندس سخت افزار می تواند طراحی سخت افزاری كند كه با IC ها كار كند، با كامپیوتر كار كند و یا از دروازه های كامپیوتر استفاده نماید و در نهایت می تواند به طراحی مدارهای مجتمع دیجیتالی بپردازد. كه البته به این بخش از سخت افزار بیشتر در مقطع كارشناسی ارشد و دكتری پرداخته می شود."

گرایش های مقطع لیسانس:

رشته مهندسی كامپیوتر در مقطع كارشناسی دارای دو گرایش سخت افزار و نرم افزار است كه البته این دو گرایش در مقطع كارشناسی تفاوت قابل توجهی با یكدیگر ندارند.

"گرایش سخت افزار در برگیرنده فعالیت های آموزشی، پژوهشی و صنعتی در خصوص قطعات، بردها، تجهیزات و در نهایت سیستم های كامپیوتری در مقیاس های مختلف است و یكی از شاخه های مهم آن به نام معماری كامپیوتر (طراحی و ساخت كامپیوتر) می باشد."

"هدف از گرایش نرم افزار كامپیوتر، آموزش و پژوهش در زمینه زبانهای مختلف برنامه نویسی، سیستم های عامل مختلف و طراحی انواع الگوریتم ها می باشد."

آینده شغلی، بازار كار، درآمد:

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

توانایی های جسمی، علمی، روانی و ... مورد نیاز و قابل توصیه

 توانایی علمی: یك مهندس كامپیوتر باید سخت كوش و با پشتكار باشد چون رشته كامپیوتر رشته پویایی است و همیشه باید اطلاعاتش به روز بوده و به دنبال فراگرفتن مطالب جدید باشد. مهندس كامپیوتر باید پایه ریاضی قوی داشته و توانایی اش در زمینه فیزیك خوب باشد. همچنین لازم است فردی خلاق باشد تا بتواند مسایل را از راههای ابتكاری حل كند.

علاقمندیها: مهندس كامپیوتر نرم افزار و سخت افزار باید به یادگیری و مطالعه علاقمند باشد تا پیشرفت در خور توجه داشته باشد. همچنین باید از جستجو و كاوش در مدارها و ریزساختارها استقبال كند و به كار با كامپیوتر علاقه داشته باشد.

توانایی مالی: با توجه به توضیحات گفته شده داشتن یك دستگاه كامپیوتر برای یك مهندس كامپیوتر امری ضروری به نظر می رسد ولی این گونه نیست كه بدون داشتن كامپیوتر دانشجویان از ادامه تحصیل و پیشرفت باز بمانند.

 

وضعیت نیاز كشور به این رشته در حال حاضر:

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

روند رو به رشد استفاده از كامپیوتر در محافل عمومی و خصوصی، استفاده گسترده از شبكه اینترنت و زمینه های مرتبط با آن، فراهم آمدن شرایط آموزش و تجارت الكترونیك همه و همه دست به دست هم داده اند تا از اكنون چشم انداز روشنی نسبت به آینده این رشته وجود داشته باشد به نحوی كه فعالان در این زمینه از آینده معلوم و مطمئنی برخوردار خواهند بود. تنها نگرانی به قسمت نرم افزار مربوط می شود كه باید مهندسان خلاق ایرانی اقدام به تهیه نرم افزارهای گوناگون و كارآمد كرده تا تنها مصرف كننده صرف نباشیم.

نكات تكمیلی:

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

 

 

منبع : سايت علمی و پژوهشي آسمان--صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: سه شنبه 19 اسفند 1393 ساعت: 17:41 منتشر شده است
برچسب ها : ,
نظرات(0)

معرفی رشته برق

بازديد: 235

درباره وبلاگ

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

پيوندها

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

معرفی رشته برق

موضوع: برق صنعتیجمعه سوم فروردین 1386

 

هدف:
"يكي از بهترين تعريف هايي كه از مهندسي برق شده است، اين است كه محور اصلي فعاليت هاي مهندسي برق، تبديل يك سيگنال به سيگنال ديگر است. كه البته اين سيگنال ممكن است شكل موج ولتاژ يا شكل موج جريان و يا تركيب ديجيتالي يك بخش از اطلاعات باشد.
مهندسي برق داراي 4 گرايش است كه در زير بطور اجمالي به بررسي آنها مي پردازيم و در قسمت معرفي گرايشها به تفصيل در مورد هر كدام صحبت خواهم كرد.
1) مهندسي برق- الكترونيك: الكترونيك علمي است كه به بررسي حركت الكترون در دوره گاز، خلاء و يا نيمه رسانا و اثرات و كاربردهاي آن مي پردازد. با توجه به اين تعريف، مهندس الكترونيك در زمينه ساخت قطعات الكترونيك و كاربرد آن در مدارها، فعاليت مي كند. به عبارت ديگر، زمينه فعاليت مهندسي الكترونيك را مي توان به دو شاخه اصلي "ساخت قطعه و كاربرد مداري قطعه" و "طراحي مدار" تقسيم كرد.
2) مهندسي برق- مخابرات: مخابرات، گرايشي از مهندسي برق است كه در حوزه ارسال و دريافت اطلاعات فعاليت مي كند. مهندسي مخابرات با ارائه نظريه ها و مباني لازم جهت ايجاد ارتباط بين دو يا چند كاربر، انجام عملي فرايندها را به طور بهينه ممكن مي سازد. پس هدف از مهندسي مخابرات، پرورش متخصصان در چهار زمينه اصلي اين گرايش است شامل فرستنده، مرحله مياني، گيرنده و گسترش شبكه كه گسترده هر كدام عبارتند از:

فرستنده: شامل آنتن، نحوه ارسال و ...
مرحله مياني: شامل خط انتقال و محاسبات مربوط و ...
گيرنده: شامل آنتن، نحوه دريافت، تشخيص و ...
گسترش شبكه: مشتمل بر تعميم خط ارتباطي ساده، ادوات سويچينگ ، ارتباط بين مجموعه كاربرها و ...
3) مهندسي برق- قدرت: مهندسي قدرت را مي توان "توليد نيروي الكتريكي" به روشهاي گوناگون و انتقال و توزيع اين نيروها با بازده و قابليت اطمينان بالا، تعريف كرد. پس هدف از مهندسي قدرت، پرورش افرادي كارا در بخشهاي توليد، انتقال و توزيع است كه گستره اين بخش عبارت است از:
توليد: طراحي شبكه هاي توليد با كمترين هزينه و بيشترين بازده.
انتقال: طراحي شبكه هاي انتقال، خطوط انتقال، پخش بار بر روي شبكه، قابليت اطمينان و پايداري شبكه قدرت، طراحي رله ها و حفاظت شبكه، پخش بار اقتصادي (
dispaicheconomic).
توزيع: طراحي شبكه هاي توزيع حفاظت و مديريت آن.
4) مهندسي برق- كنترل: كنترل، در پيشرفت علم نقش ارزنده اي را ايفا مي كند و علاوه بر نقش كليدي در فضاپيماها و هدايت موشكها و هواپيما، به صورت بخش اصلي و مهمي از فرايندهاي صنعتي و توليدي نيز درآمده است. به كمك اين علم مي توان به عملكرد بهينه سيستمهاي پويا، بهبود كيفيت و ارزانتر شدن فرآورده ها، گسترش ميزان توليد، ماشيني كردن بسياري از عمليات تكراري و خسته كننده دستي و نظاير آن دست يافت. هدف سيستم كنترل عبارت است از كنترل خروجيها به روش معين به كمك وروديها از طريق اجزاي سيستم كنترل كه مي تواند شامل اجزاي الكتريكي، مكانيك و شيميايي به تناسب نوع سيستم كنترل باشد.
ماهيت:
انرژي اگر بنيادي ترين ركن اقتصاد نباشد، يكي از اركان اصلي آن به شمار مي آيد و در اين ميان برق به عنوان عالي ترين نوع انرژي جايگاه ويژه اي دارد. تا جايي كه در دنياي امروز ميزان توليد و مصرف اين انرژي در شاخه توليد، شاخص رشد اقتصادي جوامع و در شاخه خانگي و عمومي يكي از معيارهاي سنجش رفاه محسوب مي شود.
دانش آموختگان اين رشته مي توانند در زمينه هاي طراحي، ساخت، بهره برداري، نظارت، نگهداري، مديريت و هدايت عمليات سيستم ها عمل نمايند.
گرايش هاي مقطع ليسانس:
رشته مهندسي برق در مقطع كارشناسي داراي 4 گرايش الكترونيك، مخابرات، كنترل و قدرت(1) است. البته گرايش هاي فوق در مقطع ليسانس تفاوت چنداني با يكديگر ندارند و هر گرايش با گرايش ديگر تنها در 30 واحد يا كمتر متفاوت است. و حتي تعدادي از فارغ التحصيلان مهندسي برق در بازار كار جذب گرايشهاي ديگر اين رشته مي شوند. با اين وجود ما براي آشنايي هر چه بيشتر شما گرايشهاي فوق را به اجمال معرفي مي كنيم.
گرايش الكترونيك
دكتر كمره اي استاد مهندسي برق دانشگاه تهران در معرفي اين گرايش مي گويد:
"گرايش الكترونيك به دو زير بخش عمده تقسيم مي شود. بخش اول ميكروالكترونيك است كه شامل علم مواد، فيزيك الكترونيك، طراحي و ساخت قطعات از ساده ترين آنها تا پيچيده ترين آنها است و بخش دوم نيز مدار و سيستم ناميده مي شود و هدف آن طراحي و ساخت سيستم ها و تجهيزات الكترونيكي با استفاده از قطعات ساخته شده توسط متخصصان ميكروالكترونيك است.
دكتر جبه دار نيز در معرفي اين گرايش مي گويد:
"گرايش الكترونيك يكي از گرايشهاي جالب مهندسي برق است كه محور اصلي آن آشنايي با قطعات نيمه هادي، توصيف فيزيكي اين قطعات، عملكرد آنها و در نهايت استفاده از اين قطعات، براي طراحي و ساخت مدارها و دستگاههاي است كه كاربردهاي فني و روزمره زيادي دارند."
گرايش مخابرات
هدف از مخابرات ارسال و انتقال اطلاعات از نقطه اي به نقطه ديگر است كه اين اطلاعات مي تواند صوت، تصوير يا داده هاي كامپيوتري باشد.
دكتر جبه دار در مورد شاخه هاي مختلف اين گرايش مي گويد:
"مخابرات از دو گرايش ميدان و سيستم تشكيل مي شود. كه در گرايش ميدان، دانشجويان با مفاهيم ميدان هاي مغناطيسي، امواج، ماكروويو، آنتن و ... آشنا مي شوند تا بتوانند مناسبترين وسيله را براي انتقال موجي از نقطه اي به نقطه ديگر پيدا كنند.
همچنين يكي از فعاليت هاي عمده مهندسي مخابرات گرايش سيستم، طراحي فليترهاي مختلفي است كه مي توانند امواج مزاحم شامل صوت يا پارازيت را از امواج اصلي تشخيص و آنها را حذف كرده و تنها امواج اصلي را از آنتن دريافت كنند.
گفتني است كه امروزه با توسعه مخابرات بي سيم، ارتباط نزديكتري بين دو گرايش ميدان و سيستم ايجاد شده است. براي نمونه در گوشي تلفن همراه ما هم تجهيزات مربوط به مدارهاي مخابراتي و هم تجهيزات مربوط به فرستنده و هم آنتن گيرنده را داريم. از همين رو يك مهندس مخابرات امروزه بايد از هر دو گرايش بخوبي اطلاع داشته باشد تا بتواند يك دستگاه بي سيم را طراحي كند."
استفاده قرار نمي گيرد. بلكه در شاخه هاي ديگري از علوم مهندسي و حتي علوم انساني كاربرد دارد. به عنوان نمونه كنترل فرآيند تصفيه نفت در يك پالايشگاه، كنترل عملكرد يك نيروگاه برق، سيستم كنترل ناوبري يك كشتي و يا كنترل تحولات و تغييرات جمعيتي نمونه هاي متنوعي از كاربرد علم كنترل مي باشد.
گفتني است كه گرايش كنترل داراي زير بخش هاي متنوعي مانند كنترل خطي، غيرخطي، مقاوم، تطبيقي، ديجيتالي، فازي و غيره است."
دكتر جبه دار نيز با اشاره به اينكه گرايش كنترل منحصر به مهندسي برق نمي شود، مي گويد:
"در رشته هاي مهندسي مكانيك، مهندسي شيمي، مهندسي هوافضا، مهندسي سازه و مهندسي هاي ديگر نيز ما شاهد علم كنترل هستيم اما نوع سيستم كنترلي در هر رشته مهندسي متفاوت است. براي مثال در مهندسي مكانيك نوع كنترل، مكانيكي و در مهندسي شيمي براساس فرآيندهاي شيميايي است. اما در كل هدف مهندسي كنترل، طراحي سيستمي است كه بتواند عملكرد يك دستگاه را در حد مطلوب حفظ كند.
دكتر جبه دار در ادامه درباره فعاليت هاي ديگر مهندسي كنترل مي گويد:
"خودكار كردن يا اتوماتيك كردن خط توليد، يكي ديگر از فعاليت هاي مهندسي كنترل است. يعني مهندس كنترل مي تواند به گونه اي خط توليد را هماهنگ و كنترل كند كه محصول توليد شده طبق برنامه تعيين شده و با بهترين كيفيت به دست آيد."

گرايش قدرت
دكتر جبه دار در معرفي اين گرايش مي گويد:
"هدف اصلي مهندسين اين گرايش، توليد برق در نيروگاهها، انتقال برق از طريق خطوط انتقال و توزيع آن در شبكه هاي شهري و در نهايت توزيع آن براي مصارف خانگي و كارخانجات است. بنابراين يك مهندس قدرت بايد به روشهاي مختلف توليد برق، خطوط انتقال نيرو و سيستم هاي توزيع آشنا باشد."
دكتر كمره اي نيز در معرفي اين گرايش مي گويد:
"گرايش قدرت به آموزش و پژوهش در زمينه طراحي و ساخت سيستم هاي مورد استفاده در توليد، توزيع، مصرف و حفاظت از برق مي پردازد.
به عبارت ديگر دانشجويان اين رشته در شاخه توليد با انواع نيروگاههاي آبي، گازي، سيكل تركيبي و ... آشنا مي شوند. و در بخش انتقال و توزيع، روشهاي مختلف انتقال برق اعم از كابلهاي هوايي و زيرزميني را مطالعه مي كنند و در شاخه حفاظت نيز انواع وسايل و تجهيزات حفاظتي كه در مراحل مختلف توليد، توزيع، انتقال و مصرف انرژي، انسانها و تاسيسات را در برابر حوادث مختلف محافظت مي كنند، مورد بررسي قرار مي دهند كه از آن ميان مي توان به انواع رله ها، فيوزها، كليدها و در نهايت سيستم هاي كنترل اشاره كرد.
يكي ديگر از شاخه هاي قدرت نيز ماشين هاي الكتريكي است كه شامل ژنراتورها، ترانسفورماتورها و موتورهاي الكتريكي مي شود كه اين شاخه از زمينه هاي مهم صنعتي و پژوهشي گرايش قدرت است."
آينده شغلي، بازار كار، درآمد:
"امروزه با توسعه صنايع كوچك و بزرگ در كشور، فرصت هاي شغلي زيادي براي مهندسين برق فراهم شده است و اگر مي بينيم كه با اين وجود بعضي از فارغ التحصيلان اين رشته بيكار هستند، به دليل اين است كه اين افراد يا فقط در تهران دنبال كار مي گردند و يا در دوران تحصيل به جاي يادگيري عميق دروس و در نتيجه كسب توانايي هاي لازم، تنها واحدهاي درسي خود را گذرانده اند.
همچنين يك مهندس خوب بايد، كارآفرين باشد يعني به دنبال استخدام در موسسه يا وزارتخانه اي نباشد بلكه به ياري آگاهي هاي خود، نيازهاي فني و صنعتي كشور را يافته و با طراحي سيستم ها و مدارهاي خاصي اين نيازها را برطرف سازد. كاري كه بعضي از فارغ التحصيلان ما انجام داده و خوشبختانه موفق نيز بوده اند."
دكتر كمره اي نيز در اين زمينه مي گويد:
"اگر يك فارغ التحصيل برق داراي توانايي هاي لازم باشد، با مشكل بيكاري روبرو نخواهد شد. در حقيقت امروزه مشكل اصلي اين است كه بيشتر فارغ التحصيلان توانمند و با استعداد اين رشته به خارج از كشور مهاجرت مي كنند و ما اكنون با كمبود نيروهاي كارآمد در اين رشته روبرو هستيم."
يكي از اساتيد مهندسي برق دانشگاه علم و صنعت ايران نيز در مورد فرصت هاي شغلي فارغ التحصيلان اين رشته مي گويد:
"طبق نظر كارشناسان و متخصصان انرژي در كشور، با توجه به نياز فزاينده به انرژي در جهان كنوني و همچنين نرخ رشد انرژي الكتريكي در كشور، سالانه بايد حدود 1500 مگاوات به ظرفيت توليد كشور افزوده شود كه اين نياز به احداث نيروگاههاي جديد و همچنين فارغ التحصيلان متخصص برق و قدرت دارد.
فرصت هاي شغلي يك مهندس كنترل نيز بسيار گسترده است چون در هر جا كه يك مجموعه عظيمي از صنعت مهندسي مثل كارخانه سيمان، خودروسازي، ذوب آهن و ... وجود داشته باشد، حضور يك مهندسي كنترل ضروري است.
و بالاخره يك مهندس مخابرات يا الكترونيك مي تواند جذب وزارتخانه هاي پست و تلگراف و تلفن، صنايع، دفاع و سازمانهاي مختلف خصوصي و دولتي شود."
توانايي هاي مورد نياز و قابل توصيه
الف) توانايي علمي: "مهندسي برق نيز مانند مابقي رشته هاي مهندسي بر مفاهيم فيزيكي و اصول رياضيات استوار است و هر چه دانشجويان بهتر اين مفاهيم را درك كنند، مي توانند مهندس بهتري باشند. در اين ميان گرايش الكترونيك وابستگي شديدي به فيزيك بخصوص فيزيك الكترونيك و فيزيك نيمه هادي ها دارد. در گرايش مخابرات نيز درس فيزيك اهميت بسياري دارد زيرا دروس اصلي اين رشته بخصوص در شاخه ميدان شامل الكترومغناطيس و امواج مي شود."
داشتن ضريب هوشي بالا و تسلط كافي بر رياضيات، فيزيك و زبان خارجي از ضرورتهاي ورود به اين رشته است.
ب) علاقمنديها: دانشجوي برق بايد ذهني خلاق و تحليل گر داشته باشد. همچنين به كار با وسايل برقي علاقه داشته باشد چون گاهي اوقات با دانشجوياني روبرو مي شويم كه در رياضي و فيزيك قوي هستند اما در كارهاي عملي ضعيف اند. چنين دانشجوياني براي رشته هاي مهندسي مناسب نيستند و بهتر است رشته هاي ذهني و انتزاعي مثل رياضي يا فيزيك را انتخاب كنند.
وضعيت ادامه تحصيل در مقاطع بالاتر: (كارشناسي ارشد و ...)
فارغ التحصيل در مقطع كارشناسي برق كه مدرك خود را در يكي از چهار گرايش الكترونيك، مخابرات، قدرت و كنترل مي گيرد، مي تواند در يكي از اين گرايشها (اختياري) يا رشته اي كه برق زير مجموعه اي براي آن تعريف شده، ادامه تحصيل نمايد. اين رشته به صورت: مهندسي برق- الكترونيك، برق- قدرت، برق- مخابرات (شامل گرايش هاي: ميدان، سيستم، موج، رمز، مايكرونوري) برق- كنترل، مهندسي پزشكي (گرايش بيوالكتريك)، مهندسي هسته اي (دو گرايش مهندسي راكتور و مهندسي پرتو پزشكي، مهندسي كامپيوتر (معماري كامپيوتر، هوش مصنوعي و رباتيك) است. براي تحصيل در مقطع دكتراي تخصصي، مي توان، در هر يك از زيرشاخه هاي تخصصي‌تر گرايشهاي ياد شده ميزان مورد نياز واحدها را اخذ كرد و رساله دكتري را در همان موضوع خاص ارائه داد. مسلم است اين زير شاخه ها، گرايشهاي تخصصي تر اين چهار گرايش است. امكان ادامه تحصيل در كليه گرايشهاي ياد شده در مقطعهاي كارشناسي ارشد و تا حد زيادي در دوره دكتري، در داخل كشور وجود خواهد داشت. رشته برق به دليل كاربردي بودن آن در بسياري از علوم مهندسي ديگر، براي فارغ التحصيلان امكان تحصيل در بسياري گرايشها و دانشها را فراهم مي كند

درسهاي تخصصي مهندسي برق الكترونيك
از درسهاي پايه و اصلي موثر در مهندسي الكترونيك مي توان به درسهاي مدارهاي الكتريكي، الكترونيك 2 و 1، مدارهاي منطقي و مخابرات اشاره كرد. بعضي از درسهاي تخصصي اين گرايش عبارتند از:
الكترونيك 3: مبحث اول اين درس مربوط به پاسخ فركانسي است كه به طور اجمال عوامل مربوط به كاهش بهره در فركانسهاي بالا و پايين (در واقع بالاتر و پايين تر از پهناي باند مياني) و روشهاي به دست آوردن فركانسهاي قطع بالا و پايين را در تقويت كننده هاي ترانزيستوري مورد بررسي قرار مي دهد. در مبحث دوم پايداري تقويت كننده هاي فيدبك مورد توجه قرار مي گيرد.
تكنيك پالس: در درسهاي مدار و الكترونيك، دانشجويان با سيگنالهاي سينوسي و پاسخ مدارهاي خطي و يا غيرخطي به آنها آشنا مي شوند، امروزه و با توجه به رشد روزافزون فن آوري ديجيتال، كمتر مدار الكترونيكي يافت مي شود كه در آن فقط سيگنالهاي سينوسي به كار رفته باشد. پالس در حالت كلي به سيگنالهايي گفته مي شود كه تغييرات جهش داشته باشند. از مهمترين اين سيگنالها كه در درس تكنيك پالس هم مورد بررسي قرار مي گيرد، سيگنالهاي پله، مربعي، مورب و نمايي هستند.
ميكروپروسسور: پس از پيدايش الكترونيك ديجيتال و جنبه هاي جذاب و ساده طراحيهاي ديجيتال و كاربردهاي فراوان اين نوآوري، با تكنولوژيهاي
SSI , MSI ، ادوات الكترونيك ديجيتال، مانند قطعات منطقي به بازار ارائه شد. شركت تگزاس اولين ميكروپروسسور 4 بيتي را با فن آوري 2SI طراحي و عرضه نمود كه بعنوان بخش اصلي ماشين حساب مورد استفاده قرار گرفت و اين گام اول در پيدايش و ظهور ميكروپروسسورها بود.
معماري كامپيوتر: در اين درس معماري داخل 8 بيتي ها و نحوه اجراي دستورالعملها در اين پردازنده ها، بررسي حافظه ها و روش دستيابي ميكروپروسسورها به اطلاعات حافظه، معرفي زبان اسمبلي پردازنده هاي 8 بيتي و ايجاد توانايي جهت نوشتن برنامه اي براي عملكردي خاص به كمك ميكروپروسسورها و معرفي قطعات جانبي مورد استفاده توسط ريزپردازنده ها، مورد مطالعه قرار مي گيرد.
مدارهاي مخابراتي: درس مدار مخابراتي به بررسي ساختار و يا طراحي مدارهايي مي پردازد كه در فركانسهاي بالا كار كرده و يا به نوعي در ارسال پيام در گيرنده و فرستنده نقش دارند. در اين درس ابتدا با نويزهاي حرارتي، ترقه اي و ... آشنا شده و راههايي براي محدود كردن نويز پيشنهاد مي شود، سپس مدارهاي تشديد و تبديل امپدانس كه به منظور انتقال حداكثر توان به كار مي روند مورد بحث قرار مي گيرد.
فيزيك مدرن: در فصل اول اين درس با پرداختن به نسبيت خاص دانسته هاي علمي ما كاملاً اشتباه از آب درآمده و با پرداختن به اصولي نظير اتساع زمان، پديده دوپلر، انقباض طول، نسبيت جرم، جرم و انرژي و ...، همه دانسته هاي ما را (حداقل در حيطه دانستن) نابود مي كند.
فصلهاي ديگر درس به موضوعاتي نظير خواص ذره اي امواج، پديده فتوالكتريك، نظريه كوانتومي نور، پرتوايكس، پراش ذره، ساختار اتمي، مكانيك كوانتومي و ... مي پردازد.
فيزيك الكترونيك: شامل مطالعه خواص سيليكون، بلورشناسي، روشهاي ساخت قطعات و مدارهاي نيمه هادي، تحليل و طراحي اين مدارها، به دست آوردن مشخصات قطعات و يكي از مهمترين زمينه هاي كاري و تحقيقاتي در رشته الكترونيك است. پيش نياز اين قسمت تسلط بر درس درياضي مهندسي و معادلات ديفرانسيل و مختصري در فيزيك كوانتوم و فيزيك مدرن مي باشد.
درسهاي تخصصي مهندسي برق- مخابرات
از درسهاي پايه و اصلي موثر در مهندسي مخابرات مي توان به درسهاي رياضي مهندسي تجزيه و تحليل سيستمها، مدارهاي الكتريكي، الكترونيك و الكترومغناطيس اشاره كرد. بعضي از درسهاي تخصصي عبارتند از:
مخابرات 2: شامل تجزيه و تحليل و طراحي شبكه هاي مخابراتي ديجيتالي است. مطالب درسي با مروري بر تجزيه و تحليل سيگنالها و سپس فرآيندهاي تصادفي شروع شده و به دنبال آن به بررسي اجزاي يك سيستم (مجموعه) مخابراتي ديجيتال در حالت كلي مي پردازد و چگونگي بهينه سازي سيستم براي انتقال پيام با حداقل خطاي ممكن را بررسي مي كند.
ميدان و امواج: درس ميدان و امواج به بررسي رفتار امواج الكترومغناطيس در محيطهاي مختلف طبيعت مي پردازد. محيطها به قسمت هاي هادي و نيمه هادي و عايق تقسيم بندي شده و عوامل رفتاري امواج در اين محيطها از قبيل اتلاف نيرو انعكاسي كلي يا شكست بررسي مي شود.
الكترونيك 3: در گرايش الكترونيك توضيح داده شد.
مدارهاي مخابراتي: در گرايش الكترونيك توضيح داده شد.
آنتن ها و انتشار امواج: اين درس به بحث در مورد نحوه انتشار امواج الكترومغناطيسي مي پردازد. مباحث مطرح شده در اين درس به صورت نظري و عملي است، به عبارتي از نحوه تشعشع يك منبع الكترومغناطيسي ساده شروع كرده و با توسعه آن به مطالعه ساده ترين آنتن عملي مي پردازد.
مايكروويو: اين درس در ابتدا پس از تعريف محدود مايكروويو از نظر فركانس 1 و تقسيم بندي امواج مايكروويو به بررسي انتقال امواج با فركانس بالا با حداقل تلفات در محيطهاي مختلف مي پردازد. سپس عناصر غيرفعال مايكروويو شامل نضعيف كننده ها، تغيير فازدهنده ها و كوپلرهاي جهت دار معرفي مي شود.
اصول ميكروكامپيوتر: اين درس را به جرات مي توان از جذابترين و پركاربردترين درسهاي برق دانست زير در دنياي امروز كه تمامي وسايل مكانيكي آنالوگ جاي خود را به وسايل ديجيتالي مي دهند، داشتن اطلاعات كافي در مورد نحوه كارپروسسورها از اولين نيازهاي يك مهندس برق مي باشد. با تركيب مطالب اين درس با هر كدام از درسهاي ديگر مي توان طرحهاي بسيار جالب و پركاربردي را طرح ريزي كرد.
درسهاي تخصصي مهندسي برق- قدرت
از درسهاي پايه و اصلي موثر در مهندسي قدرت مي توان به دروس مدار، الكترومغناطيس، الكترونيك، ماشين و بررسي اشاره كرد. بعضي از درسهاي تخصصي اين گرايش عبارتند از:
ماشينهاي الكتريكي 3: اين درس از جمله درسهايي است كه ديدي صنعتي به دانشجو مي دهد. مبحث اين درس را مي توان به دو فصل مهم ترانفسورمرهاي سه فاز و ماشينهاي سنكرون تقسيم بندي نمود.
ترانسفورهاي سه فاز و ماشينهاي سنكرون، وسايلي الكتريكي هستند كه بيشتر جنبه صنعتي دارند و كاربردهاي بسيار زياد ترانسهاي سه فاز در انتقال و توزيع انرژي الكتريكي، تبديل ولتاژ در ابتداي همه كارخانه ها و كارگاههاي بزرگ صنعتي و ... بر هيچ كس پوشيده نيست. در اين درس در مورد انواع آرايشهاي اين تراسنها، كليه گروههاي موجود و كاربرد هر نوع، بحث جامعي مي شود.
ماشينهاي مخصوص(ويژه): به تعبيري مي توان اين درس را نقطه عطف درسهاي تخصصي اين گرايش دانست. زيرا اين درس به بررسي در مورد ماشينهاي ويژه مي پردازد كه اين ماشينها در وسايل خانگي كاربرد فراوان دارند.
الكترونيك قدرت: الكترونيك قدرت در عمل بين الكترونيك و قدرت، آشتي برقرار كرده است. به طور مثال مي توان با فرمان يك ريزپردازنده كه حدود 5 ولت و 200 ميلي آمپر است يك كارخانه را راه اندازي كنيم. در زمينه الكترونيك قدرت المانهايي نظير تريستور، ترانزيستور و ... كاربردهاي فوق العاده زيادي دارند. از مزاياي اين قطعات تحمل توانهاي بالا مي باشد.
بررسي سيستمهاي قدرت 2: اين درس بيشتر در مورد انتقال انرژي و مشكلات موجود در اين راه صحبت مي كند. از جمله مطالب ارائه شده در اين درس مي توان به پخش بار اقتصادي در شبكه هاي قدرت، اتصال كوتاههاي متقارن و نامتقارن روي شبكه قدرت و پايداري سيستمهاي قدرت اشاره نمود.
توليد و نيروگاه: اين درس يكي از درسهاي بسيار جذاب اين گرايش است، زيرا برخلاف ديگر درسها، زياد به مسائل نظري، نمي پردازد و جنبه بسيار عملي دارد. آشنايي با انواع نيروگاهها (آبي، اتمي، بادي، بخار، ...) و همچنين بحث كلي در مورد اين نيروگاهها و روشهاي كاري آنها از مباحث اين درس است.
رله و حفاظت: يك شبكه قدرت را بايد در مقابل خطرات احتمالي (اتصال كوتاهها) محافظت كرد. از وسائلي كه در اين مورد استفاده مي شود ميتوان به رله ها اشاره كرد كه بسته به نوع رله به محض ايجاد يك حالت خطا و يا خرابي در شبكه وارد عمل شده، قسمتي از شبكه را جدا كرد.

عايق و فشار قوي: با توجه به تفاوتهاي ولتاژهاي فشار قوي با ولتاژهاي فشار ضعيف، به طور حتم توليد، اندازه گيري و بهره برداري از اين ولتاژها تفاوتهاي عمده اي با ولتاژهاي فشار ضعيف دارد و براي عايق بندي شبكه فشار قوي بايد از عايقهاي مخصوصي استفاده كرد. فصل نخست اين درس به بررسي اين مقوله مي پردازد.
در بخش دوم اين درس انواع تخليله الكتريكي، مراحل مختلف آن در عايقها و اثرات مختلف شكست بر عايق مورد بررسي قرار مي گيرد.
ترموديناميك: شايد اولين سوالي كه در مرحله اول به ذهن برسد ارتباط اين درس با درسهاي برق باشد. كاربرد اصلي مطالب اين درس مبحث توليد نيروگاه است. زيرا هنگام آشنايي با انواع نيروگاهها (نيروگاه بخار، گازي، اتمي و ...) بايد اطلاعاتي در مورد سيكل كاري آنها داشته باشيم، پس داشتن اطلاعاتي در مورد ترموديناميك ضروري است.
اصول ميكروكامپيوتر: درگرايش مخابرات توضيح داده شد.
درسهاي تخصصي مهندسي برق- كنترل
از درسهاي پايه و اصلي موثر در مهندسي كنترل مي توان به درسهاي مدار، الكترونيك، رياضي مهندسي، تجزيه و تحليل سيستم و كنترل خطي اشاره كرد. بعضي از درسهاي تخصصي اين گرايش عبارتند از:
كنترل ديجيتال و غيرخطي: كنترل ديجيتال از سال 1960 در پيشرفتهاي مربوط به قابليت توليد و كيفيت محصولات و صرفه جويي در هزينه ها، نقش مهمي داشته است. به خصوص با پيشرفتهايي كه در زمينه ميكروپروسسور صورت گرفته، اين رشته توانسته است در بعضي موارد از كنترل آنالوگ پيشي گرفته، دقت كار را بالا ببرد.
كنترل مدرن: اين درس برخلاف ساير درسها (مانند كنترل صنعتي و ...) تا حدي جنبه نظري دارد و ديدي تقريبا رياضي به يك مهندس كنترل مي دهد. آشنايي كلي با مفاهيم كنترل پذيري و مشاهده پذيري سيستمهاي كنترل و مطالعه فيدبكهاي حالت از مباحث اين درس است.
كنترل صنعتي: اين درس از درسهاي تخصصي و مهم گرايش كنترل مي باشد كه به بررسي نحوه به كارگيري روابط رياضي و فرمولهايي كه در هر نوع پروسه اي وجود دارد مي پردازد و شامل آشنايي با سيستمهاي كنترل غلظت، سطح، ارتفاع و يا ئبي ورودي، خروجي مخازن حاوي مايعات صنعتي و شيميايي (مانند مخازن موجود در صنايع، پالايشگاهها و ...)، مطالعه سيستمهاي كنترل دما و رطوبت يك محفظه و يا اتاق، آشنايي با انواع كنترل كننده هاي صنعتي، مطالعه انواع سيستمهاي نورد موجود در كارخانه ها(مانند نورد فولاد، كاغذ و...) و ديگر سيستمهاي موجود در صنعت است.
ابزار دقيق: اصطلاح ابزار دقيق به ابزاري اطلاق مي شود كه سيگنالها را ثبت و نشان داده و يا باعث انتقال سيگنالي بين اجزاي مختلف سيستم مي شوند. اين درس به معرفي سيستمهاي كنترل و ابزار دقيق و همچنين معرفي اجزاي اين سيستمها مي پردازد.
اصول ميكروكامپيوتر: در گرايش مخابرات توضيح داده شد.
ترموديناميك: در گرايش قدرت توضيح داده شد.
مباني تحقيق در عمليات: اين درس به طور كلي براي تمام دانشجويان مهندسي مفيد است. چون مهندسي ارتباط مستقيم با هزينه و سود اقتصادي دارد. آگاهي به برنامه ريزي خطي كه بحث اصلي اين درس است براي هر مهندسي جنبه هاي مثبت زيادي دارد. با اين درس مي توان هزينه ها را به حداقل و سود و صرفه اقتصادي را با كمترين امكانات به حداكثر رساند. بنابراين آگاهي به اين درس براي تمام كساني كه مي خواهند يك طرح صنعتي انجام دهند مزاياي زيادي دارد.
رشته هاي مشابه و نزديك به اين رشته:
در برخي از دانشگاهها رشته مهندسي پزشكي را يكي از گرايش هاي مهندسي برق به شمار مي آورند.
رشته هايي از قبيل مهندسي علمي
كاربردي برق، كارداني فني برق، دبير فني برق قدرت و ...
پيوند عميقي بين اين رشته و دانش كامپيوتر وجود دارد كه غيرقابل انكار است.
زمين شناسي- علوم سياسي
جامعه شناسي و علوم اجتماعي
با توجه به حجم بازار الكترونيك و بازار صنعت نيمه رسانا در دنيا و نيز كشور ما كه رشد 7% و 15% دارد، لذا آينده روشني براي اين رشته پيش بيني مي كنند چه از لحاظ بازار كار بر صنعت هاي شغلي و چه از نظر تحققات علمي.
نكات تكميلي:
"مانع رشد صنعت الكترونيك و ميكروالكترونيك در دنيا نه سرمايه است و نه فن آوري و نه بازار. البته همه اينها محدوديت ايجاد مي كند ولي فعالاً محدوديت اصلي كه اجازه نمي دهد كار از حدي جلوتر برود عبارت است از نيروي كار كيفي."

آنچه خوانديد نظر قائم مقام فني يكي از بزرگترين مجموعه هاي ميكروالكترونيك بلژيك است و بيانگر آن است كه امروزه براي موفقيت در مهندسي برق گرايش الكترونيك بايد از سطح علمي و مهارت فني خوبي برخوردار بود.

دكتر فتوت احمدي استاد مهندسي برق دانشگاه صنعتي شريف نيز در تاييد همين سخن مي گويد:

"براي مثال در طراحي “IC” احتياج به سرمايه گذاري عمده اي نيست، بلكه هوشمندي طراح و دانش فني خوب، بسيار اهميت دارد.

 

 

منبع : سايت علمی و پژوهشي آسمان--صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: سه شنبه 19 اسفند 1393 ساعت: 17:40 منتشر شده است
نظرات(0)

مهندسي ارزش

بازديد: 103

 

 

مهندسي ارزش

 

 

 

 

تهيه و تحقيق:

 

 مريم بهرامي زنجاني

 

 

 

 

 

 

 

زمستان 82

 

 

مقدمه :

 

چرا مهندسي ؟ چرا ارزش ؟ و چرا مهندسي ارزش ؟ چه قرابتي بين مهندسي و ارزش وجود دارد و چه ارتباطي بين صنعت و مهندسي ارزش ديده مي شود ؟ واژه هاي مهندسي ، ارزش و صنعت روزانه و بارها بر زبان ما جاري مي شود . امروزه تركيبات مختلفي از واژه هاي مهندسي مانند مهندسي مجدد ، مهندسي بازار و غيره نيز كاملا رايج و معمول است و در محاوره و متون علمي بسيار يافت مي شود . شايد مهندسي به تنهايي يادآور ماشين آلات ، كارخانجات و به طور كلي صنعت باشد ، اما آيا هيچ گاه انديشيده ايم كه مهندسي مثلا چه قرابتي با بازار دارد ؟ به راستي مهندسي به چه معناست ؟ واژه نامه ها ، مهندسي را بطور كلي با معناي محاسبه تعيين مي كنند و مهندس يعني محاسب . پس مهندسي ارزش را مي توان به تعبيري محاسبه ارزش دانست ، اما ارزش در صنعت ، در سازمان و در پروژه به چه معناست ؟ آيا هدف هر توليدي اعم از كالا يا خدمات ، افزودن ارزش و يا به تعبيري ايجاد ارزش افزوده است ؟ اگر در پاسخ مثبت اين سؤال اتفاق نظر داشته باشيم ، آنگاه مهندسي ارزش و مفهوم آن رفته رفته پر رنگ تر مي شود .

از ديدگاه انجمن مهندسي ارزش آمريكا ( SOCIETY OF AMERICAN VALUE   ENGINEERING : SAVE) ؛ مهندسي ارزش روشي سيستماتيك با تكنيك هاي مشخص است كه كاركرد محصول يا خدمات را شناسايي و براي آن كاركرد ، ارزش مالي ايجاد مي كند به نحوي كه آن كاركرد در كمترين هزينه با حفظ قابليت اطمينان و كيفيت مورد نظر انجام گيرد ؛

به بيان ديگر مي توان گفت : مهندسي ارزش يك كوشش سازمان يافته براي تحليل عملكرد سيستم ها ، تجهيزات ، خدمات و مؤسسات به منظور نيل به عملكرد واقعي با كمترين هزينه در طول عمر پروژه است كه سازگار با كيفيت و ايمني مورد نظر باشد . مهندسي ارزش يك روش بسيار مهم براي مصرف بهينه بودجه تخصيص داده شده است . 

ارزش بسيار ساده و در عين حال بسيار پيچيده است . زيرا چيزي است كه مشتري طلب مي كند . ميلر و هايمان يك پند كليدي ارائه كردند : هيچ كس يك محصول را خريداري نمي كند . مشتريان هميشه كاري را مي خرند كه فكر مي كنند كالا براي آنها انجام خواهد داد . به عبارت ديگر مردم به كالاي با كيفيت اهميت مي دهند .    

ارزش يك مفهوم زيباست . قدرت اين مفهوم تعاون بشر و تمدن بشري است .

ارزش چيست ؟ 

همه ما اين جمله را استفاده مي كنيم و همه روزه بطور مستمر بكار مي گيريم . اين جمله تحت معاني مختلف مورد استفاده قرار مي گيرد . اين جمله به طرق مختلفي هم مورد استفاده قرار مي گيرد و بنابراين مي توان از آن معاني مختلفي استنباط نمود . در فرهنگ لغات معاني مختلفي از قبيل ؛ بها , اعتبار , كارايي ، مكاني و يا آنچه كه منجر به يك چيز مطلوب يا مفيد مي گردد و مانند اينها براي ارزش تعريف شده است . 

از آنجا كه ارزش از يك طرف يك كيفيت ذهني مانند ظاهر , شكل , سبك و غيره است كه توسط احساسات تعيين مي گردد و از طرفي يك كيفيت واقعي مانند عمر , عملكرد , قابليت اطمينان , سبك وزني و غيره است ؛ كه از طريق خواص و مشخصات تعيين مي گردد ، در نتيجه مفهومي است كه به راحتي قابل تعريف نمي باشد .

محدوده بزرگي كه تعريف ارزش به خود اختصاص مي دهد سبب بكارگيري وسيع اين كلمه شده است كه خود موجب سوء تفاهم گرديده است . شكل ذيل اين مفهوم را بهتر نشان مي دهد .

 

 

 

 

 

 

ارزش

 

 

 

 

ارزش از طريق مقايسه تعيين مي گردد ؛ تفاوت بين بها يعني مقبوليتي كه محصول از ديد مشتري دارد و قيمت يعني مبلغي كه مشتري بابت محصول مي پردازد , معيار ارزش براي مشتري است.

چنانكه آقاي ميلز معتقد است يك محصول و يا خدمت زماني داراي ارزش خوب است كه آن محصول و يا خدمت داراي عملكرد و هزينه مناسب باشد .

 

مفاهيم چهارگانه ارزش :     

ارزش اقتصادي را مي توان به چهار نوع تقسيم بندي نمود :

 

1- ارزش استفاده : خواص شاخص ها و كيفيت هايي كه موجب استفاده كار يا خدمت شده و باعث مي شوند كه جزء خاص عمل كند .

 

2- ارزش اعتبار : خواص شاخص ها و يا جذابيت هايي كه موجب مي شوند فرد آرزوي مالكيت يك شي را نمايد , آن شاخصي كه يك جزء خاص براي آن بفروش مي رسد .

 

3- ارزش مبادله اي : خواص و يا كيفيت هايي كه ما را قادر مي سازد كه يك جزء را به جاي جزء ديگر مبادله كنيم . 

 

4- ارزش هزينه اي : مجموع مواد , كار و ديكر هزينه ها كه بايد بكار گرفت تا محصول توليد شود .

 

چگونگي ارتقاء ارزش:

براي اينكه بدانيم چگونه ارزش يك محصول و يا خدمت را ارتقاء دهيم اولين و مهمترين موضوع اين است كه دلايل پائين بودن ارزش را بدانيم سپس مي توان يك تحليل مناسب براي بررسي و ارزيابي ارزش ارائه نمود و كوشش هاي لازم براي فائق آمدن بر مسأله را مشخص كرد . تصميمات معني دار و مناسب براي اضافه كردن ارزش به يك جزء مشخص در اين صورت امكان پذير خواهد بود .

 

 

 

 

 

 

دلايل پائين بودن ارزش:

 

1- نبودن اطلاعات كافي .

2- نبودن ايده هاي خلاق .

3- كمبود زمان .

4- كيفيت پائين .

5- عقايد صادقانه ولي نادرست .

6- تفكر عادت گونه .

7- ريسك گريزي .

8- عدم تمايل به راهنمايي و مشاوره ديگران .

9- عادت ها و طرز تلقي ها .

10- شرايط غير واقعي .

11- تغيير در شرايط .

12- تغييرات فناوري .

13-ارتباط ضعيف .

14- عدم تجربه كافي .

15- سوء تعبير و برداشت هاي غلط .

16- عدم تجربه كافي .

17- تمايل به تطابق با شرايط موجود .

 

چگونه ارزش اضافه كنيم يا بسازيم؟

 

1- رسيدن به عملكرد معادل و يا بهتر با هزينه كمتر .

2- دسترسي به اندازه ، ظاهر ، جذابيت و خصوصياتي كه مشتري مي خواهد .

3- نگهداري سطح كيفيت با هزينه كمتر .

 4- شناسايي ، جداسازي و حذف هزينه هاي عناصر غير لازم از محصول و خدمات .

5- بكارگيري فناوري و توسعه دانش و خلق محصولات جديد .

6- جلوگيري از مصرف بي رويه منابع .

7- كنترل نسبت ارزش به قيمت و پيدا كردن نقطه سر به سر براي هزينه . 

8- خودتان را شريك مشتري در نظر بگيريد .

 

 

مبدأ و تاريخ فناوري مهندسي ارزش:

 

منشاء فناوري مهندسي ارزش به مفهومي كه امروزه مشاهده مي شود به جنگ جهاني دوم باز  مي گردد . زماني كه افزايش و ارتقاء كيفيت توليد محصولات مورد توجه قرار گرفت آقاي هنري ارليچر ، معاون مدير عامل وقت شركت جنرال الكتريك در آمريكا مشاهده كرد كه برخورد سازمان يافته مي تواند پديده بهبود را قوت بخشد و در نتيجه از موارد سعي و خطا جلوگيري نمايد.

مهندسي ارزش از زماني كه آقاي ميلز اين مفهوم را مطرح و اين روش را سازماندهي نمود يك راه بسيار طولاني و موفقي را پيموده است كه امروزه به عنوان يك روش مديريتي قوي ، مدرن و مؤثر مورد توجه است كه بطور موفقيت آميز مي تواند در هر فعاليت اقتصادي مورد استفاده قرار بگيرد ؛ صنعت ، تجارت ، آموزش ، حمل و نقل ، برنامه ريزي شهري ، مراكز درماني ، بيمارستان ها ، مراكز پليس ، مراكز دولتي و غيره همگي مي توانند بستر مناسبي براي مطالعات مهندسي ارزش باشند .

 

 

 

 

 

 

 

 

 

 

 

 

 

چرا؟ 

 

 

    

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

مهندسي ارزش:

 

مهندسي ارزش ، تحليل ارزش ، مديريت ارزش ، كنترل ارزش ، اطمينان ارزش و يا هر اسم ديگر ؛ به عنوان يك روش مديريتي بسيار قدرتمند مطرح است كه براي اصلاح و بهبود سيتم ها مورد استفاده قرار مي گيرد ؛ بهبود از آنچه كه تا كنون بوده است و آنچه كه بايد باشد و منظور ، بهبود در طراحي ، عملكرد ، طول عمر ، قابليت توليد ، قابليت نگهداري ، خدمات و ضمانت ، بهبود در اندازه ، شكل ، خصوصيات ، سبك ، ظاهر و مشخصات ، بهبود در كيفيت ، قابليت اطمينان ، هزينه و ... مي باشد .

برنامه كاري مهندس ارزش از شش فاز زير تشكيل شده است :

 

1- فاز عمري: روند را با سازمان دهي نيروي كار مشخص نمودن .

2- فاز اطلاعات: مسأله به اشكال خاص تجزيه مي شود و از كلي گويي پرهيز مي شود .

3- فاز عملكرد: مشتمل بر كليه تلاشهايي است كه براي ارزش صورت مي گيرد . 

4- فاز خلاقيت: روش هاي خلق ايده هاي جديد بكار گرفته مي شود .

5-فاز ارزيابي: ذهن قضاوت گرا به فعاليت وادار مي شود .عقايد و ايده هايي كه در فاز خلاقيت ايجاد گرديد حالا تصفيه ، اصلاح و تركيب مي شوند تا پيشنهاد مورد نظر حاصل شود .

6- فاز توصيه 

 

موفقيت و شكست مطالعه ارزش به اين امر بستگي دارد كه روش بايد بصورت درست ياد گرفته و بطور جدي بكار گرفته شود .

1-از روابط انساني خوب بهره بگيريد .

2-از كلي گويي پرهيز كنيد .

3-بر موانع فايق آئيد .

4-قضاوت منطقي خوب بكار گيريد .

5-كار گروهي را حمايت كنيد .

6-از حقايق مطمئن شويد .

7-بصورت زنده هر چيزي را مورد سؤال قرار دهيد .

8-هزينه ها را تعيين كنيد .

9-ارزش پولي براي تمامي مشخصات ، تلرانس ها ، اتصالات و ساير مواد تكميلي تعيين كنيد .

  10 - عملكرد ها را تعريف و طبقه بندي كنيد .

 11-  ذهن خود را فعال كنيد .

12- ساده سازي كنيد .

13- ايده ها را تركيب و تصفيه كنيد .

14- براي تمامي ايده ها هزينه در نظر بگيريد .

15- عملكردهاي جايگزين را مشخص كنيد .

16- از استانداردها استفاده كنيد .

17- با متخصصين ، فروشندگان ، مشتريان و … مشاوره كنيد .

18- از محصولات ، فرايندها و رويه هاي خاص استفاده كنيد .

19- با استفاده از روش مقايسه اي ارزيابي كنيد .

20- پول را آنچنان خرج كنيد كه انگار پول خودتان است .

21- جواب ها را با اطلاعات كافي براي تصميم گيري ارائه دهيد .

22- در صورت امكان دو راه حل ارائه دهيد .

23- با استفاده از مميزي مستقل صرفه جويي هاي قابل پيش بيني را بررسي كنيد .

24- به كمك هاي انجام شده اعتراف كنيد .

 

مهندسي ارزش يك كار گروهي است .  يك مطالعه موفق مهندسي ارزش بايد داراي شرايط ذيل باشد :

1-دانش و تخصص در ميدان فني مورد مطالعه .

2-پيشينه موفق در زمينه اجراي مهندسي ارزش .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

سازمان دهي مهندسي ارزش:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                                                                                   

 

 

 

                                                               

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

چكيده :

 

 

گروههاي كاري مهندسي ارزش متأثر از دايره هاي كيفي در مديريت مي باشند . دواير كيفي به عنوان ابزارهاي توانمندي براي توسعه كيفي و بهره وري سازمانها مطرح مي باشند و در فرايند مهندسي ارزش با استفاده از فاز خلاقيت و هم انديشي نسبت به تعيين ايده هاي متعددي كه توليد مي شود ، اقدام لازم به عمل مي آيد .

برنامه كاري مهندسي ارزش يك تحقيق كامل و تمام را در بررسي همه گزينه ها براي دسترسي به بهترين راه حل دنبال مي كند . مهندسي ارزش طراحي براي هزينه را ممكن مي سازد .

مهندسي ارزش يعني بالا بردن سطح مهارت كاركنان شركت براي اينكه مهندسي ارزش را جزئي از خود بدانند .

در مهندسي ارزش هدفي براي رسيدن وجود دارد . قيمت شاخص ارزش يا اختلاف ارزش . همچنين به عنوان معيار اينكه كار گروهي چقدر خوب بوده است ، مورد توجه است .

در مهندسي ارزش هيچ چيز را نمي توان همان گونه كه هست قبول كرد ؛ هر چقدر هم كه يك عمل تكرار شده باشد . هر جزء را امتحان و مجدد آزمايش مي كنيم . قاعده سر انگشتي اين است كه از هيچ چيز نگذريد .

مهندسي ارزش به دنبال يك رويكرد تصميم گيري گروهي است كه از طريق آن كاربر، مشتري ، طراح و بخش فني در تعامل با يكديگر به تصميم گيري براي توليد بهتر مي پردازند و از اين طريق نيازهاي مشتري براحتي به طراحي و توليد منتقل مي شود .

مشخصه هاي كيفي ايجاب مي كند كه مواد ، ماشين آلات توليد ، فرايند محصولات ، مهارت نيروي كار و دقت ابعادي مورد توجه قرار گيرد . اما در ضمن فرايند مهندسي ارزش ، راه حل هايي دنبال مي شود كه از طريق آنها دسترسي به مجموعه مشخصه هاي فوق با حداقل هزينه امكان پذير بوده و در عين حال كارايي و مؤثر بودن راه حل ها نيز تضمين شده باشد . بنابراين در فرايند مهندسي ارزش نياز به هر كاري با اين هدف دنبال مي شود كه :

(( كاملا درست ، نه كمتر و نه بيشتر ))

 

 

                                                                                                منابع و مآخذ:

 

1- روش بكارگيري مهندسي ارزش           نويسنده S.S.IYER    

 

 مترجمان :  محمد سعيد جبل عاملي  -  سيد عليرضا مير محمد صادقي

 

2- ماهنامه تدبير    شماره 132 / ارديبهشت 82 

منبع : سايت علمی و پژوهشي آسمان--صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: سه شنبه 19 اسفند 1393 ساعت: 17:38 منتشر شده است
برچسب ها : ,
نظرات(0)

معرفی رشته مهندسي هوافضا

بازديد: 137

مهندسي هوافضا

هدف :
هدف تربيت كارشناس در صنايع هواپيما و هليكوپترسازي و فردي آشنا به مقدمات و اصول مهندسي هوافضا است. طول متوسط دوره 4 سال است. دانشجويان موظفند 3 واحد پروژه بگيرند و 2 تابستان در دفاتر مهندسي صنايع مربوط كارآموزي كنند. فارغ‌التحصيلان كادر مورد نياز محاسبات ، طراحي، تحقيقات و ساخت صنايع مختلف هواپيمايي، هليكوپترسازي، موشكي و صنايع ديگر را تامين مي‌كنند. دروس اين مجموعه شامل دروس عمومي، پايه، اصلي، تخصصي، كارگاهي و كارآموزي است و زمينه‌هايي چون آيروديناميك، سازه هوايي، مكانيك پرواز و جلوبرنده‌ها را در بر مي‌گيرد. پايه‌هاي اصلي لازم براي تحصيل در اين رشته رياضيات، فيزيك و زبان خارجي است. براي فارغ‌التحصيلان اين رشته امكان ورود به دوره كارشناسي ارشد مهندسي هوافضا وجود دارد. بايد توجه داشت كه صنايع هوافضا در دنيا يكي از پيشروترين زمينه‌هاي تحقيقاتي است و همواره موجبات ترقي و جهش در ساير رشته‌هاي علوم و مهندسي را فراهم ساخته و در اين راستا بودجه‌هاي عظيم نظامي و غيرنظامي را به خود اختصاص داده است، موضوعاتي از قبيل طراحي و ساخت هليكوپتر، هواپيماي بدون سرنشين، بدون موتور، عمود پرواز و يا جنگنده از يك طرف و ساخت پايگاههاي فضايي، مسافرت به كرات ديگر و جنگ ستارگان از طرف ديگر جامعيت و حساسيت اين رشته را بيش از پيش روشن مي‌سازد.
دكتر كامران رئيسي استاد رشته مهندسي هوافضاي دانشگاه صنعتي اميركبير در معرفي اين رشته مي‌گويد: مهندسي هوافضا مجموعه‌اي از علوم و توانايي‌هاي علمي و عملي در زمينه تحليل، طراحي و ساخت وسايل پرنده‌ نظير هواپيماها، چرخ‌بال‌ها، گلايدرها، موشك‌ها و ماهواره‌ها است. اين رشته بر چهار پايه آيروديناميك 1 ، جلوبرندگي 2 ، مكانيك پرواز 3 و سازه‌هاي هوافضايي استوار است.
وي در توضيح چهار پايه علمي اين رشته مي‌گويد: «آيروديناميك» به مطالعه و بررسي جريان هوا، محاسبه نيروها و گشتاورهاي ناشي از آن بر روي جسم پرنده مي‌پردازد و مهندس هوا فضا با فراگيري اين علم به تحليل جريان‌هاي پيچيده در اطراف اجسام پرنده پرداخته و با به دست آوردن نيروهاي آئروديناميكي امكان بررسي پايداري و طراحي سازه را فراهم مي‌كند.
«جلوبرندگي» به مطالعه و بررسي سيستم‌هاي جلوبرنده اعم از موتورهاي پيستوني ، توربيني ، راكت‌ها و نحوه توليد نيروي رانش در آنها مي‌پردازد.
«مكانيك پرواز»‌ به مطالعه و بررسي رفتار و حركات جسم پرنده با استفاده از اطلاعات آئروديناميكي ، هندسي و وزني مي‌پردازد و در واقع علم مكانيك پرواز از «عملكرد» تشكيل مي‌شود و «عملكرد» به بررسي برد، مسافت نشست و برخاست، مداومت پروازي در سرعت‌هاي مختلف و پايداري و كنترل وسايل پرنده مي‌پردازد.
و در نهايت «سازه‌هاي هوافضايي» به مطالعه و بررسي سازه‌هاي هواپيما و ديگر وسايل پرنده مي‌پردازد و هدف آن طراحي سازه‌هايي است كه علاوه بر استحكام كافي در برابر بارهاي آئروديناميكي و ساير بارهاي استاتيكي وارد بر وسايل پرنده، حداقل وزن ممكن را نيز داشته باشند.
يكي از دانشجويان كارشناسي ارشد اين رشته نيز مهندسي هوا فضا را علمي استراتژيك مي‌داند كه در آن از همه علوم از جمله متالوژي ، كامپيوتر و الكترونيك استفاده مي‌شود و هدف آن تربيت كارشناساني است كه كادر مورد نياز محاسبات ، طراحي ، تحقيقات و ساخت صنايع مختلف هواپيمايي، چرخ‌بال‌سازي و موشكي را تامين سازند. به همين دليل دانشجويان اين رشته موظف هستند كه در طي تحصيل 3 واحد پروژه بگيرند و در تابستان نيز در دفاتر مهندسي صنايع مربوط كارآموزي بكنند.
آينده شغلي ، بازار كار ، درآمد:
در مورد مشكلات و دشواري‌هاي شغلي فارغ‌التحصيلان اين رشته نيز دكتر رئيسي مي‌گويد: مهمترين مشكل اين رشته جديد بودن آن است و اين كه هنوز براي آن برنامه‌ريزي‌هاي لازم به صورت كلان تدوين نشده است و در نتيجه پراكنده‌كاري در اين رشته زياد است و در كل جذب نيروي انساني از كانال صحيحي انجام نمي‌گيرد وگرنه عمدتا فارغ‌التحصيلان اين رشته از نظر بازاركار مشكلي ندارند.
همان‌طور كه پيش از اين گفتيم هدف اصلي صنعت هوافضا طراحي و ساخت وسايل پرنده است، در نتيجه فارغ‌التحصيلان مهندسي هوافضا مي‌توانند در صنايع و موسسات تحقيقاتي هواپيمايي ، موشكي و ماهواره فعاليت بكنند و همچنين در كليه موسسات و سازمانهايي كه به نحوي از وسايل پرنده استفاده مي‌كنند، به عنوان كارشناس تحقيق در عمليات و تعمير و نگهداري خدمت كنند. اما علاوه بر اشتغال در مراكز فوق يك مهندس هوافضا با تسلط بر علوم آئروديناميك، طراحي سازه و روشهاي طراحي توربو ماشين‌ها توانايي‌ كار در شاخه‌هاي متعددي از مهندسي و پروژه‌هاي خارج از حيطه صنايع هوافضايي را نيز دارد.
دكتر رئيسي در همين زمينه مي‌گويد: كاربرد زمينه‌هاي مطالعاتي يك مهندس هوافضا تنها به طراحي هواپيما و وسايل پرنده محدود نمي‌شود. براي مثال آئروديناميك خودروهااز برخي جهات شباهت زيادي به آئروديناميك هواپيما دارد و امروزه در اغلب صنايع خودروسازي با استفاده از تونل باد و علم آئروديناميك ، خودروهاي كم مصرفتري مي‌سازند. فرايند سيستم‌هاي كنترل صنعتي نيز با فرايندهاي طراحي كنترل در وسايل پرنده بر يك مبنا است و همچنين سازه اتومبيل و كشتي مشتركات زيادي با سازه يك هواپيما دارد و بالاخره توربين‌هاي گاز يك نيروگاه يا ايستگاه پمپ گاز همانند يك موتور جت تحليل و طراحي مي‌گردند. در نتيجه يك مهندس هوافضا علاوه بر شركت‌هاي هوايي در نيروگاهها، صنايع نفت و گاز و صنايع خودروسازي فرصتهاي شغلي خوبي دارد.
توانايي‌هاي مورد نياز و قابل توصيه :
دكتر رئيسي همچنين معتقد است كه دانشجوي اين رشته بايد در كارهايش نظم و برنامه‌ريزي داشته باشد چون حجم مطالبي كه در طول يك ترم ارائه مي‌شود، زياد بوده و مطالعه آنها مستلزم يك برنامه‌ريزي دقيق مي‌باشد.
وي در مورد دروس مهم در اين رشته نيز مي‌گويد: زيربناي اين رشته رياضيات است و همچنين فيزيك و شيمي تا حدودي لازم مي‌باشد و البته همين‌جا لازم است توصيه كنم كه دانش‌آموزان اگر در درس زبان خارجي ضعيف هستند، وارد اين رشته نشوند چون بيشتر دروس اين رشته به زبان انگليسي وابسته مي‌باشد.
آقاي جهاني دانشجوي كارشناسي ارشد مهندسي هوافضاي دانشگاه اميركبير نيز معتقد است كه دانشجوي اين رشته بايد آمادگي كار در كارخانجات را داشته باشد. وي در توضيح مي‌گويد: مهندسي هوافضا يك رشته فني است و عموما كساني كه وارد رشته‌هاي فني مي‌شوند، بايد آمادگي كار در كارخانجات را داشته باشند و همچنين بايد افراد قوي و داراي پشتكار وارد اين رشته بشوند تا به ياري اراده قوي خود در پيشبرد اين رشته نوپا موفق گردند.
وضعيت ادامه تحصيل در مقاطع بالاتر:
امكان ادامه تحصيل در مقاطع كارشناسي ارشد در گرايشهاي «جلوبرندگي ، مكانيك پرواز، سازه‌هاي هوايي ، آيروديناميك ، هوافضا» ميسر مي‌باشد.
رشته‌هاي مشابه و نزديك به اين رشته :
اين رشته قبلا از زيرشاخه‌هاي مهندسي مكانيك بوده است لذا داراي تعداد واحدهاي مشترك زيادي با رشته مهندسي مكانيك مي‌باشد.
وضعيت نياز كشور به اين رشته در حال حاضر:
رشته مهندسي هوافضا نيازمند سرمايه‌گذاري كلان است و بيش از ساير صنايع از وضعيت اقتصادي كشور تاثير مي‌پذيرد يعني اگر رشد اقتصادي خوبي داشته باشيم سرمايه‌گذاري در اين بخش بيشتر مي‌باشد و البته عكس اين قضيه نيز صادق است.
دكتر مهدي سبزه‌پرور استاد مهندسي هوافضاي دانشگاه اميركبير نيز با اشاره به فعاليت فارغ‌التحصيلان اين رشته در بخش خصوصي مي‌گويد: در سال 70 وزارت صنايع لايحه‌اي به مجلس داد كه بر اساس آن بخش خصوصي مي‌توانست در كشور فعاليت‌هايي در زمينه هوافضا انجام بدهد. از سال 72 نيز به صورت رسمي مجموعه‌اي در وزارت صنايع متولي اين كار شد و به صورت هدايت‌كننده شركت‌ها و مجموعه‌هاي بخش خصوصي فعاليت خود را آغاز كرد كه حاصل اين كار، توليداتي مثل ساخت هواپيماي گلايدر بود كه طراحي آن توسط فارغ‌التحصيلان همين رشته انجام شد و در حال حاضر نيز 10 فروند از اين هواپيما توليد شده و با اخذ مجوزهاي بين‌المللي در باشگاههاي سازمان هواپيمايي كشوري شروع به فعاليت كرده است. همچنين مي‌توان به پروژه طراحي و ساخت هواپيماي سبك موتوردار اشاره كرد كه با موفقيت انجام شده و پروازهاي آزمايشي را نيز انجام داده است و بالاخره پروژه هواپيماي سم‌پاش از پروژه‌هايي است كه به تازگي در كشور مطرح شده است.
حسين شاهوردي دانشجوي كارشناسي ارشد دانشگاه اميركبير نيز مي‌گويد: در حال حاضر در كشور ما به ساخت هواپيما به دليل عدم سرمايه‌گذاري توجه زيادي نمي‌شود اما فارغ‌التحصيلان اين رشته مي‌توانند در فرودگاهها در قسمت تعمير و نگهداري هوايي و همچنين در صنايع دفاع روي طراحي موشك و جنگ‌افزارها فعاليت بكنند.
علاوه بر اينها مي‌توانند روي آئروديناميك خودروها، سازه‌هاي خودروسازي و توليد توربين‌هاي بخار براي توليد برق كار بكنند. وي همچنين درمورد فعاليت‌هايي كه دانشجويان اين رشته در بخش خصوصي مي‌توانند انجام دهند، مي‌گويد: فارغ‌التحصيلان اين رشته مي‌توانند در شركت‌هاي خصوصي، هواپيماهاي كوچك دو نفره و يا چهارنفره‌اي را كه در دست ساخت است با استانداردهاي بين‌المللي تطابق داده و براي هواپيما گواهي پرواز يا توليد بگيرند.

 

 

منبع : سايت علمی و پژوهشي آسمان--صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: سه شنبه 19 اسفند 1393 ساعت: 17:37 منتشر شده است
برچسب ها : ,
نظرات(0)

ليست صفحات

تعداد صفحات : 11

شبکه اجتماعی ما

   
     

موضوعات

پيوندهاي روزانه

تبلیغات در سایت

پیج اینستاگرام ما را دنبال کنید :

فرم های  ارزشیابی معلمان ۱۴۰۲

با اطمینان خرید کنید

پشتیبان سایت همیشه در خدمت شماست.

 سامانه خرید و امن این سایت از همه  لحاظ مطمئن می باشد . یکی از مزیت های این سایت دیدن بیشتر فایل های پی دی اف قبل از خرید می باشد که شما می توانید در صورت پسندیدن فایل را خریداری نمائید .تمامی فایل ها بعد از خرید مستقیما دانلود می شوند و همچنین به ایمیل شما نیز فرستاده می شود . و شما با هرکارت بانکی که رمز دوم داشته باشید می توانید از سامانه بانک سامان یا ملت خرید نمائید . و بازهم اگر بعد از خرید موفق به هردلیلی نتوانستیدفایل را دریافت کنید نام فایل را به شماره همراه   09159886819  در تلگرام ، شاد ، ایتا و یا واتساپ ارسال نمائید، در سریعترین زمان فایل برای شما  فرستاده می شود .

درباره ما

آدرس خراسان شمالی - اسفراین - سایت علمی و پژوهشی آسمان -کافی نت آسمان - هدف از راه اندازی این سایت ارائه خدمات مناسب علمی و پژوهشی و با قیمت های مناسب به فرهنگیان و دانشجویان و دانش آموزان گرامی می باشد .این سایت دارای بیشتر از 12000 تحقیق رایگان نیز می باشد .که براحتی مورد استفاده قرار می گیرد .پشتیبانی سایت : 09159886819-09338737025 - صارمی سایت علمی و پژوهشی آسمان , اقدام پژوهی, گزارش تخصصی درس پژوهی , تحقیق تجربیات دبیران , پروژه آماری و spss , طرح درس