مباني كامپيوتر و برنامه سازي Basics of Computer and Programming

Slides:



Advertisements
Similar presentations
Logic Block Architectures. 2 Crosspoint Solution  Requires the use of large amounts of programmable interconnect −  suffer from area-inefficiency 
Advertisements

Stranded Costs مقدمه 1 - آشنايی با پديده های غيرخطی ( ياد آوری و تکميل ) 2 - مبانی رياضی ( مهم )
سازگاري فرايندهاي يادگيري Consistency of Learning Processes ارائه دهنده : الهام باوفای حقیقی استاد درس : آقای دکتر شيري دانشگاه امير كبير دانشكده ‌ مهندسي.
دستور العمل نحوه محاسبه امتیاز مقالات ISI اعضای هیأت علمی دانشگاه صنعتی اصفهان بر اساس تعداد استنادات در پايگاه اسكاپوس شهریور ماه 1388 نفیسه دهقان.
ارائه روشي براي شناسايي کاراکترهاي دستنويس، برپايه شبکه LVQ.
مثال های کاربردی (1) محاسبه سطوح دايره ای شکل –آبياری بارانی –سم پاشها تعريف مسئله: تهيه برنامه ای که بر اساس يک شعاع مفروض ورودی سطح دايره متناظر را محاسبه.
ارائه درس روباتيکز Extended Kalman Filter فريد ملازم استاد مربوطه دکتر شيري دانشگاه امير کبير – دانشکده کامپيوتر و فناوري اطلاعات.
نمايش اعداد.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
نمايش اعداد.
ارائه کننده: آلاء شريعتی
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
مراحل مختلف اجرای يک برنامه
Artificial Intelligent Systems Laboratory 1 الگو‌هاي فرايند (Process Patterns) فصل 2 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده :
نمايش اعداد علی عادلی.  مبنا ( base ): –مبناي r: ارقام محدود به [0, r-1]  دسيمال:(379) 10  باينري:( ) 2  اکتال:(372) 8  هگزادسيمال:(23D9F)
BY: Ghasem Mohammadi دانشگاه كردستان دانشكدة فني و مهندسي گروه كامپيوتر مباني كامپيوتر و برنامه سازي Basics of Computer and Programming Session 1 Basic.
ساختارهاي تقسيم كار پروژه
آرايه Array آرايه مجموعه اى از متغيرهاى از يك نوع است كه با يك نام مشترك تحت استفاده قرار مى گيرند. يك عنصر بخصوص در يك آرايه با يك index (انديس ) مورد.
اسامي شناسه ها (Identifier names) اسامي متغيرها ، توابع ، برچسب ها (labels) وبقيه اشياء تعريف شده توسط كاربر در C ، شناسه ( identifier ) ناميده مي شود.
1 فصل دوم تبديلات. 2 فصل دوم سرفصل مطالب مقدمه ضرب بردارها دستگاه ‌ هاي مختصات دوران ‌ ها مختصات همگن دوران ‌ ها و انتقال ‌ ها تبديلات تركيبي همگن تبديل.
شرط و تصميم اصول كامپيوتر 1. 2 الگوريتم اقليدس E1: [find remainder] Divide m by n and let r be the remainder. Clearly, 0
1/19 Informed search algorithms Chapter 4 Modified by Vali Derhami.
Department of Computer Eng. & IT Amirkabir University of Technology (Tehran Polytechnic) Data Structures Lecturer: Abbas Sarraf Order.
Introduction to Programming Lecture 2: Algorithm Design.
1 فصل سوم سينماتيك مستقيم. 2 محتواي فصل   تعريف مجموعه فازي   تابع عضويت   نمايش مجموعه هاي فازي   برش آلفا   متغيرهاي زباني   ساخت مجموعه.
الف) تابع y = f(x) = X >= 0x -2 < x < 0 x3x3 X
آشنايي با سيستم اعداد.
مدارهای منطقی فصل چهارم و پنجم - مدارهاي منطقي تركيبي ماجولي
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
عامل هاي منطقي- منطق گزاره‌اي
مديريت پروژه هاي فناوري اطلاعات نويسنده : Jack T. Marchewka ترجمه پاورپوينت فصل سه مترجم : محمد صادق كسلخه ايميل :
Prostration (سجده در برابر خدا).
به نام خدا POWER SYSTEM ANALYSIS Ali Karimpour Associate Professor
مرتب سازي مقايسه اي مرتب سازي خطي
آرايه ها و ساختارها.
برنامه نويسي C++ محمد رضا ملک شاهکویی
آرايه ها.
ANOVA: Analysis Of Variance
ANOVA: Analysis Of Variance
نمايش معادلات فضاي حالت توسط فرمهاي كانوليكال
روش حریصانه در طراحی الگوریتم
وحید حقيقت دوست دانشکده فنی و مهندسی دانشگاه شاهد
Quick Sort مرتب سازي سريع.
دستورات کنترل و تکرار- 2 اصول كامپيوتر 1.
آشنايي با برنامه نويسي به زبان C++
تکنیک دیماتل DEMATEL: decision making trial and evaluation laboratory.
دکتر حسين بلندي/ دکتر سید مجید اسماعیل زاده / دکتر بهمن قربانی واقعی
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
Similarity transformation
گزگز و خواب رفتگي انگشتان دست
سيستمهاي اطلاعات مديريت
هیدرولیک جریان در کانالهای باز
مديريت پروژه‌هاي فناوري اطلاعات
فيلتر كالمن معرفي : فيلتر كالمن تخمين بهينه حالت‌ها است كه براي سيستم‌هاي ديناميكي با اختلال تصادفي در سال 1960 بزاي سيستم‌هاي گسسته و در سال 1961 براي.
گروه كارشناسي ارشد مديريت فنآوري اطلاعات(واحد الكترونيكي تهران)
آشنايي با درخت هاي تصميم گيري
Test آزمون نرم افزار Mansooreh Jalalyazdi.
تحليل عملكرد يك سيستم تصويربرداري ديجيتال
آمار توصيفي ارائه: سيد عماد احمدي.
فصل ششم مدارهای ترتیبی.
مدلسازي تجربي – تخمين پارامتر
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
توزیع میانگین نمونه سعید موسوی.
تبديل همانندي در معادلات حالت و خروجي P ماتريس تبديل ثابت و ناويژه
گروه كارشناسي ارشد مديريت فنآوري اطلاعات(واحد الكترونيكي تهران)
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
تخمين پارامترها - ادامه
مثالي از فرآيند آموزش به مددجو om/
Presentation transcript:

مباني كامپيوتر و برنامه سازي Basics of Computer and Programming _ دانشگاه آزاد دانشكدة مهندسي مباني كامپيوتر و برنامه سازي Basics of Computer and Programming Session 3 Algorithms آشنايي با الگوريتم BY: Ghasem Mohammadi

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

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

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

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

مراحل الگوريتم براي حل يك مسئله بايد الگوريتم آن مسئله را مشخص كنيم (يا بيابيم). كه اصطلاحاً طراحي الگوريتم براي آن مسئله ناميده مي‌شود. در طراحي الگوريتم معمولاً سه مرحله زير را از هم جدا مي‌كنند: خواندن داده‌ها انجام محاسبات خروجي‌ها

مثال : الگوريتمي بنويسيد كه دو عدد از ورودي دريافت كرده مجموع مثال : الگوريتمي بنويسيد كه دو عدد از ورودي دريافت كرده مجموع دو عدد را محاسبه و چاپ نمايد. خروجي‌ها انجام محاسبات وروديها مجموع دو عدد جمع دو عدد a , b 0ـ شروع 1ـ b ,a را بخوان. 2ـ مجموع b , a را محاسبه و در sum قرار بده. 3ـ sum را در خروجي چاپ كن 4ـ پايان

مثال: الگوريتمي بنويسيد كه سه عدد از ورودي دريافت كرده مجموع و ميانگين سه عدد را محاسبه و چاپ كند. خروجي‌ها انجام محاسبات وروديها چاپ مجموع محاسبه مجموع a چاپ ميانگين محاسبه ميانگين b c 0ـ شروع 1ـ سه عدد از ورودي بخوان 2ـ مجموع سه عدد را محاسبه و در sum قرار بده. 3ـ sum را بر سه تقسيم كرده،در ave قرار بده. 4ـ ave , sum را در خروجي چاپ كن. 5ـ پايان.

معمولا درك يك الگوريتم با شكل راحتر از نوشتن آن بصورت متن مي‌باشد. لذا الگوريتم را با فلوچارت( flowchart )نمايش مي‌دهند. فلوچارت از شكل‌هاي زير تشكيل مي‌شود. علامت‌هاي شروع و پايان: كه معمولا از يك بيضي استفاده مي‌كنند: Begin End علامتهاي ورودي و خروجي: كه معمولا از متوازي‌الاضلاع استفاده مي‌شود: خواندن يا Read چاپ کردن write

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

فلوچارت مجموع سه عدد Begin Read(a,b,c) Sum a+b+c Ave sum/3 Write(sum,ave) End

مثال: فلوچارتي رسم نمائيد كه دو عدد از ورودي دريافت كرده سپس محتويات دو عدد را با هم جابجا ‌نمايد. براي حل اين مسئله b , a را دو متغير كه در آنها دو عدد خوانده شده، قرار مي‌گيرند در نظر مي‌گيريم. سپس با استفاده از يك متغير كمكي محتويات اين دو عدد را جابجا مي‌كنيم :

12 15 temp a b

Begin Read(a,b) temp a a b Write(a,b) End b temp فلوچارت مسئله بالا بصورت زير خواهد بود: Begin Read(a,b) temp a a b Write(a,b) End b temp

تمرين 1ـ فلوچارتي رسم نمائيد كه طول و عرض مستطيل را از ورودي دريافت كرده محيط و مساحت آنرا محاسبه و چاپ كند. 2ـ فلوچارتي رسم نمائيد كه شعاع دايره‌اي را از ورودي دريافت كرده، محيط و مساحت آنرا محاسبه و چاپ نمايد. 3ـ فلوچارتي رسم كنيد كه سه عدد Third , second, first را از ورودي دريافت كرده، محتويات آنها را جابجا نموده، حاصل را در خروجي چاپ كند.

4ـ فلوچارتي رسم نمائيد كه دو عدد از ورودي دريافت كرده، سپس محتويات دو عدد را بدون استفاده از متغير كمكي جابجا كند. 5ـ فلوچارتي رسم نمائيد كه عددي (درجه حرارت برحسب سانتيگراد) را از ورودي دريافت كرده سپس آنرا به درجه فارنهايت تبديل كند.

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

If شرط يا شروط then در حالت كلي شرط را بصورت زير نمايش مي‌دهند: عمل يا اعمال yes NO عمل يا اعمال بعدي

Begin Read(a) R a mod 2 yes if R=0 then Write(‘even’) No Write(‘odd’) مثال : فلوچارتي رسم نمائيد كه عددي را از ورودي دريافت كرده، فرد يا زوج بودن آن را تشخيص دهد. Begin Read(a) R a mod 2 yes if R=0 then Write(‘even’) No Write(‘odd’) End

Begin Read(a,b) max a Write(max) End if b>max max b مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد را پيدا كرده در خروجي چاپ نمايد. Begin Read(a,b) max a Write(max) End if b>max No yes max b

` مثال : فلوچارتي رسم نمائيد كه سه عدد از ورودي دريافت كرده، كوچكترين عدد را يافته در خروجي چاپ نمايد: Begin Read(a,b,c) min a Write(min) End if b<min then No yes min b if c<min then min c `

نمونه اجراي فلوچارت بالا بصورت زير مي‌باشد: خروج a b c Min 11 12 11 17 12 1 2 3 4 5

تمرين 1- فلوچارتي رسم كنيد که عددي را از ورودي دريافت كرده، قدر مطلق عدد را در خروجي چاپ كند. 2- فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده مثبت، منفي يا صفر بودن عدد را تشخيص داده، در خروجي با پيغام مناسب چاپ كند. 3- فلوچارتي رسم نمائيد كه عددي را از ورودي دريافت كرده، بخشپذيري آن بر 3 و 5 را بررسي نمايد. 4ـ فلوچارتي رسم نمائيد كه ضرايب يك معادله درجه دوم را از ورودي دريافت كرده، ريشه‌هاي آن را محاسبه در خروجي چاپ كند.

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

حلقه هاي با تکرار نا مشخص انواع حلقه ها حلقه هاي با تکرار مشخص حلقه هاي با تکرار نا مشخص

حلقه هاي با تکرار مشخص در اين نوع حلقه‌ها تعداد تكرار مشخص مي‌باشد اين حلقه از اجزاء زير تشكيل مي‌شود: 1ـ انديس حلقه 2ـ مقدار اوليه براي انديس حلقه 3- مقدار افزاينده براي انديس حلقه (معمولا يك واحد در هر مرحله) 4ـ مقدار نهايي (تعداد تكرا حلقه) 5ـ شرطي براي كنترل تعداد تكرار حلقه

i 1 No if i<=n اتمام كار حلقه yes مجموعه دستورات حلقه i i+1 اين حلقه‌ها را غالباً با فلوچارت بصورت زير نمايش مي‌دهند: i 1 if i<=n yes No مجموعه دستورات حلقه i i+1 اتمام كار حلقه

n مقدار نهايي i انديس حلقه مثال : فلوچارتي رسم نمائيد كه عدد n را از ورودي دريافت كرده، مجموع اعداد از يك تا n را محاسبه كند. n مقدار نهايي i انديس حلقه

Begin Read(n) I 1 sum 0 if I<=n yes No Write(sum) End sum sum+I I I+1 حلقه

نمونه اجراي فلوچارت بالا بصورت زير است: خروجي N I sum 15 5 1 0 2 1 3 3 4 6 5 10 6 15 1 2 3 4 5 6 7

انديس حلقه i مقدار نهايي n بزرگترين مقدارMax مثال : فلوچارتي رسم كنيد كه n عدد از ورودي دريافت كرده، بزرگترين مقدار از بين n عدد را پيدا كرده در خروجي چاپ نمايد. انديس حلقه i مقدار نهايي n بزرگترين مقدارMax

Begin Read(n) I 2 max a No if i<=n then write(max) yes End Read(a) حلقه if a > max yes max a No i i+1

انديس حلقه i مقدار نهايي n عدد به توان n pow مثال : فلوچارتي رسم نمائيد كه n , x ، دو عدد صحيح مثبت را از ورودي دريافت كرده سپس x به توان n را محاسبه كند. انديس حلقه i مقدار نهايي n عدد به توان n pow

Begin i 1 pow 1 if i<=n then yes No write(pow) End pow pow*x حلقه Read(n,x) i i+1

حلقه‌هايي كه تعداد تكرار آنها مشخص نيست (در C++ به حلقه while مشهورند در اين حلقه‌ها با توجه به ورودي، تعداد تكرار مشخص مي‌شود. و دقيقاً نمي‌‌توان تعداد تكرار حلقه را بدون ورودي معين كرد. اين حلقه ها فقط شامل شرطي هستند كه تا زمانيكه برقرار باشد حلقه اجرا مي‌شود.

محموعه دستورالعملها و جاگزينها در حالت كلي اين نوع حلقه‌ها بصورت زير نمايش داده مي‌شوند: If شرط يا شروط محموعه دستورالعملها و جاگزينها No yes

مثال: فلوچارتي رسم كنيد كه عددي را از ورودي دريافت كرده سپس تعداد ارقام آن را شمرده در خروجي چاپ نمايد. عدد خوانده شده N تعداد ارقام count

Begin count 0 if N>0 then yes No write(count) End N N div 10 حلقه Read(N) count count+1

در حالت كلي جملات سري بصورت: fk=fk-1+fk-2 مثال : فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده، سري فيبوناچي قبل از آنرا توليد نمايد. در حالت كلي جملات سري بصورت: fk=fk-1+fk-2 عدد خوانده شده N جمله اول سري f1 جمله دوم سري f2 جمله سوم سري f3

Begin F1 0 f2 1 if f3>N then yes No End حلقه Read(N) f1 f2 f2 f3 f3 f1+f2 f3 f1+f2 write(f3)

تمرين 1- فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده، كامل بودن آنرا بررسي نمايد. (عدد كامل، عددي است كه مجموع مقسوم‌عليه‌هاي آن با خودش برابر باشد.) 2- فلوچارتي رسم كنيد كه N را از ورودي دريافت كرده، N جمله سري فيبوناچي را توليد نمايد. 3ـ فلوچارتي رسم نمائيد كه دو عدد N , M را از ورودي خوانده، بزرگترين مقسوم‌عليه مشترك دو عدد را محاسبه و چاپ كند.

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

در حلقه‌هاي تودرتو به ازاي يكبار تكرار حلقه اوليه، حلقه داخلي به اندازه مقدار نهايي خود تكرار مي‌شود. در كل اگر حلقه اوليه n بار تكرار شود و حلقه داخلي m بار، در اينصورت كل حلقه : بار تكرار خواهد شد.

مجموعه دستورات و جايگزيني ها فلوچارت حلقه‌هاي تودرتو را مي‌توان بصورت زير نشان داد: i 1 if j<=m then No حلقه j j+1 yes . if i<=n then j 1 مجموعه دستورات و جايگزيني ها i i+1 A اتمام كار حلقه هاي تو در تو

مثال : فلوچارتي رسم نمائيد كه N را از ورودي دريافت كرده، مجموع سري زير را محاسبه نمايد: انديس حلقه اول I ورودي N ‌ محاسبه فاكتوريل fact انديس حلقه داخلي j مجموع Sum

i 2 sum 1 A if j<=i No fact fact*j yes if i<=N fact 1 j 2 i i+1 Read(N) End sum sum+i/fact j j+1 Write(sum)

تمرينات آخر فصل 1- فلوچارتي رسم نمائيد كه N عدد از ورودي دريافت كرده تعداد اعداد اول و كامل را شمرده در خروجي چاپ نمايد. 2- فلوچارتي رسم نمائيد كه N , X را از ورودي خوانده مقدار سري زير را محاسبه كند:

3- فلوچارتي رسم نمائيد كه عددي را از ورودي دريافت كرده مقلوب عدد را محاسبه و در خروجي چاپ كند. 4ـ فلوچارتي رسم كنيد كه تاريخ تولد شخصي را از ورودي خوانده، سن شخص را با تاريخ روز، محاسبه نموده در خروجي چاپ كند. 5- فلوچارتي رسم نمائيد كه (m>n) N ,M را از ورودي دريافت كرده سري فيبوناچي بين N ,M را توليد كرده، در خروجي چاپ كند.