اسلایدهای قسمت سوم:نسخه جدید

Download Report

Transcript اسلایدهای قسمت سوم:نسخه جدید

‫نرم افزار کامپیوتر)‪(Software‬‬
‫• بخش ی از کاامپیوتر اتاک اه باک بیاارسخت فااک افازار فرماا داد‬
‫مورد اتتفاده قرار می سختد‪.‬‬
‫ا اکآ‬
‫• عملکارد کااامپیوتر توتاار کسار دتااتورا نمم بااه ناام برنامااه ااه توتار ماا نوشااته‬
‫می شود تنیخ می سردد‪.‬‬
‫• نرم افزار برنامه ا اتک بک بیارسخت فاک افزار‬
‫• برنام ااه نخ اای مسموع ااه ا دت ااتور ا نم اام ب ااه مب ااور انس ااام ک ااار ا ا ا ی ب ااه ترت ا ا‬
‫مبات آماده ش ه اتک‪.‬‬
‫‪1‬‬
‫انواع نرم افزار کامپیوتر‬
‫• د دتته لی‬
‫– نرم افزار ا ت ستمی‬
‫)‪(System Software‬‬
‫ا تر یس داد به آ نیاز اتک‪.‬‬
‫• برنامه ایی برا فنال ش‬
‫• کار ا مربوط به ت ستم کامپیوتر را انسام می د ب ‪.‬‬
‫• توتر متخصصخ تازن گا کامپیوتر نوشته می شون ‪.‬‬
‫– نرم افزار ا کاربرد )‪(Application Software‬‬
‫• توتر ود افراد نخی قابم نوشت اتک‪.‬‬
‫• برا انسام کار ا ر زمره از ا ن برنامه ا اتتفاده می نما یم‪.‬‬
‫• به ا را ت ستم انسام ظا ف مربوط به ت ستم ارتباطی ن ارن ‪.‬‬
‫‪2‬‬
‫نرم افزارهای سیستمی)‪(System Software‬‬
‫• ت ستم ا عامم )‪(Operating Systems‬‬
‫• برنامه ا تودمب ا وتیلیتی ا )‪(Utilities‬‬
‫• متت م ا زبا )‪(Translators‬‬
‫‪3‬‬
‫نرم افزارهای سیستمی)‪(System Software‬‬
‫ت ستم ا عامم‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫مبمتت ن نرم افزار کامپیوتر اتک‪.‬‬
‫برنامه بزرگ مفصلی اتک‪.‬‬
‫رابر بخ کاربر فاک افزار اتک‪.‬‬
‫م ریک مبابع را بر عب ه دارد‪.‬‬
‫در ک کامپیوتر بطور منمول ظا ف زیر را انسام می د ‪:‬‬
‫‪4‬‬
‫– فنال رد برنامه ا آ رد آنها به حاف ه بک ا را‬
‫– ن ارت بر ا را نرم افزار ا‬
‫– دریافک ر دیها ارتال اطالعات به ر یها‬
‫نوشت فا لبا‬
‫– وان‬
‫– توقف برنامه ا ‪ /‬تقسیم بب زما پردازن ه بخ برنامه ا ‪....‬‬
‫نرم افزارهای سیستمی)‪(System Software‬‬
‫ت ستم ا عامم‬
‫ت ستم عامم ا خ برنامه ا اتک ه پس از ر شن ش کامپیوتر ارد حاف ه ‪ RAM‬می شود‪.‬‬
‫تپس بتتل را در دتک می سختد مک می ب تا برنامه ا د گر بتوانب ا را شون ‪.‬‬
‫کاربر‬
‫برنامه های‬
‫کاربردی‬
‫سیستم عامل‬
‫فاک افزار‬
‫‪5‬‬
‫چند نمونه سیستم عامل‬
• DOS
• Windows
– Windows 3.1 / DOS
– Windows 9x,ME,XP
– Windows NT, 2000, 2003
[Workstation]
[Server]
• UNIX
– Solaris
– BSD
– SVR4
• Linux
–
–
–
–
–
RedHat
SUSE
Mandrake
FreeBSD
Debian
• MAC OS
6
‫ک شبکه کامپیوتر‬
‫ارتباط چب کامپیوتر با م‬
Workstation
Workstation
Server
Workstation
Workstation
7
‫نرم افزارهای سیستمی)‪(System Software‬‬
‫برنامه ا تودمب‬
‫•‬
‫•‬
‫•‬
‫•‬
‫از برنامه ا پشت بانی کامپیوتر می باشب ‪.‬‬
‫اتتفاده از کامیپیوتر را تاده تر می بب‬
‫در م ریک کامپیوتر به کاربر مک می بب ‪.‬‬
‫در باالتر برد کارایی کار کامپیوتر مک می بب ‪.‬‬
‫مانب برنامه ا نورتو وتیلیتی ‪Norton Utilities‬‬
‫•‬
‫‪8‬‬
‫نرم افزارهای سیستمی)‪(System Software‬‬
‫متت م ا زبا‬
‫•‬
‫•‬
‫•‬
‫برا کامپیوتر فقر ‪ 0,1‬قابم درک اتک‪.‬‬
‫برا ما کار با ‪ 0,1‬دشوار ناممکن اتک‪.‬‬
‫ما ااا مقان ا ا مب ورما ااا را در قا ا ا دتا ااتورات عال ما اای زبا ااا برناما ااه‬
‫نویس ی ود بیا می بیم‬
‫کااار برنامااه ااا متاات م تبا م زبااا برنامااه نویسا ی مااورد ن اار مااا باه زبااا‬
‫قابم فبم برا کامپیوتر می باش ‪.‬‬
‫•‬
‫زبا ماشخ‬
‫‪9‬‬
‫متت م زبا‬
‫زبان برنامه نویس ی‬
‫مورد نظر ما‬
‫نرم افزارهای سیستمی)‪(System Software‬‬
‫متت م ا زبا‬
‫• د دتته لی متت م داریم‪:‬‬
‫– کامپا لر ‪Compiler‬‬
‫• کم برنامه ر د را ک ا به زبا ماشخ تر مه می ب ‪.‬‬
‫• ک برنامه مستقم قابم ا را ارا ه می د ‪.‬‬
‫– مفسر ‪Interpreter‬‬
‫• برنامه مورد ن ر را ر به ر وان ه تر مه ا را می ب ‪.‬‬
‫• برنامه مستقلی برا ا را ارا ه نمی د ‪.‬‬
‫• بلکه برا ا را مواره به برنامه مفسر نیاز اتک‪.‬‬
‫‪10‬‬
‫مثالی از اجرای یک برنامه‬
‫– مشاصات ک ماشخ فرض ی‬
‫– قا دتتورات‬
‫– قا اع اد‬
‫زبانهای برنامه نویس ی‬
‫• مسموع ااه ا از از نش ااانه ااا قواع ا دت ااتورا نملبایی ااه توت اار آنه ااا میت ااوانیم‬
‫مقان مبطور ود را با آ زبا بیا بیم‬
‫• با تر مه آ توتر متت م ا ن برنامه ود را برا ماشخ قابم فبم نما یم‪.‬‬
‫• انواع زبانها برنامه نویس ی‬
‫– زبانها تطح باال ‪High Level Language‬‬
‫• به زبا طبیعی محا ره ا ما انسانها نزد کتت ستب‬
‫• برا ما قابم درک ستب اما نه مستقیما برا کامپیوتر‬
‫• ابستگی می به فاک افزار ماشخ ا ی دارن ‪.‬‬
‫• کار با آنها(برنامه نویس ی با آنها) برا ما تاده تر اتک‬
‫• امیا طا ابی رفع طا آنها تاده تر اتک‬
‫• ترعک ا را پا خ تر دارن ‪.‬‬
‫– زبانها تطح پا خ ‪Low Level Language‬‬
‫• درتک برعکس زبانها تطح باال‬
‫‪13‬‬
‫زبانهای برنامه نویس ی سطح پایین‬
‫• به د دتته تقسیم می شون ‪:‬‬
‫– زبا ماشخ )‪(Machine Language‬‬
‫• تمام دتتورات داده ا بصورت رشته ایی از ‪ 0 , 1‬بیا م شون ‪.‬‬
‫• بطور مثال‪ :‬دتتورات زیر ( ه بک تادگی نمایش آنها می توا از مببا ‪ 16‬نخی اتتفاده رد)‬
‫]‪[91H‬‬
‫]‪[D5H‬‬
‫]‪[3FH‬‬
‫‪– 10010001‬‬
‫‪– 11010101‬‬
‫‪– 01001111‬‬
‫– زبا اتمبلی )‪(Assembly Language‬‬
‫• به ا اتتفاده از رشته ا ‪ 0,1‬از‬
‫ا کوتاه با مننی‬
‫•‬
‫• توتاار برنامااه اتاامبلر )‪ (Assembler‬ا اان دتااتورات بااه زبااا ماشااخ تر مااه ش ا ه ب ارا ا ارا ر ماشااخ مااورد ن اار‬
‫قابم اتتفاده ستب ‪.‬‬
‫‪• MOV‬‬
‫‪AX,BX‬‬
‫‪• ADD‬‬
‫‪AX,CX‬‬
‫‪• MOV‬‬
‫‪CX,DX‬‬
‫ا تمبو یک به ا آنها اتتفاده می شود‪.‬‬
‫‪14‬‬
‫‪ -2‬ا گوریتم فلوچارت‬
‫• شبا ک مسئله‬
‫– بررس ی داده ا ا منلومات( ر دیها) مسبوالت ( ر یها) افت ارتباط‬
‫مبطقی بخ داده ا مسبوالت‬
‫– مثال ‪ :‬افت مساحک ک مثلث با داشت ان ازه قاع ه ارتفاع آ‬
‫• داده ا ( ر د ) – ان ازه ارتفاع قاع ه مثلث‬
‫• مسبوالت ( ر جی) – مساحک مثلث‬
‫• رابطه مبطقی ‪ :‬ر ش محاتبه مساحک مثلث (ارتفاع ‪ x‬قاع ه ‪)2/1x‬‬
‫– اغل مسا م دارا راه حلبا گوناگونی می باشب‬
‫ابتیار تمرین از مه مبمتت تسربه بستگی دارد‪.‬‬
‫‪15‬‬
‫افت بهتت ن راه حم به‬
‫تنریف ا گوریتم‬
‫• مسموعه دتتورا نملبایی ه مراحم حم ک مسئله مشاص ب با‬
‫یژسیها ‪:‬‬
‫– با ک زبا اضح ر شن ب ابهام پیچی گی‬
‫– با ز یات کافی(از د ا را بب ه ا گوریتم)‬
‫– شر ع عملیات‬
‫– ترت ا را دتتورات‬
‫– پا ا عملیات‬
‫‪16‬‬
‫مسر ا گوریتم‬
‫• ا گوریتم ا می توانب به د نورت انسام شون‬
‫– توتر ماشخ (کامپیوتر)‬
‫• بن از تب م ش‬
‫قابم ا را ستب ‪.‬‬
‫به زبا مبات برا ماشخ بطور اتوماتیک توتر ماشخ‬
‫– توتر انسا‬
‫• برا حصول اطمیبا از عملکرد صحیح ا گوریتم گاهی ودما آ را بصورت‬
‫دتتی دنبال نموده در اقع ود مسر ا گوریتم می شویم‪.‬‬
‫‪17‬‬
‫کاربرد ا گوریتم‬
‫• مه ما در طی ر ز برا انسام کار ا ر زمره از ر ش ا گوریتمی( ا‬
‫مبطقی) اتتفاده می بیم‪.‬‬
‫– مانب مطا نه تاب‬
‫– تنویض چرخ پبسر ش ه‬
‫– پخت غذا‬
‫– پخت یک ‪....‬‬
‫• در اقع برا انسام ر ک از ا ن کار ا الزم اتک تن اد‬
‫دتتورا نملبا تاده تر را به ترت مبات ا راء رده تا به نتیسه‬
‫مطلوب برتیم‪.‬‬
‫‪18‬‬
‫مثالی از کاربرد ا گوریتم‬
‫•‬
‫تابی داریم می وا یم آنرا مطا نه نما یم برا مطا نه تاب از ابت ا تا‬
‫انتها با مراحم زیر را انسام د یم‪:‬‬
‫‪ .1‬شر ع‬
‫‪ .2‬باز رد تاب‬
‫‪ .3‬از ر ا ل شر ع به وان می بیم‬
‫‪ .4‬آ ا به انتها نفحه رتی ه ا م ا خت؟‬
‫در غخت ا بصورت به مرحله ‪ 9‬می‬
‫‪ .5‬اسر به انتها نفحه رتی ه ا م به مرحله بن‬
‫ر یم‬
‫‪ .6‬آ ا تا انتها تاب وان ه ش ه اتک ا خت؟‬
‫‪ .7‬اسر به انتها تاب رتی ه باشیم به مرحله ‪ 10‬می ر یم‬
‫‪ .8‬نفحه بن را باز رده به مرحله ‪ 3‬می ر یم‬
‫وان را ادامه می د یم به مرحله ‪ 4‬می ر یم‬
‫‪.9‬‬
‫‪ .10‬پا ا‬
‫‪19‬‬
‫چب نکته‬
‫دتتورات بیا ش ه در ا گوریتم بایستی برا مسر ا گوریتم قابم‬
‫درک باش ‪.‬‬
‫•‬
‫– بطور مثال بگام نوشت نساه توتر پزشک بیا می شود ه مثال از‬
‫ا ن شربک ‪ 1‬قاشق مربا ور ورده شود ( نه ا بکه مثال ‪ 2.5‬س ی س ی‬
‫میم شود‪ -‬ه برا ما ه مسر ا گوریتم نساه پزشک ستیم زیاد قابم‬
‫فبم ن سک!)‬
‫بگام بیا ا گوریتم بایستی تعی شود ه دتتورات ارا ه ش ه‬
‫بصورت عمومی قانونمب باش‬
‫•‬
‫– بطور مثال در ا گوریتم وان‬
‫•‬
‫•‬
‫‪20‬‬
‫وان‬
‫وان‬
‫تاب د نوع می توا بیا ا گوریتم نمود‪:‬‬
‫نفحه ا ل تپس نفحه بن تا ا بکه به انتها برتیم‪.‬‬
‫نفحه ا ل نفحه د م نفحه توم ‪.....‬‬
‫ا زا انلی ا گوریتم‬
‫ر مسا ه راه حم ا گوریتم اص ود را دارد‪.‬‬
‫می توا برا حم ک مسا ه ر شبا گوناگونی را ارا ه داد‪.‬‬
‫اما تمام ا گوریتم ا دارا ا ن ا زاء ستب ‪:‬‬
‫•‬
‫•‬
‫•‬
‫‪ .1‬نقطه شر ع‪ :‬حم مسا ه از سا آغاز می سردد‬
‫•‬
‫فقر ک نقطه شر ع در ا گوریتم حود دارد‬
‫‪ .2‬نقطه پا ا ‪ :‬ایی ه مراحم حم مسا ه پا ا می پذ رد‪.‬‬
‫•‬
‫•‬
‫به ر حال ا گوریتم بایستی در ک نقطه اتمه اب ‪.‬‬
‫می توا چب ن نقطه پا ا برا ا گوریتم داشک‪.‬‬
‫‪ .3‬دتتورا نملبا ا مالت ا رایی‬
‫‪21‬‬
‫متغخت)‪(Variable‬‬
‫•‬
‫•‬
‫به انه ا از حاف ه ه داده ا اطالعات ر د ا ر جی ا اطالعات موقک را‬
‫در ود نگه می دارد متغخت سفته می شود‪.‬‬
‫مق ار متغخت می توان در طول ا را ا گوریتم تغیخت داشته باش ‪.‬‬
‫‪0‬‬
‫‪A‬‬
‫‪11 1 00 0 01‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1 1 0 1 0 0 0 1‬‬
‫‪i‬‬
‫‪N‬‬
‫‪22‬‬
‫مثالی از ک ا گوریتم‬
‫ا گوریتم محاتبه چاپ مسموع د ع د ‪20 10‬‬
‫•‬
‫‪ .1‬شر ع‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪23‬‬
‫ع د ‪ 10‬را در انه (متغخت) ‪ A‬قرار ب ه‬
‫ع د ‪ 20‬را در انه ‪ B‬قرار ب ه‬
‫محتویات انه ا ‪ A , B‬را با م مع ن در انه ‪ C‬قرار ب ه‬
‫مق ار انه ‪ C‬را بنبوا نتیسه چاپ ن‬
‫پا ا‬
‫اتتفاده از بیا ریاض ی‬
‫مالت نوشتار طوالنی فبم ا گوریتم را‬
‫بیا ا گوریتم در قا‬
‫دشوار می تازد‪.‬‬
‫ا گوریتم محاتبه چاپ مسموع د ع د ‪20 10‬‬
‫•‬
‫•‬
‫‪ .1‬شر ع‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪24‬‬
‫‪A10‬‬
‫‪B20‬‬
‫‪C A+B‬‬
‫چاپ مق ار ‪C‬‬
‫پا ا‬
‫انواع مالت مورد اتتفاده در ا گوریتم ا‬
‫•‬
‫•‬
‫•‬
‫مالت شرطی‬
‫مالت عملیاتی ( ا محاتباتی)‬
‫مالت ر د ‪ /‬ر جی‬
‫•‬
‫مالت توضیحی‬
‫‪25‬‬
‫مثال‬
‫• ا گوریتمی ببویسی‬
‫ه اع اد ز ج د رقمی را چاپ ب ‪.‬‬
‫•‬
‫(می دانیم ه کوچکتت ن ع د ز ج د رقمی ‪ 10‬اع اد ز ج به ان ازه ‪ 2‬اح از م فانله دارن )‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫شر ع‬
‫‪J  10‬‬
‫‪ J‬را چاپ ن‬
‫‪JJ+2‬‬
‫اسر ‪ J <=98‬اتک آنگاه به مرحله ‪ 3‬بر‬
‫پا ا‬
‫‪26‬‬
‫مثال‬
‫•‬
‫ا گوریتمی ببویسی ه اع اد ز ج از ‪ 1000‬تا ‪ 2000‬را تو ی‬
‫مسموع آنها را م محاتبه ب ‪.‬‬
‫‪.1‬‬
‫شر ع‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪S 0 J  1000‬‬
‫‪ J‬را چاپ ن ‪S  S + J‬‬
‫‪JJ+2‬‬
‫اسر ‪ J <= 2000‬اتک آنگاه به مرحله ‪ 3‬بر در غخت ا بصورت مق ار ‪ S‬را چاپ ن‬
‫پا ا‬
‫‪27‬‬
‫رده‬
‫نکته‬
‫•‬
‫اسر بخوا یم مق ار حانم معی را محاتبه بیم (مانب مثال قبم‬
‫ه مسموع اع اد ز ج از ‪ 1000‬تا ‪)2000‬‬
‫–‬
‫–‬
‫–‬
‫ابت ا متغخت ( مانب ‪ )S‬در ن ر می سخت م مق ار ا یه آ را نفر می س اریم (یننی ا بکه بوز یچ‬
‫مسموعی را حساب نکرده ا م) ‪S 0‬‬
‫تپس تک تک مالتی را ه قرار اتک با م مع بیم را تو ی رده ( با مک ک متغخت د گر مثال ‪J‬‬
‫را به‬
‫در مثال قبلی) با متغخت ‪ S‬مع نموده حانم را در ‪ S‬قرار می د یم ( در اقع مق ار‬
‫حانم قبلی می افزا یم – مانب انباره) ‪S  S + J‬‬
‫در نها ک حانم مسموع در ا ن متغخت ‪ S‬قرار می سختد‪.‬‬
‫‪S‬‬
‫‪J‬‬
‫‪+‬‬
‫‪28‬‬
‫یژسیها ک ا گوریتم وب‬
‫اسر چه ک مسا ه راه حلبا مختلفی دارد مبام افت بهتت ن راه حم اتک‬
‫• سادگی‬
‫–‬
‫•‬
‫حتی االمیا تاده عار از ابهام پیچی گی باش ‪.‬‬
‫در نظر گرفتن تمام حاالت خاص‬
‫–‬
‫–‬
‫ا گوریتم بتوان در برابر حاالت شرا ر مختلف پافخ واب مباتبی ارا ه د ‪.‬‬
‫بطور مثال بگام حم مناد ه در ه د م حا تها مبفی زیر راد یال را در ن ر بگختد‪.‬‬
‫روان بودن متـن الگوریتم‬
‫•‬
‫–‬
‫دتتورا نملبا گویا بوده مب ور آنها بسادگی درک شود‪.‬‬
‫حداقل بودن تعداد دستورات و جمالت‬
‫•‬
‫‪29‬‬
‫ا ساد حلقه ا تکرار)‪(Loops‬‬
‫گاهی ا قات برا حم مسا ه با ک ا چب مرحله از دتتورات را تکرار نمود‪.‬‬
‫به مراحلی از ا گوریتم ه ا را آنها چب ن بار تکرار می شود حلقه )‪ (Loop‬ا حلقه تکرار سفته می شود‬
‫بطور لی حلقه ا تکرار از ا زا زیر تشکیم ش ه اتک‪:‬‬
‫•‬
‫•‬
‫•‬
‫–‬
‫شمارن ه حلقه )‪(Counter‬‬
‫•‬
‫•‬
‫–‬
‫گام افزایش )‪(Step‬‬
‫•‬
‫–‬
‫مق ار ا متغخت اتک ه پس از ا را دتتورات حلقه با شمارن ه حلقه مقایسه می سردد‬
‫زما پا ا ا را دتتورات حلقه را مشاص می تازد‪.‬‬
‫ب نه حلقه‬
‫•‬
‫‪30‬‬
‫مق ار‬
‫ه پس از ر بار مراحم حلقه به شمارن ه اضافه می شود‪.‬‬
‫شرط پا انی‬
‫•‬
‫–‬
‫ک متغخت میی ه پ ش از شر ع حلقه به آ مق ار ا یه داده می شود‬
‫از طریق آ می توا تن اد دفنات تکرار حلقه را نشا داد‪.‬‬
‫دتتورا نملبا‬
‫مالتی ه عملیات انلی حلقه را تشکیم می د ب ‪.‬‬
‫اتتفاده از ا گوریتم ا فرعی‬
‫مسا ه ا گوریتم آ نخی پیچی ه بزرستت وا‬
‫با بزرستت پیچی ه تر ش‬
‫ش ‪.‬‬
‫پیچی ه ش ا گوریتم چب ن مشیم بو ود می آ رد‪:‬‬
‫•‬
‫•‬
‫–‬
‫–‬
‫از ضوح ر انی ا گوریتم می کا‬
‫مبطق ا گوریتم را دشوارتر می تازد‪.‬‬
‫–‬
‫اشیال زدایی )‪ (Debug‬پی ا رد نقاط ضنف ا گوریتم را فاک تر می تازد‪.‬‬
‫برا رفع ا ن مشکالت از ا گوریتم ا فرعی اتتفاده می شود‬
‫•‬
‫–‬
‫–‬
‫‪31‬‬
‫به ا ن مننی ه ابت ا مسا ه را به تن اد بخش ا مختلف مستقم تقسیم نمود‬
‫برا ر ام ا گوریتم اگانه ا نوشک‬
‫اتتفاده از ا گوریتم ا فرعی‬
‫مثال ‪ :‬ا گوریتمی ببویسی‬
‫ه با دریافک د ع د طبیعی ‪ m,n‬مق ار‬
‫‪m‬‬
‫‪n‬‬
‫‪C‬‬
‫را محاتبه ب ‪.‬‬
‫!‪m‬‬
‫‪‬‬
‫!)‪n!(m  n‬‬
‫‪m‬‬
‫‪n‬‬
‫‪C‬‬
‫بهترین راه حل این مساله این است که‪:‬‬
‫الگوریتم فرعی برای محاسبه فاکتوریل نوشت مثال با نام )‪ Fact(z‬که با‬
‫دریافت ‪ z‬بعنوان ورودی‪ ،‬فاکتوریل آنرا محاسبه کرده و بر می گرداند‪.‬‬
‫و در برنامه اصلی از این الگوریتم اصلی استفاده نمود‪.‬‬
‫)‪A=Fact(m), B=Fact(n), C=Fact(m-n‬‬
‫)‪=A/(BxC‬‬
‫‪m‬‬
‫‪n‬‬
‫‪32‬‬
‫‪C‬‬
‫فلوچارت)‪ (Flowchart‬ا نمودار سردش ی‬
‫فلوچارت بیا تصویر ا گوریتم با مک مسموعه ا اتتان ارد از اشیال‬
‫تاده می باش‬
‫فلوچارت یی از ر شبا برقرار ارتباط مبطقی بخ مراحم مختلف حم‬
‫مسا ه اتک‪.‬‬
‫اشیال اتتان ارد مو ود‪:‬‬
‫•‬
‫•‬
‫•‬
‫دتتورات مق ار دهی‬
‫محاتباتی‬
‫خیر‬
‫تصمیم سخت‬
‫(شرط)‬
‫بله‬
‫‪33‬‬
‫دریافک داده‬
‫از ر د‬
‫چاپ داده در‬
‫ر جی‬
‫شر ع‬
‫پا ا‬
‫• فلوچارت محاسبه مجموع و میانگین سه عدد‬
‫شر ع‬
‫)‪Read(a,b,c‬‬
‫‪Sum‬‬
‫‪a+b+c‬‬
‫‪Ave‬‬
‫‪sum/3‬‬
‫‪sum,ave‬‬
‫پا ا‬
‫مثــا ‪ :‬فلوچــارتی رســم نماكهــد عــه دو عــدد از ورودر درسافــت عــرده سـ‬
‫دو عدد را با هم جابجا نمايد‪.‬‬
‫محتوســات‬
‫بــرار حــل ايــن مسـ له ‪ b , a‬را دو متغیــر عــه در آنهــا دو عــدد خوانــده‬
‫شــده‪ ،‬ق ـرار مدگیرنــد در نظــر مدگیــريم‪ .‬س ـ بــا اســتفاده از ي ـ متغیــر‬
‫عمكد محتوسات اين دو عدد را جابجا مدعنهم ‪:‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪15‬‬
‫‪12‬‬
‫‪15‬‬
‫‪12‬‬
‫‪12‬‬
‫متغیخت میی‬
‫متغیخت میی‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪12‬‬
‫‪15‬‬
‫‪15‬‬
‫‪15‬‬
‫‪12‬‬
‫‪12‬‬
‫متغیخت میی‬
‫متغیخت میی‬
‫فلوچارت مس له باال بصورت زسر خواهد بود‪:‬‬
‫‪Begin‬‬
‫)‪Read(a,b‬‬
‫کمکی‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫کمکی‬
‫‪b‬‬
‫‪a,b‬‬
‫‪End‬‬
‫مثــا ‪ :‬فلوچااارتر رتاام نما ها يااه عا دو را از ر دو در افااک ياارده فاارد ااا ز ج بااود آ‬
‫را تشاهص د ‪.‬‬
‫‪Begin‬‬
‫)‪Read(a‬‬
‫‪a mod 2‬‬
‫)’‪(‘even‬‬
‫‪R‬‬
‫‪yes‬‬
‫‪if R=0 then‬‬
‫‪No‬‬
‫)’‪(‘odd‬‬
‫‪End‬‬
‫مثا ‪ :‬فلوچا ي ر ي ااي كهااو ا ز رااوز ري ي زر زي فا‬
‫بزيگت ن روز‬
‫ير پهور ز زي خ جر چ پ نم و‪.‬‬
‫‪Begin‬‬
‫)‪Read(a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪max‬‬
‫‪yes‬‬
‫‪max‬‬
‫‪if b>max‬‬
‫‪No‬‬
‫‪max‬‬
‫‪End‬‬
‫ا ز‬
Begin
Read(a,b,c)
min
a
if b<min then
‫روز ري‬
‫ فلوچ ي ر ي ي نم ئهو‬: ‫مث‬
‫ وچكت ن روز ير فت‬، ‫ز‬
‫ي زر زي ف‬
:‫زي خ جر چ پ نم و‬
yes
min
b
No
if c<min then
No
min
End
yes
min
c
‫حلقهها‬
‫در حل بسهارر از مساكل با عملهاتد روبرو مدشوسم ‪ ،‬عه نهاز به تكرار دارند و عمل‬
‫تكرار آنها به تعداد مشخص ي انجام مدگیرد‪ .‬فرض عنهد‪ ،‬بخواههم مهانگین ‪ 100‬عدد‬
‫را محاسبه عنهم‪ ،‬در اينصورت منطقد بنظر نمدرسد عه ‪ 100‬متغیر مختلف را از‬
‫ورودر درسافت عنهم س آنها را جمع عنهم‪.‬‬
‫انواع حلقه ها‬
‫• حلقه های با تکرار مشخص‬
‫• حلقه های با تکرار نا مشخص‬
‫حلقه های با تکرار مشخص‬
‫در اين نوع حلقهها تعداد تكرار مشخص مدباشد اين حلقه از اجزاء زسر‬
‫تشكهل مدشود‪:‬‬
‫‪1‬ـ اندي حلقه‬
‫‪2‬ـ مقدار اولهه برار اندي حلقه‬
‫‪ -3‬مقدار افزاينده برار اندي حلقه (معموال ي واحد در هر مرحله)‬
‫‪4‬ـ مقدار نهايد (تعداد تكرا حلقه)‬
‫‪5‬ـ شرطد برار عنتر تعداد تكرار حلقه‬
‫ً‬
‫اين حلقهها را غالبا با فلوچارت بصورت زسر نمايش مددهند‪:‬‬
‫‪1‬‬
‫اتمام كار حلقه‬
‫‪No‬‬
‫‪i‬‬
‫‪if i<=n‬‬
‫‪yes‬‬
‫مجموعه دستورات حلقه‬
‫‪i+1‬‬
‫‪i‬‬
‫فلوچارت‬
‫شر ع‬
‫مثال‪ :‬با دریافک ‪ N‬از ر د‬
‫مسموع زیر را حساب ب ‪.‬‬
‫‪ N‬را بگخت‬
‫‪S0‬‬
‫‪S = 1+2+3+ …+N‬‬
‫‪I1‬‬
‫‪S S + I‬‬
‫تو ه‪ :‬در ا ن فلوچارت فرض ش ه اتک‬
‫ه ‪ N‬ک ع د مثبک اتک اسر‬
‫کاربر ک ع د مبفی ارد ب‬
‫فلوچارت اشتباه عمم می ب ‪.‬‬
‫(برا انالح ا ن حا ک اص‬
‫با بن از دریافک ‪ N‬مثبک بود‬
‫آ چک سردد در نورت مبفی‬
‫بود پیغام مبات چاپ سردد‬
‫‪45‬‬
‫‪II+1‬‬
‫بله‬
‫‪I <= N‬‬
‫خت‬
‫‪S‬‬
‫پا ا‬
‫مثا‬
‫شر ع‬
‫مثال‪ :‬با دریافک ‪ N‬از ر د‬
‫فا توریم آنرا محاتبه چاپ‬
‫ب ‪.‬‬
‫‪N! = 1*2*3*….*(N-1)*N‬‬
‫تو ه‪ :‬در ا ن فلوچارت نخی فرض ش ه‬
‫اتک ه ‪ N‬ک ع د مثبک اتک‬
‫اسر کاربر ک ع د مبفی ارد ب‬
‫فلوچارت اشتباه عمم می ب ‪.‬‬
‫(برا انالح ا ن حا ک اص‬
‫با بن از دریافک ‪ N‬مثبک بود‬
‫آ چک سردد در نورت مبفی‬
‫بود پیغام مبات چاپ سردد‬
‫‪46‬‬
‫‪ N‬را بگخت‬
‫‪P1‬‬
‫‪I1‬‬
‫‪PP*I‬‬
‫‪II+1‬‬
‫بله‬
‫‪I <= N‬‬
‫خت‬
‫‪P‬‬
‫پا ا‬
‫مثا‬
‫•‬
‫شر ع‬
‫ع د طبیعی ‪ N‬را دریافک ب‬
‫منخ ب ه ‪ N‬ع د ا ل‬
‫اتک ا خت؟‬
‫‪N‬‬
‫‪I2‬‬
‫‪R  N MOD I‬‬
‫تو ه‪ :‬آ ا فلوچارت ر بر برا ع د ‪2‬‬
‫درتک عمم می ب ؟؟‬
‫برا انالح فلوچارت چه با رد؟‬
‫با شرط ا بکه آ ا ا گوریتم اتمه‬
‫افته ا خت (کوچکتت بود ‪I‬از ذر‬
‫‪ N‬به ابت ا حلقه مبتقم سردد‪.‬‬
‫(قبم از محاتبه باقیمان ه)‬
‫‪47‬‬
‫بله‬
‫‪R=0‬‬
‫خت‬
‫‪ N‬ا ل ن سک‬
‫‪II+1‬‬
‫‪I< N‬‬
‫خت‬
‫‪ N‬ا ل اتک‬
‫پا ا‬
‫بله‬
‫شر ع‬
‫مثا‬
‫•‬
‫‪N‬‬
‫ع د طبیعی ‪ N‬را دریافک‬
‫ب منخ ب ه ‪N‬‬
‫ع د کامم اتک ا خت؟‬
‫‪I2‬‬
‫‪S 1‬‬
‫‪R  N MOD I‬‬
‫•‬
‫‪48‬‬
‫ع د کامم اتک ه ودش‬
‫برابر با مسموع مقسوم علیه‬
‫ا کوچکتت از ودش‬
‫باش ‪.‬‬
‫‪6  1,2,3‬‬
‫‪6 = 1+2+3‬‬
‫‪28  1,2,4,7,14‬‬
‫‪28 = 1+2+4+7+14‬‬
‫‪18  1,2,3,6,9‬‬
‫‪18 <> 1+2+3+6+9‬‬
‫بله‬
‫‪S S + I‬‬
‫‪R=0‬‬
‫خت‬
‫‪II+1‬‬
‫‪I <= N/2‬‬
‫خت‬
‫بله‬
‫‪S=N‬‬
‫خت‬
‫‪ N‬کامم اتک‬
‫‪ N‬کامم ن سک‬
‫پا ا‬
‫بله‬
‫مثا‬
‫•‬
‫شر ع‬
‫ع د طبیعی ‪ N‬را دریافک‬
‫ب مقلوب آنرا در ر جی‬
‫چاپ ب ‪.‬‬
‫‪N‬‬
‫‪R  N MOD 10‬‬
‫‪Q  N DIV 10‬‬
‫•‬
‫بطور مثال ‪:‬‬
‫‪R‬‬
‫‪9527  7259‬‬
‫بله‬
‫‪Q=0‬‬
‫خت‬
‫پا ا‬
‫‪N Q‬‬
‫‪49‬‬
‫مثا‬
‫به مک مع ا متوالی حانم ضرب د‬
‫ع د طبیعی ‪ M,N‬را ب تک آ رده چاپ‬
‫ب ‪.‬‬
‫شر ع‬
‫‪M, N‬‬
‫‪I 1‬‬
‫‪S0‬‬
‫‪M*N = M + M + …… + M‬‬
‫‪ N‬مرتبه‬
‫‪SS+M‬‬
‫‪II+1‬‬
‫‪I <= N‬‬
‫خت‬
‫‪S‬‬
‫‪50‬‬
‫پا ا‬
‫بله‬
‫مثا‬
‫شر ع‬
‫فقر با اتتفاده از مع تفریق مق ار‬
‫تقسیم ‪ M‬بر ‪ N‬را ب تک آ ری ‪.‬‬
‫‪M, N‬‬
‫‪M,N -------- Q‬‬
‫‪Q 0‬‬
‫‪25/4 ----- 0‬‬
‫خت‬
‫‪25-4 ------1‬‬
‫‪21-4 ------2‬‬
‫‪17-4 ------3‬‬
‫‪13-4 ------4‬‬
‫بله‬
‫‪ Q‬خارج قسمت‬
‫‪1 > 4 ------ NO‬‬
‫‪51‬‬
‫‪MM-N‬‬
‫‪ M‬باقی مانده‬
‫‪QQ+1‬‬
‫‪9-4 ------- 5‬‬
‫‪5-4 --------6‬‬
‫‪M >= N‬‬
‫پا ا‬
‫مثا‬
‫به مک ضربها متوالی مق ار توا ‪MN‬را ب تک‬
‫آ رده چاپ ب ‪.‬‬
‫(‪ M, N‬اع اد طبیعی می باشب )‬
‫شر ع‬
‫‪M, N‬‬
‫‪I 1‬‬
‫‪P1‬‬
‫‪MN = M * M * …… * M‬‬
‫‪PP*M‬‬
‫‪ N‬مرتبه‬
‫‪II+1‬‬
‫‪I <= N‬‬
‫خت‬
‫‪P‬‬
‫‪52‬‬
‫پا ا‬
‫بله‬
‫مثا‬
‫•‬
‫شر ع‬
‫ع د طبیعی ‪ N‬را دریافک‬
‫ب مسموع ارقام آنرا در‬
‫ر جی چاپ ب ‪.‬‬
‫‪N‬‬
‫‪S0‬‬
‫‪R  N MOD 10‬‬
‫‪Q  N DIV 10‬‬
‫•‬
‫بطور مثال ‪:‬‬
‫‪S S+R‬‬
‫‪90527  9+0+5+2+7‬‬
‫بله‬
‫‪Q=0‬‬
‫خت‬
‫‪S‬‬
‫پا ا‬
‫‪53‬‬
‫‪N Q‬‬
‫مثا‬
‫•‬
‫ع د طبیعی ‪ N‬را دریافک ب‬
‫تر زیر را ب تک آ رد‪.‬‬
‫شر ع‬
‫مق ار‬
‫‪N‬‬
‫‪S0‬‬
‫‪I 1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪‬‬
‫‪‬‬
‫‪ .......‬‬
‫‪1* 2 2 * 3 3 * 4‬‬
‫)‪N ( N  1‬‬
‫‪S‬‬
‫‪1‬‬
‫)‪I ( I  1‬‬
‫‪S S‬‬
‫‪I I + 1‬‬
‫‪I<= N‬‬
‫خت‬
‫‪S‬‬
‫‪54‬‬
‫پا ا‬
‫بله‬
‫مثا‬
‫•‬
‫ع د طبیعی ‪ N‬را دریافک ب‬
‫تر زیر را ب تک آ رد‪.‬‬
‫شر ع‬
‫مق ار‬
‫‪N‬‬
‫‪S0‬‬
‫‪K  +1‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪N 2‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ .......‬‬
‫‪1* 2 2 * 3 3 * 4 4 * 5‬‬
‫)‪N ( N  1‬‬
‫‪I 1‬‬
‫‪S‬‬
‫‪I 2‬‬
‫)‪I ( I  1‬‬
‫*‪S S K‬‬
‫‪I I + 1‬‬
‫‪K-K‬‬
‫‪I<= N‬‬
‫خت‬
‫‪S‬‬
‫‪55‬‬
‫پا ا‬
‫بله‬