اصول کامپیوتر ۱ هسازی مبانی کامپیوتر و برنام»جلس هی پنجم«دانشکد هی علوم ریاضی - دانشگاه شهید بهشتی مسال اول ۱۳۸۹-۹۰ نی نفروش مدرس : سید علی کتا نفروش گردآوری و تألیف : سید علی کتا 1 حق هر نوع استفاده متعلق به پدیدآورنده است.
الگوریتم و فلوچارت یادآوری الگوریتم شیو های برای حل مسأله است که در آن مراحل رسیدن به جواب در قالب دستوراتی بدون ابهام با جزئیات کافی تشریح شده است. علوه بر اینکه الگوریتم حل یک مسأله باید طی تعداد گا مهای متناهی پایان پذیرد. یابهام باشند. ل دقیق و ب دستورات برای اجراکنند هی الگوریتم باید کام الگوریتم حل یک مسئله مستقل از داد هی ورودی و در حالت کلی باید نپذیر بودن یک الگوریتم یک اثبات ریاضی اصو ل برای نشان دادن پایا نپذیر باشد. پایا مورد نیاز است. 2
الگوریتم و فلوچارت مقدار جزئیات ضروری در تشریح دستورات یک الگوریتم کمابیش به شخص نهای طبیعی مثل فارسی یا انگلیسی یتوان به زبا از این رو یک الگوریتم را م اجراکنند هی الگوریتم بستگی دارد. یا در قالب نمودارهایی مثل فلوچارت نهای برنام هنویسی مثل BASIC یا ASSEMBLY یا به زبا و یا شب هکد ) (pseudo code یک زبان برنام هنویسی بیان کرد. با وجود این در تمامی موارد فوق تفکیک مراحل به صورت گا مهای مستقل از مگیری ضروری تهای تصمی هم تعیین دقیق مراحل اجرا و تعیین دقیق حال است. 3
نمودار گردشی Flowchart نمودار گردشی ابزاری برای نمایش دستورات و روال اجرای مراحل الگوریتم است. هر فلوچارت شامل تعدادی جعبه ) (box و خطوطی است که مسیر اجرای جعب هها بر حسب اینکه دستورات داخلشان از چه نوعی باشد با اشکال هندسی یدهند. الگوریتم بین جعب هها را نشان م یشوند. متفاوتی نشان داده م 4
5
هی مثال. الگوریتم محاسب! n و فلوچارت آن ورودی. عدد صحیح و نامنفی.N گام.۱ قرار ده M 1 و.F 1 گام.۲ قرار ده.F F*M گام.۳ اگر M=N آنگاه به گام ۴ برو در غیر اینصورت قرار ده M M+1 و به گام ۲ برگرد. گام F.۴ را به عنوان نتیجه چاپ کن. گام.۵ پایان. 6
تها اشکال قراردادی برای طراحی فلوچار عملیات بر روی متغیرها آغاز / پایان هی عملیات ادام در / n از n n n ورودی / خروجی داد هها لکنند هها )مسیر اجرای الگوریتم( متص مگیری تصمی 7
تها اشکال قراردادی برای طراحی فلوچار 8
متغیرها Variables یادآوری یک متغیر در ریاضیات نمایند هی هر مقدار یا هر عضو دلخواه یک مجموعه است. در هر الگوریتم یا برنامه از متغیرها برای تعریف مقادیر ورودی و یکنیم. نگهداری نتایج در حین اجرا و نمایش نتیج هی نهایی استفاده م 9
متغیرها Variables یادآوری یک متغیر در کامپیوتر نمادی برای نامگذاری قسمتی از حافظه است یخوانیم و یا مقادیر که در حین محاسبات مقادیر داده را از آن م ینویسیم. جدیدی در آن م نهای محاسبه انواعی از حافظه را در فرآیندهای محاسباتی خود ماشی یگیرند که دارای ویژگی تغییرپذیری ) (mutability باشند بکار م یعنی نوشتن هر مقدار جدید در حافظه باعث از بین رفتن مقدار قبلی و یشود. جایگزین شدن آن با مقدار جدید م 10
متغیرها Variables یادآوری یشود تنها به معنای برابر تساوی در ریاضیات که با نماد = نشان داده م بودن ارزش دو طرف تساوی است. بنابراین 5 x 2=8 x=2 a b 2 =a 2 2 a b b 2 m=m 1 0=1 contradiction 11
متغیرها Variables یادآوری مها نماد = به معنای قرار دادن مقدار عبارت سمت راست در الگوریت در متغیر سمت چپ است. بنابراین m m 3 2 Error 12 m = 2 m = m + 1 5 * x - 2 = 8
تدهی Assignment نسب تدهی دستورالعملی است که توسط آن مقدار ذخیره شده در یک نسب یکنیم. متغیر را با مقدار دیگری جایگزین م بهتر است بجای = از نماد تدهی استفاده کنیم. مثل x 2 برای نشان دادن عملیات نسب x 2 تدهی نهای برنام هنویسی نیز از نماد دیگری بجز = برای نسب برخی زبا یشود مثل x:=2 ل در پاسکال از = : استفاده م یکنند. مث استفاده م 13
ورودی - محاسبه - نتیجه START مثال. محاسب هی مساحت دایره بازای شعاع داده شده. ورودی. عدد حقیقی.r INPUT r گام.۱ قرار ده S π r2 گام S.۲ را به عنوان نتیجه چاپ کن. S π r2 گام.۳ پایان. PRINT S END 14
یفهمید توجه کنید که π همانطور که شما معنای آنرا م نمادی قراردادی در ریاضیات است که نسبت محیط به قطر یدهد. دایره را نشان م ورودی. عدد حقیقی.r START INPUT r گام.۱ قرار ده S π r2 گام S.۲ را به عنوان نتیجه چاپ کن. S π r2 گام.۳ پایان. بدیهی است وقتی این الگوریتم را با یک زبان برنام هنویسی PRINT S یکنیم باید π را با نزدیکترین عدد اعشاری پیاد هسازی م قابل نمایش در کامپیوتر به این عدد جایگزین کنیم. 15 END
ورودی - محاسبه - نتیجه START مثال. تبدیل درجه حرارت از مقیاس فارنهایت به سلسیوس INPUT F ورودی. درجه حرارت در مقیاس فارنهایت عدد حقیقی.F C (F-32)/1.8 گام.۱ قرار ده C (F-32)/1.8 گام C.۲ را به عنوان نتیجه چاپ کن. PRINT C گام.۳ پایان. END 16
ورودی - محاسبه - نتیجه START مثال. محاسب هی مقلوب عدد دو رقمی. 54 >= N=45 ورودی. عدد دو رقمی مثبت.N گام.۱ قرار ده ] a [ N /10 گام.۲ قرار ده b N 10 a گام.۳ قرار ده M 10 b a INPUT N ] a [N/10 b N-10a M 10b+a PRINT M گام M.۴ را به عنوان نتیجه چاپ کن. گام.۵ پایان. 17 END
ورودی - محاسبه - نتیجه خروجی الگوریتم فوق به ازای N=10 چیست START INPUT N ] a [N/10 b N-10a اگر بخواهیم نتیجه به صورت 01 چاپ شود یتوان الگوریتم را به صورت روبرو تغییر داد. م PRINT b,a END 18
مثال. به طور متعارف دو شیوه برای نمایش مختصات دقیق نقاط بر روی کر هی زمین وجود دارد. در روش اول طول و عرض جغرافیائی بر حسب درجه و به صورت یشود. یک عدد اعشاری نمایش داده م در روش دوم هر یک از مختص هها به صورت س هتائی درجه دقیقه و یشوند که در آن درجه و دقیقه اعداد صحیح و ثانیه عدد ثانیه نوشته م اعشاری است. 19
20
21
ورودی - محاسبه - نتیجه مثال. نمایش مقدار زاویه بر حسب درجه دقیقه و ثانیه. هر یک درجه معادل ۶۰ دقیقه و هر یک دقیقه معادل ۶۰ ثانیه است. ل 45.21 درجه برابر است با " 45 12' 36 مث و 45.25 درجه برابر است با " 45 15' 0 22
مثال. ورودی - محاسبه - نتیجه START نمایش مقدار زاوی های بر حسب درجه دقیقه و ثانیه. ورودی. عدد حقیقی مثبت.x گام.۱ قرار ده ] deg [ x گام.۲ قرار ده r 60 x deg گام.۳ قرار ده ] min [r گام.۴ قرار ده sec 60 r min گام deg,min,sec.۵ را چاپ کن. گام.۶ پایان. 23 INPUT x ] deg [x ) r 60*(x-deg ] min [r ) sec 60*(r-min PRINT deg,min,sec END
مثال. ورودی - محاسبه - نتیجه تبدیل درجه دقیقه و ثانیه به درج هی اعشاری. START INPUT d,m,s ورودی. اعداد صحیح نامنفی d و m و عدد حقیقی مثبت.s x d+m/60+s/3600 گام.۱ قرار ده x d m/60 s/ 3600 گام x.۲ را چاپ کن. گام.۳ پایان. 24 PRINT x END