اسلایدهای جلسه اول (مفاهیم اولیه برنامه نویسی) – ۷مهر ۹۲

Download Report

Transcript اسلایدهای جلسه اول (مفاهیم اولیه برنامه نویسی) – ۷مهر ۹۲

‫‪ ‬منبع درس ی‬
‫‪‬‬
‫کت ا ”برن م اای نی ب ا ی ب اای ا ‪ ،“C++‬دایت ااد ی دایت ااد‪ ،‬تر ی اای مرت ا ی ا ا‬
‫الزم ‪ ،‬انتش رات شیخ به ی‪ ،‬س ل ‪.89‬‬
‫کت ا ”راهنی ا م ا مع برن م اای نی ا ‪ ،“Visual C++.Net‬دایت ااد‪ ،‬تر ی اای‬
‫بهرام پ ش ی‪ ،‬انتش رات اتح د‪ ،‬س ل ‪.84‬‬
‫‪‬‬
‫امتح ن ت کتبی (‪ 12‬نیره)‪ :‬پ ی نترم ‪ 8‬نیره ‪ +‬می نترم ‪ 4‬نیره‬
‫امتح عیلی ی کیییز (‪ 2‬نیره)‬
‫تیرین ت (‪ 4‬نیره)‬
‫پریژه (‪ 2‬نیره)‬
‫‪‬‬
‫‪ ‬ب رم بندم‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪2‬‬
‫‪ ‬امتح پ ی نترم (‪ 10‬بهین ‪)92‬‬
‫‪ ‬محتیی ت درس ی‪leila-moazami.ir :‬‬
‫‪ ‬اییید‪[email protected] :‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬الگیریتم ی فلیچ رت‬
‫‪ ‬داده ه ‪ ،‬ثیابت ی متغیره ‪ ،‬عیلگره‬
‫‪ ‬تیابع ی دستیرات‬
‫‪ ‬س خت ره م کنترلی‬
‫‪ ‬اش ره گره ی آرایی ه‬
‫‪ ‬رشتی ی پردا ش رشتی ام‬
‫‪ ‬س خت ر ی کالس‬
‫‪ ‬معرفی کت بخ نی ه‬
‫‪3‬‬
‫‪ ‬ک ر ب محیط ‪Visual Studio‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫ساختار یک سیستم کامپیوتری‬
‫انواع زبانهای برنامه نویس ی‬
‫چگونگی اجرای برنامه توسط کامپیوتر‬
‫الگوریتم‬
‫شبه کد‬
‫‪4‬‬
‫فلوچارت‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬ک مپییتر‬
‫ماشین حسابگر‪ ،‬پردازشگر اطالعات‬
‫‪ ‬سخت افزار‬
‫قطعات فیزیکی و قابل ملس‬
‫‪ ‬نرم افزار (برن می)‬
‫نرمافزار يكي از بخشهاي اساس ي كامپيوتر به شمار ميآيد که سختافزار را به‬
‫كااار ميریا د‪ .‬باه عبااارت ديگاار رابااط بااین كاااربر و سااختافزار را نرمافاازار مينامنااد‪.‬‬
‫نرمافاازار در حقيقاات روج و جااان ي ا كااامپيوتر اساات هااه بااه سااختافزار هو ات‬
‫ميبخشد‪.‬‬
‫‪5‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬برن می ه م سی تمی‬
‫نرمافاازار سیسااتم بااه نرمافاازاری در رایانااه رفتااه میشااود کااه بااه کااارکرد سیسااتم رایانااه یااا‬
‫کاربرده ا ا ا ااای س ا ا ا ااطه پ ا ا ا ااایین رایان ا ا ا ااه مرب ا ا ا ااو باش ا ا ا ااد‪ .‬ایا ا ا ا ا نرمافزاره ا ا ا ااا ب ا ا ا ااه س ا ا ا اااختار‬
‫فیزیکا ا اای سا ا ااختافزار رایانا ا ااه وادسا ا ااته هس ا ا ا ند و در نوش ا ا ا ن آنها ا ااا از زبانها ا ااای سا ا ااطه‬
‫پ ااا ین مانن ااد زب ااان اس اامب اس ااتفاد‌ میش ااود‪ .‬سیس ااتمعامل و درایوره ااا از نرمافزاره ااای‬
‫سیسا ااتم هس ا ا ند‪ .‬نرمافا اازار سیسا ااتمی در مسزمینا ااه عما اال میکنا ااد و خا اادما ی را فا ااراهم‬
‫عامل میتوانناد بارای انراام کارهاای خاود از آن‬
‫میکند که دیگار نرمافزارهاا و یاا سی ًساتم ً‬
‫استفاد‌ کنند اما در عوض معموال مستقیما با کاربر عادی در تماس نیست و خادما ی‬
‫را به او ارایه نمیدهد‪.‬‬
‫‪ ‬برن می ه م ک ر ردم‬
‫در براباار نرمافاازار سیسااتم‪ ،‬نرمافاازار کًاااربردی قاارار دارد کااه باارای کاربردهااای سااطه باااال و‬
‫غی سیسا ااتمی رایانا ااه اسا اات و معما ااوال با ااه زبانها ااای سا ااطه با اااال نوشا ااته میشا ااود کا ااه از‬
‫جز ی ا ااات س ا ااختافزاری سیس ا ااتم ًمس ا ااتقل اس ا اات و ب ا ااا اس ا ااتفاد‌ مس ا ااتقیم از من ا اااد و‬
‫قابلیتهای رایانه کاری را مستقیما برای کاربر انرام میدهد‪.‬‬
‫‪6‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬دستگ هه م یریدم‬
‫‪‬‬
‫فحی کلید‪ ،‬میس‬
‫‪‬‬
‫فحی نی یش‪ ،‬پرینتر‬
‫‪ ‬دستگ هه م خریجی‬
‫‪ ‬یا د پردا ش مرکزم ‪CPU‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪7‬‬
‫یا د مح سبی ی منطق ‪ :ALU‬عیلی ت مح سب تی ی منطقی‬
‫یا د کنترل‪ : CU‬کنترل ی نظ رت بر تی م ا زا‬
‫فظی ث نییی ی دائمی ی نبی ‪Hard disk‬‬
‫فظی ایلیی ی میقتی ی ا لی ‪RAM‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪8‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪9‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬نرمافزاره تیسط نه ي برن مینیيب ي نیشتی ميشیند‪ .‬نه ي‬
‫برن مینیيب ي‪ ،‬يك سي تم ارتب طي ه تند كی تیسط آنه ميتیا‬
‫دستیرات ال م را بی م شی انتق ل داد‪.‬‬
‫برن مینیيب ي بی مجییعیاي ا عاليم‪ ،‬قیاعد ی دستیرالعیده‬
‫‪ ‬هر‬
‫گفتی ميشید كی امك ارتب ط ب ك مپيیتر را هت بي ك ري ي د‬
‫م ئلیاي فراهم ميكند‪.‬‬
‫‪ ‬انیاع نه م برن می نی ب ی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪10‬‬
‫ا سااطن پ ا یی ( ا اساایبلی)‪ :‬باای نه ا ی کاای نزدیااش باای ا م شاای ه ااتند‬
‫گفتی می شید‪.‬‬
‫ا سااطن می ا ی ( ا ‪ C‬ی ا یا)‪ :‬ایاان نه ا باای ا ا ا نزدیااش ه ااتند ام ا‬
‫قدرت دسترس ی م تقیم بی سخت افزار را نیز دارند‪.‬‬
‫ا سااطن ب ا ال ( ا پ سااب ل ی بی اایش)‪ :‬باای نه ا ی کاای نزدیااش باای ا ا ا‬
‫ه تند گفتی می شید‪.‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
 High
level languages
Data = 10+20;
 Low
level languages
Load R1, 10
Load R2, 20
Add R1, R2
Store R2, L1
92/7/7 ،‫جلسه اول‬
‫مفاهیم اولیه برنامه نویس ی‬
11
‫کده م برن می‬
‫مف ر ی ک مپ یلر‬
‫برن می ایج د شده بی‬
‫م شی‬
‫‪12‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬ک مپ ا یلر ی مف اار برن ماایه ی ه ااتند کاای ا سااطن ب ا ال ی سااطن می ا ی را‬
‫م شی میکنند‪.‬‬
‫تبدید بی‬
‫‪ ‬یش مف ر یش دستیرالعید ی یش خط را در یا د م میخیاند ی بعاد ا‬
‫تباادید کاارد آ باای کااد م شاای ‪ ،‬آ را ا ارا میدنااد‪ .‬در هنگ ا می کاای ایاان ک اد‬
‫تیسط م شی ا را میشید‪ ،‬مف ر خط بعدم را خیاناده ی آ را تبادید بای‬
‫کا ااد م شا اای میدنا ااد‪ .‬نه ا ا ی م ننا ااد ‪ Javascript‬ی ‪ basic‬دارام مف ا اار‬
‫ه تند‪.‬‬
‫‪ ‬ی ااش ک مپا ا یلر هی اای ک ااد برن م اای را ب اایرت ی ااش ا ا خیان ااده ی آ را ب اای ک ااد‬
‫م ش اای تب اادید میدن ااد ی س اارو ک ااد تیلی ااد ش ااده را دری ی ااش ف ی ااد دیا اد‬
‫ذخیااره میدنااد‪ .‬ایاان ف یااد ا را اای دیااد‪ ،‬کا مال م ااتقد ا ف یااد ا االی برن ماای‬
‫می ب شد‪ .‬نه ی م نند ‪ Java‬ی ‪ C++‬دارام ک مپ یلر ه تند‪.‬‬
‫‪13‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫• مزایا‪:‬‬
‫مف ر‬
‫• ویرایش در حین اجرا‬
‫• وادسته نبودن به ‪platform‬‬
‫• معایب‪:‬‬
‫• کند بودن (‪ 10‬بار ترجمه یک حلقه ‪ 10‬تایی)‬
‫ک مپ یلر‬
‫• مزایا‪:‬‬
‫• امنیت‬
‫• سرعت‬
‫• معایب‪:‬‬
‫• عدم امکان ویرایش در حین اجرا‬
‫‪14‬‬
‫• وادسته به ‪platform‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬ریش انج م ك ر ي د م ئلی‬
‫‪ ‬گرفتی شده ا ر شی خیار می‬
‫‪ ‬مجییعاایام متنا زی ا دستیرالعیده ساات کاای باای ترتیا خ ا ی ا ارا‬
‫میشیند ی م ئلیام را د میکنند‪.‬‬
‫‪ ‬ریش ی گ م بی گ م برام د م ئلی‬
‫‪ ‬الگاایریتم گ ا ه دارام مرا لاای اساات کاای تد ارار میشااید ی ی ا در مر لاایام‬
‫نی مند ت ییمگیرم است‪.‬‬
‫‪ ‬آشپزم مث لی ا یش م ئلی است‪.‬‬
‫‪15‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫خروج‬
‫• الگوریتم ممک است بدون ورودی باشد‪.‬‬
‫قطعیت‬
‫• دستورات الگوریتم باید با زبانی دقیق و بیابهام بیان شوند‪ .‬هر دستورالعمل نیز باید‬
‫انرامپذیر باشد‪ .‬دستورهایی نظی «حاصل تقسیم پنج بر صفر را محاسبه کنید» مراز‬
‫نیس ند‪.‬‬
‫پایان پذیری‬
‫• الگوریتم باید دارای شروع و پایان مشخص ی باشد‪ ،‬به نحوی که ارر دستورات آن را‬
‫دنبال کنیم‪ ،‬برای تمامی حاالت‪ ،‬الگوریتم مس از طی مراحل شمارا و متناه خاتمه‬
‫یابد‪.‬‬
‫• یک تفاوت میان برنامه و الگوریتم پایان پذیری است‪.‬‬
‫‪16‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫مح یره (ف رس ی ی انگلیب ی ی ‪)...‬‬
‫‪‬‬
‫‪ ‬شبی کد‬
‫‪ ‬فلیچ رت‬
‫برن می نی ب ی‬
‫‪‬‬
‫‪17‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬الگور تمي بنويسيد هه سه عدد از ورودي در افت هرد‌ مرموع و ميانگین‬
‫سه عدد را محاسبه و چاپ هند‪.‬‬
‫‪ .1‬شروع‬
‫‪ .2‬سه عدد ‪ a‬و ‪ b‬و ‪ c‬را از ورودی بخوان‪.‬‬
‫‪ .3‬مرموع سه عدد ‪ a‬و ‪ b‬و ‪ c‬را محاسبه و در ‪ sum‬قرار بد‌‪.‬‬
‫‪ sum .4‬را بر سه تقسيم هرد‌‪ ،‬در ‪ avg‬قرار بد‌‪.‬‬
‫‪ avg , sum .5‬را در خروجي چاپ ه ‪.‬‬
‫‪ .6‬پايان‬
‫‪18‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬الگوریتمی بنویسید تا میانگین عددی ‪ 100‬عدد صحیه دلخوا‌ را محاسبه‬
‫کند‪.‬‬
‫‪ .1‬شروع‬
‫‪ .2‬مقدار متغی ‪ sum‬را برابر ‪ 0‬قرار بد‌‪.‬‬
‫‪ .3‬دستورات شمار‌ ‪4‬و‪ 5‬را ‪ 100‬بار تکرار ک ‪.‬‬
‫‪ .4‬یک عدد از ورودی دریافت ک و مقدار آن را در متغی ‪ x‬قرار بد‌‪.‬‬
‫‪ .5‬مرموع ‪ sum‬و ‪ x‬را در ‪ sum‬قرار بد‌‪.‬‬
‫‪ .6‬خارج قسمت ‪ sum‬بر ‪ 100‬را در ‪ avg‬قرار بد‌‪.‬‬
‫‪ .7‬مقدار ‪ avg‬را در خروج نمایش بد‌‪.‬‬
‫‪ .8‬پایان‬
‫‪19‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬شبیکد ی ‪ pseudocode‬ریش ی سر ع‪ ،‬فشرده ی غیر رسمی برام تیضین‬
‫یش الگیریتم ک مپییترم است‪.‬‬
‫ی نی م شی طراحی شده است‪.‬‬
‫‪ ‬برام خیانده شد تیسط ا‬
‫ا‬
‫‪ ‬شبی کد معییال ف قد زئی ت است‪.‬‬
‫انگلیب ی ی عالمته م ری ض ی استف ده میکنند‪.‬‬
‫‪ ‬برام نیشت آ ا‬
‫‪ ‬هدف استف ده ا شبی کد این است کی فهم آ س دهتر ا نه م برن می‬
‫نی ب ی است‪.‬‬
‫ا‬
‫‪ ‬شبی کد معییال ا هیچ گرامر مشخص ی پیریم نمیکند‪.‬‬
‫‪20‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪Start‬‬
‫‪Read x , y , z‬‬
‫‪a=x+y+z‬‬
‫‪a=a/3‬‬
‫‪Write a‬‬
‫‪End‬‬
‫‪21‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
1. Start
2. sum = 0
3. Repeat 100 times “#4 and #5 Instructions”
4. Read x
5. sum = sum + x
6. avg = sum / 100
7. Write avg
8. End
92/7/7 ،‫جلسه اول‬
‫مفاهیم اولیه برنامه نویس ی‬
22
1. Start
2. i = 0
3. sum = 0
4. Read x
5. sum = sum + x
6. i = i + 1
7. if ( i < 100 ) then go to “#4 instruction”
8. avg = sum / 100
9. Write avg
10. End
92/7/7 ،‫جلسه اول‬
‫مفاهیم اولیه برنامه نویس ی‬
23
‫‪ ‬روندنما ی فلوچارت )‪ (flowchart‬نییدارم است برام نی یش دادهه ‪،‬‬
‫اطالع ت ی ریند ک ر یش الگیریتم بر ریم آنه ‪ ،‬بی یسیلی نی ده م خ ص ی‬
‫خطیط هتدار بی آنه ‪.‬‬
‫‪ ‬آغ ی پ ی‬
‫‪ ‬انت‬
‫ی پردا ش‬
‫‪ ‬یریدم ی خریجی‬
‫‪ ‬ت ییم گیرم (شرط)‬
‫‪ ‬ات ل ی رابط‬
‫‪24‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
Begin
Read (a,b,c)
Sum  a+b+c
Avg  sum/3
Write (Sum, Avg)
End
92/7/7 ،‫جلسه اول‬
‫مفاهیم اولیه برنامه نویس ی‬
25
Begin
i 1
sum0
Read (x)
Yes
92/7/7 ،‫جلسه اول‬
sum  sum+x
End
i  i+1
Write (avg)
i<=10
No
avgsum/10
‫مفاهیم اولیه برنامه نویس ی‬
26
‫‪ ‬عددي را ا یریدي دري فت كرده‪ ،‬سرو تعداد ارق م آ را شیرده در‬
‫خریجي چ پ نی يید‪.‬‬
‫‪1. Start‬‬
‫‪2. Read a‬‬
‫‪3. i = 0‬‬
‫‪4. a = a / 10‬‬
‫‪5. i = i + 1‬‬
‫”‪6. if (a>0) then go to “#4 instruction‬‬
‫‪7. Write i‬‬
‫‪27‬‬
‫‪8. End‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪‬‬
‫‪28‬‬
‫دی عدد ‪ a‬ی ‪ b‬را ا یریدي دري فت كرده‪ ،‬محتیي ت آنه را بج نییده‪،‬‬
‫د را در خریجي چ پ كنید‪ .‬این م ئلی را بی دی یرت د کنید‪:‬‬
‫ب استف ده ا متغیر کیبی ی بدی آ ‪.‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫‪Read a,b‬‬
‫‪‬‬
‫‪Read a,b‬‬
‫‪‬‬
‫‪a=a+b‬‬
‫‪‬‬
‫‪temp= a‬‬
‫‪‬‬
‫‪b=a-b‬‬
‫‪‬‬
‫‪a=b‬‬
‫‪‬‬
‫‪a=a-b‬‬
‫‪‬‬
‫‪b=temp‬‬
‫‪‬‬
‫‪Write a,b‬‬
‫‪‬‬
‫‪Write a,b‬‬
‫‪‬‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬سی عدد ا یریدي دري فت كرده‪ ،‬كیچكترين عدد را ي فتی در خریجي چ پ‬
‫نی يید‪.‬‬
‫‪1. Start‬‬
‫‪2. Read a,b,c‬‬
‫‪3. min=a‬‬
‫‪4. if (b<min) min=b‬‬
‫‪5. if (c<min) min=c‬‬
‫‪6. Write min‬‬
‫‪29‬‬
‫‪7. End‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪ ‬فلیچ رتی رسم نی یید کی عددم ا یریدم دری فت کرده ی فرد ی یج بید‬
‫آ را مشخص کند‪.‬‬
‫‪Begin‬‬
‫)‪Read (x‬‬
‫‪No‬‬
‫)”‪Write (“odd‬‬
‫‪R==0‬‬
‫‪Q  x/2‬‬
‫‪R  x-2*Q‬‬
‫‪Yes‬‬
‫‪End‬‬
‫‪30‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫)”‪Write (“even‬‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪31‬‬
‫ده عدد ا یریدي دري فت كرده‪ ،‬كیچكترين عدد را ي فتی در خریجي‬
‫چ پ نی يید‪.‬‬
‫ضراي يك مع دلی در ی دیم را ا یریدي دري فت كرده‪ ،‬ريشیه ي آ‬
‫را مح سبی ی در خریجي چ پ كنید‪.‬‬
‫دی عدد صحين مثبت ‪ x‬ی ‪ n‬را ا یریدي دري فت كرده‪ ،‬سرو ‪ x‬بی‬
‫تیا ‪ n‬را مح سبی كنید‪.‬‬
‫یش عدد را ا یریدي دري فت كرده ی مقلی آنرا در خریجی چ پ کنید‪.‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫نییده ی شبی کد ی فلیچ رت آ را‬
‫‪ ‬دی تیرین ا چه ر تیرین را انتخ‬
‫نیشتی ی رسم کنید‪.‬‬
‫‪ ‬لطف شی ره دی تیرین انتخ بی را ب الم برگی خید بنی ید‪.‬‬
‫‪ ‬نیشت ن م ی ن م خ نیادگی را فرامیش ندنید‪.‬‬
‫‪32‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬
‫‪33‬‬
‫مفاهیم اولیه برنامه نویس ی‬
‫جلسه اول‪92/7/7 ،‬‬