صفحه 1:
فصل ۱ لكيييتمها ‎Algorithm‏ هدفهاي كلي كل مسئله و ارائه الگوریتم شناخت اجزاء لازم برای حل ه ‎ale‏ بررسی صحت الگوریتم

صفحه 2:
:دانشجو يس از مطالعه اين فصل بايد بتواند 8 الگوریتمی را برای حل مسئله ارائه دهد. ‎a‏ الگوریتم های مختلف بای یک مسئله را مقایسه کند. . ‏شرط ها و حلقه ها را در الگوریتم بکار ببرد‎ a

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

صفحه 4:
* تعریف الگوریتم الگوریتم مجموعه‌ای از دستورالعمل ها. برای حل مسئله می‌باشد که شرایط زیر را باید دارا باشد: * دقیق باشد * جزئیات کامل حل مسئله را داشته باشد. “بايا يذير باشد.

صفحه 5:
مراحل الكوريتم ** براى حل یک مست آن مسئله باید الگوریتم آن مسئله را مشب : 98 حا طراحی الگوریتم براى أن مسئله و سا سس ۱ ‎١ -‏ يده مى شود. د ریتم معمولا سه مرحله زیر را از هم جدا می‌کنند: اق *خواندن داده‌ها ۴انجام محاسبات *خروجی‌ها

صفحه 6:
0 شروع ۵-۱, ۲ را بخوان. ۲-مجموع 2 , 0 را محاسبه و در 51110 قرار بده. ۳- 91110 را در خروجی جاب كن ۴- پایان

صفحه 7:
شروع ‎١‏ سه عدد از ورودى بخوان ‏۲- مجموع ‎dw‏ عدد را محاسبه و در 5111311 قرار بده. ۳- 91110 را بر سه تقسیم کرده.در 2۷6 قرار بده. *- 51117 , 2۷6 را در خروجی ‎oe‏ کن. ‏و بان

صفحه 8:
وت ری ‎Be‏ *علامت‌های شروع و پایان: که معمولا از یک بیضی استفاده می‌کنند: *علامتهای ورودی و خروجی: که معمولا از متوازی‌الاضلاع استفاده می‌شود:

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

صفحه 10:
* فلوچارت مجموع سه عدد 9 Read(a,b,c) Sum < atb+c Ave < sum/3 3 Write(sum,ave) 2 End) ‏هته‎

صفحه 11:
جارتى رسم نمائيد كه دو عا ودی دریاا سپس محتویات دو عدد را با هم جابجا نماید. راى حل اين مسئله 2 , 0 را دو متغیر که در آنها دو عدد خوانده شده. فرار می گیرند در نظر می‌گیریم. سپس با استفاده از یک متفیر کمکی محتويات اين دو عدد را جابجا مى كنيم :

صفحه 12:
9 emp

صفحه 13:

صفحه 14:
EE EE EEE EE ‏موممئي‎ ‎** ‏تمرين‎ ‎١‏ فلوجارتى رسم نمائيد كه طول و عرض مستطيل را از ورودى دريافت كوه امنصط بو عسات آلر| مساسيهى حاب ‎iS‏ ‏۲- فلوچارتی رسم نمائید که شعاع دایره‌ای را از ورودی دریافت کرده. محيط و مساحت انرا محاسبه و جاب نماید. ‏فلوجارتى رسم كنيد كه سه عدد :2151 ,56601201 , 111130 را از و بافت كرده. محتويات انها را جابجا نموده. حاصل را در خروجى ع كيد

صفحه 15:
6- فلوجارتی رسم نمائید که دو عدد از ورودی دریافت کرده. سپس ‎BSS gloss pasha Sealy yaw yas gL se‏ ۵- فلوچارتی رسم نمائید که عددی (درجه حرارت برحسب سانتیگراد) را از ورودى دریافت کرده سپس آنرا به درجه فارنهایت تبدیل کند.

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

صفحه 17:
NO ‏عمل يا اعمال بعدى‎

صفحه 18:
مثال : فلوچارتی رسم نمائید که عددی را از ورودی زوج بودن آن را تشخیص دهد. ‎in)‏ Write(‘odd’) ۳

صفحه 19:

صفحه 20:
‎min<— b‏ سس و موس ‎No =‏ ‎[ia‏ | رون موي سس و ‎ ‎ ‎ ‎

صفحه 21:

صفحه 22:
ب ب ب <ج ب ب << 1۳11[ تمرين ** ‎-١‏ فلوجارتى رسم كنيد كه عددى را از ورودى دريافت كرده. قدر مطلق عدد را در خروجی چاپ ‎AS‏ ‏۲- فلوچارتی رسم نمائید که عددی از ورودی دریافت کرده مثبت. منفی یا صفر بودن عدد را تشخیص داده, در خروجی با پیغام مناسب ‏چا کت ‏۳- فلوچارتی رسم نمائید که عددی را از ورودی دریافت کرده. بخشپذیری آن پر ۳ و ۵ را پررسی نماید. ‏فلوچارتی رسم نمائید که ضرایب یک معادله درجه دوم را از ورودی دریافت کرده ریشه‌های آن را محاسبه در خروجی چاپ کند.

صفحه 23:
EEE EEE << << "> fe bail در حل بسیاری از مسائل با عملیاتی روبرو می‌شویم . که نیاز به تکرار دارند و عمل تکرار آنها به تعداد مشخصی انجام می‌گیرد. فرض ‎AES‏ ‏بخواهیم ميانكين ۰ عدد را محاسبه کنیم. در اینصورت منطقی بنظر نمی‌رسد که ۰ متغیر مختلف را از ورودی دریافت کنیم سپس آنها ر حت ع

صفحه 24:
*حلقه های با تکرار مشخص *؟حلقه های با تکرار نا مشخص

صفحه 25:
در اين نوع حلقه‌ها تعداد تکرار مشخص می‌باشد این حلقه از اجزاء زیر تشکیل می‌شود: ۱- اندیس حلقه ۲- مقدار اولیه برای انديس حلقه ۳- مقدار افزاینده براى انديس حلقه (معمولا یک واحد در هر مرحله) 4- مقدار نهایی (تعداد تکرا حلقه) ۵- شرطی برای کنترل تعداد تکرار حلقه

صفحه 26:

صفحه 27:

صفحه 28:

صفحه 29:
aie 1 ‏هه‎ ۰099 ۶ |" ۵۵60 ‏ه‎ |o >0 0 © © هو -

صفحه 30:
مثال : فلوجارتى رسم كنيد كه 2 عدد از ورودی دریافت کرده. بزرگترین مقدار از بین 2 عدد را بيدا كيده در خروجى جاب نمايد. انديس حلقه ‎i‏ بزرگترین مقدار ‎Max‏

صفحه 31:

صفحه 32:

صفحه 33:
write(pow) yes pow <— pow*x (=) ‏حلقه‎ i< 1

صفحه 34:
۱ ۲ (در پاسکال به حلقه مقط مشهورند.) ر این حلقه‌ها با توجه به ورودی. تعداد تکرار مشخص می‌شود. و دقیقاً نمی توان تعداد تکرار حلقه را بدون ورودی معین کرد. اين حلقه ها فقط شامل شرطی هستند که تا زمانیکه برفرار باشد حلقه اجرا می‌شود.

صفحه 35:
No محموعه دستورالعملها و جاگزینها

صفحه 36:
مثال: فلوچارتی رسم کنید که عددی را از ورودی دریافت کرده سپس تعداد ارقام آن را شمرده در خروجی چاپ نماید. ؟عدد خوانده شده ‎N‏ ؟ تعداد ارقام ‎count‏

صفحه 37:
Begin count g 0 if N>0 then yes N <—Ndiv10 count < count+1

صفحه 38:
در حالت کلی جملات سری بصورت: عدد خوانده شده جمله اول سری جمله دوم سری جمله سوم سری 2 كل 025 a

صفحه 39:

صفحه 40:
‎EE << << ">‏ لل هه ‎are ‏فلوجارتی رسم نمائید که عددی از ورودی دریافت کرده. كامل بودن‎ -۱ ‏آنرا بررسى نماید. (عدد کامل. عددی است که مجموع مقسوم‌علیه‌های‎ ‏آن با خودش برابر باشد.)‎ ‏۲- فلوچارتی رسم کنید كه ا را از ورودی دریافت کرده ا جمله سری فیبوناچی را تولید نماید. ‏۳ فلوچارتی رسم نمائید که دو عدد ]1۷ , لا را از ورودی خوانده. بزرگترین مقسوم‌علیه مشترک دو عدد را محاسبه و چاپ کند.

صفحه 41:
6, حلقه‌هاي تودرتو * الكوريتمهايى كه تا حال بكار برديم. فقط شامل یک حلقه بودند. در صورتى كه در بسيارى از مسائل ممكن است نياز به استفاده از جند حلقه در داخل هم باشيم. در اين نوع حلقه‌ها باید دقت بیشتری به خرج دهيم. تا مشکلی پیش نیاید. اگر از حلقه‌های نوع اول بصورت تودرتو استفاده کنیم در اینصورت برای هر حلقه شرط نهایی و انديس اوليه جداگانه باید تعریف کنیم .

صفحه 42:
مقدار نهایی خود تکرار می‌شود. در کل اگر حلقه اولیه 12 بار تکرار شود و حلقه داخلی 321 بار. در ایتصورت کل حلقه : nxm بار تکرار خواهد شد.

صفحه 43:

صفحه 44:
= سرى 59 محاسبه نماید: ‎x‏ للىيى... + ۳ وت * اندیس حلقه اول 1 * وریدی لا * محاسبه فاکتوریل ‎fact‏ * انديس حلقه داخلى ل * مجموع ‎Sum‏

صفحه 45:
cn ‏سپ‎

صفحه 46:
>" << ااا تمرینات آخر فصل * ۱- فلوچارتی رسم نمائید که آل عدد از ورودی دریافت کرده تعداد اعداد اول و کامل را شمرده در خروجی چاپ نماید. - فلوچارتی رسم نمائید که 26 , ۷[ را از ورودی خوانده مقدار سری یر را محاسبه کند: ‎Ss‏ برچ شاد + +1- 5

صفحه 47:
‎ere‏ 17 201ص 6 فلوجارتى رسم كنيد كه تاريخ تولد شخصى را از ورودى خوانده. ‏سن شخص را با تاريخ روزء محاسبه نموده در خروجى جاب كند. ‏۵- فلوچارتی رسم نمائيد که (10<10) ۷], لا را از ورودى دريافت کرده سری فیبوناچی بین ]۷[, ۷[ را توليد كرده. در خروجى جاب كنا

صفحه 48:
کاربرد آرایه ها در الگوریتم ها هدفهاي كلي شناخت آرایه ها و مفهوم آن شناخت الگوریتم های لازم برای جستجو و مرتب سازی مقایسه انواع روش های جستجو با هم

صفحه 49:
:دانشجو يس از مطالعه اين فصل بايد بتواند "ذا از آرایه ها در حل مسئله استفاده کند . 8 بااستفاده از ارایه ها لیستی را مرتب نماید . در صورت لزوم در لیستی جستجو انجام دهد .

صفحه 50:
فرض کنید بخواهیم اطلاعات ۱۰۰ کارمند را از ورودی بخوانیم و سپس آنها را مرتب کنیم. در اینصورت باید ورودیها در جایی از حافظه ذخيره کنیم. در زبانهای برنامه‌نویسی معمولا از آرایه برای ذخیره اطلاعات در حافظه استفاده می‌کنند. در آرایه‌ها ما با توحه به تعداد ورودیها. طول آن را مشخص می‌کنیم. سپس داده‌ها را خوانده در آن قرار مى دهيم

صفحه 51:
EEE EEE << << "> ** ‏تعريف آرايه‎ خانه‌های پشت سر هم از حافظه كه همنوع بوده و توسط يك اسم معرفى می‌شوند. ارایه نام دارد. نحوه دسترسی په هر یک از اعضاء آرایه از طریق اندیس آرایه امکانپذیر است . برای تعریف آرایه ابتدا طول آرایه که در حقیقت تعداد خانه‌های آن را مشخص می‌کند. معین می‌کنیم. سپس نوع خانه‌ها باید معین شوند. در فلوچارت‌ها آرایه‌ها را بصورت زير نمایش می‌دهیم: ‎Name[ 1 .. Length [‏ طول آرایه اسم آرايه

صفحه 52:
زير مى باشد: a{1..100] Read(ali]) 10

صفحه 53:
Nam [ inde انديس آرايه اسم آرايه مثال: فلوجارتى رسم كنيد كه يى آرايه حداكثر ‎٠٠١‏ عنصری را از ورودی دريافت كرده. سيس آن را خروجى نمايش دهد.

صفحه 54:

صفحه 55:
a[1..20] i<1 ali] <— Nmod2 ‏و و‎ No 1 1 ‏1ه‎ 3 N <— Ndiv2

صفحه 56:
مثال : فلوچارتی رسم نمائید که عددی از ورودی دریافت کرده سپس اعداد اول قبل از آن را تولید نموده . در یک آرایه قرار دهد. [2]1..100 1 حه 1 A Read(N) 7 | ke ‘alt |< 2 a[2] <— 1

صفحه 57:

صفحه 58:
‎EEE EEE << << ">‏ ( جد له اعد ) جستجو و مرتب سازي ی ‏یکی از مسائلی که در بحث طراحی الگوریتم بسیار مهم است. بحث مرتب‌سازی و جستجو می‌باشد. منظور از جستجو اینست که یک مقداری را از یک لیست جستجو کنیم و منظور از مرتب‌سازی اینست که یک لیست مرتب از داده‌ها را تولید کنیم. ‏برای جستجو و مرتب‌سازی الگوریتم‌های مختلفی وجود دارد در زیر الگوریتم‌های اولیه. برای جستجو و مرتب‌سازی را بررسی می‌کنیم.

صفحه 59:
دو الگوریتم زير غالبا برای جستجو بکار می‌روند:

صفحه 60:
مين نیب دوي لین با اولي 4 تر تیب به عبا جستجو را د د > زر م ات 7و ىو حستجو: ‎mae‏ شد بيدا جستحو )= >> مود عنصر ‎Lie‏ ‏می سب يسه مقاد يه آراب عنصر 9 می‌دهیم, ‎oo‏ ‎ales‏ ‏آن را اندیس

صفحه 61:
Read(x) if (i<=N) and (flag=0)

صفحه 62:
در جستجوی دودوئی . لیست مورد جستجو مرتب می‌باشد. لذا برای جستجو اعمال زیر انجام می‌شود: ۱- عنصر ۲ با عنصر وسط آرايه كه انديس آن برابر middle (low+high)/2 مقایسه می‌شود.

صفحه 63:
tol 9 1 8 559 3 0 د ۱ ليست قرار دارد. لذا آرايه با انديسء جد يد در نظ ر كرفته می‌شود و قسمت پایین لیست از فضاى جستجو حذف مىشود. السك اذى ۳-اگر 2 از عنصر وسط آرایه بزرگتر باشد قسمت بالای لیست حذف می‌شود و فضای جستجو, قسمت پایین آرایه خواهد بود. ۶- اگر 2 برابر عنصر وسط باشد عمل جستجو خاتمه می‌پذیرد.

صفحه 64:
مرتب‌سازی بحث بعدی این فصل می‌باشد. برای مرتب کردن داده‌ها نیز / - الگوریتم‌های مختلفی وجود دارد. که هر کدام مزایا و معایب خاص خود را دارد. بحث مقصل در این مورد را به فصل‌های بعد واگذار می‌کنيم.

صفحه 65:
EE EE EEE EE ‏موممئي‎ ‎** ‏تمرین‎ *فلوچارتی رسم نمائید که عددی از ورودی دریافت کرده اعداد کامل قبل از خود را تولید و در یک آرایه قرار دهد. *فلوچارتی رسم نمائید که یک آرایه حداکثر ۱۰۰ عنصری از ورودی دریافت کرده عناصری از آن که اول هستند را با صفر کردن حذف نماید. *فلوچارتی رسم نمائید که یک عدد حداکثر ۲۰ رقمی را توسط آرایه‌ای از ورودی دریافت نماید. سپس یک عدد تک رقمی را از ورودی خوانده در عدد ۲۰ رقمی ضرب نموده, حاصل را در خروجی چاپ نماید.

صفحه 66:
هدفهاي كلي شناخت كامبيوترهاى نسل قديم و امروزى شناخت سخت‌افزارهای لازم برای کامپیوترهای شخصی بررسی نرم‌افزارها و انواع آن

صفحه 67:
:دانشجو پس از مطالعه این فصل بايد بتواند کامپیوترهای نسل جدید را با کامپیوترهای نسل قدیم مقایسه کند. سخت‌افزارهای لازم برای کامپیوترهای شخصی را بشناسد. انواع حافظه مزایا و معایب آنها را شناخته و با هم مقایسه نماید. سیستم عامل و انواع آن را مقایسه نماید. نرم‌افزار و زبانهای برنامه‌نویسی را تعریف ‎AS‏

صفحه 68:
‎EE << << ">‏ * کامپیوترهای قدیمی ‏اولین کامپیوتر بزرگ ‎aoe (Super Computer)‏ منظوره دیجیتال ‏الکترونیک. تحت عنوان ۳1/67 در سال ۱۹۶۲ میلادی در دانشگاه ينسيلوانيا ساخته شد. اين کامپیوتر با سرمایه ارتش آمریکا طراحی شد. وزن این کامپیوتر ۳۰ تن و ابعاد آن ۳۰-۵۰ فوت بود. این کامپیوتر برای محاسبه جدول پرتابه‌ها؛ پیش‌گویی وضع آب و هوا و محاسبات انرژی اتمی بکار می‌رفت. ‏سو

صفحه 69:
در کامپیوترهای اولیه از لامپهای خلاء بعنوان عنصر الکترونیکی پایه استفاده می‌کردند. در این ماشین‌ها ۱۹۰۰۰ لامپ خلاء استفاده شده بود و برای انرژی مصرفی لامپ‌ها و همچنین دستگاههای تهویه و انرژی الکتریکی مصرف 1960 رروا خنک کننده ماشین حدود می‌شد. این ماشین‌ها دارای حجم زیادی بودند و سطحی را معادل ۵ مترمربع اشغال می‌کردند. این کامپیوترها به کامپیوترهای نسل ول معزورف تن

صفحه 70:
کامپیوترهای امروزی با بکارگیری ریزپردازنده به کامپیوترهای نسل چهارم معروفند. البته نسل‌های جدید دیگر کامپیوترها نیز «به بازار ارائه می‌شود در کامپیوترهای امروزی سرعت پردازش ‎We shes‏ اجزاء سخت‌افزاری بسیار کوچک. حجم حافظه بالا و غییه .آنها را از نسل های دیگر متمایز می‌سازد

صفحه 71:
: اجزاء تشکیل دهنده کامپیوتر عبار تند از * سخت افزار 3 نرم افزار

صفحه 72:
Input ورود

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

صفحه 74:
* فرم افزار نرم‌افزار یکی از بخش‌های اساسی کامپیوتر به شمار می‌آید. که در واقع سخت‌افزار را بکار می‌گیرد. بعبارت دیگر رابط بین کاربر و سخت‌افزار را نرم‌افزار می‌نامند. نرم‌افزار در حقیقت روح و جان یک کامپیوتر است. که به سخت‌افزار هویت می‌بخشد.

صفحه 75:
‎im ۰‏ عامل ‎(COG: Opercity Gystew)‏ مشهورترین نوع نرم‌افزارهای سیستمی می‌باشد. که مدیریت منابع سیستمی را بر عهده دارد. سیستم‌عامل, همچنین ارتباط بين كاربر و اجزاء سخت‌افزاری و نرم‌افزاری دیگر را برقرار می‌کند.

صفحه 76:

صفحه 77:
‎EEE EEE << << ">‏ زبانهاي بر نامه‌نويسي * ‏نرم‌افزارها توسط زبانهای برنامه‌نویسی نوشته می‌شوند. زبانهای برنامه‌نویسی یک سیستم ارتباطی هستند که توسط آنها می‌توان .دستورات لازم را به ماشین انتقال داد ‏هرزبان برنامهنويسى به مجموعهأى از علايم؛ قواعد و دستورالعملها كفته مىشود كه امكان ارتباط با كامييوتر را جهت بیان کاری یا حل مسئله‌ای فراهم می‌کند

صفحه 78:

صفحه 79:
كامبايلر برنامه نوشته در يك زبان سطح بالا را به برنامه مقصد تبديل رسو Source program

صفحه 80:
Pascal gb; # در این کتاب زبان پاسکال ‎os 5 Sie! cle (Pascal)‏ برنامه‌ها انتخاب کردیم. اين زبان که به افتخار بلز پاسکال دانشمند فرانسوی قرن هفدهم میلادی. پاسکال نامگذاری شده است. در اواخر سال ۱۹۱۰ و اوایل ۱۹۷۰ توسط پروفسور نیکلاس ویژت در انستیتو فنی فدرال سوئیس مطرح گردید

فصل 1 ا لگوریتم ها Algorithm هدفهاي كلي شناخت حل مسئله و ارائه الگوریتم شناخت اجزاء الزم برای حل مسئله بررسی صحت الگوریتم هدفهاي رفتاري :دانشجو پس از مطالعه اين فصل بايد بتواند ‏ الگوریتمی را برای حل مسئله ارائه دهد. ‏ الگوریتم های مختلف بر0ای یک مسئله را مقایسه کند. ‏ شرط ها و حلقه ها را در الگوریتم بکار ببرد . مقدمه در زندگي روزمره ،انسان با مسائل مختلفي روبروست و براي هر كدام از اين مسائل (حل مشكالت) راه حلي و روشي را بر مي‌گزيند. مسائلی از قبيل راه رفتن ،غذا خوردن ،خوابيدن و غيره كه بشر تقريب ًا هر روز آنها را پيش روي خود دارد. همه اين مسائل نياز به روشي براي حل كردن دارند مثال راه رفتن بايد با ترتيب خاصي و مراحل معيني انجام شود .تا مسئله راه رفتن بر0اي بشر 0حل شود .اصطالح ًا روش انجام كار يا حل مسئله را الگوريتم آن مسئله مي‌نامند تعريف الگوريتم الگوريتم مجموعه‌اي از دستورالعمل ها ،براي حل مسئله مي‌باشد كه شرايط زير را بايد دارا باشد: • دقيق باشد • جزئيات كامل حل مسئله را داشته باشد. پايانپذير باشد. • ‌ مراحل الگوريتم  براي حل يك مسئله بايد الگوريتم آن مسئله را مشخص كنيم (يا بيابيم) .كه اصطالحاً طراحي الگوريتم براي آن مسئله ناميده مي‌شود .در طراحي الگوريتم معموالً سه مرحله زير /را از هم جدا مي‌كنند: •خواندن داده‌ها •انجام محاسبات • خروجيها ‌ مثال :الگوريتمي بنويسيد كه دو عدد از ورودي دريافت كرده مجموع دو عدد را محاسبه و چاپ نمايد. خروجي‌ها مجموع دو عدد انجام محاسبات جمع دو عدد وروديها ‏a , b 0ـ شروع 1ـ b ,aرا بخوان. 2ـ مجموع b , aرا محاسبه و در sumقرار بده. 3ـ sumرا در خروجي چاپ كن 4ـ پايان مثال :الگوريتمي بنويسيد كه سه عدد از ورودي دريافت كرده مجموع و ميانگين .سه عدد را محاسبه و چاپ كند ‏c چاپ مجموع چاپ ميانگين خروجيها ‌ محاسبه مجموع محاسبه ميانگين انجام محاسبات ‏a ‏b وروديها 0ـ شروع 1ـ سه عدد از ورودي بخوان 2ـ مجموع سه عدد را محاسبه و در sumقرار بده. 3ـ sumرا بر سه تقسيم كرده،در aveقرار بده. 4ـ ave , sumرا در خروجي چاپ كن. 5ـ پايان. معموال درك يك الگوريتم با شكل راحتر از نوشتن آن بصورت متن ميباشد .لذا الگوريتم را با فلوچارت( ) flowchartنمايش مي‌دهند. ‌ فلوچارت از شكل‌هاي زير تشكيل مي‌شود. ‏ عالمتهاي شروع و پايان :كه معموال از يك بيضي استفاده مي‌كنند: ‌ ‏End ‏Begin ‏عالمتهاي ورودي و خروجي :كه معموال از متوازي‌االضالع استفاده مي‌شود: چاپ کردن ‏write خواندن یا ‏Read عالمتهاي محاسباتي و جايگزيـني :براي نمايش دستورات جايگزيني و محاسباتي از مستطيل استفاده مي‌كنند: جایگزین یا محاسبات •عالمت شرط :براي نمايش شرط از لوزي استفاده مي‌شود. شكلهاي مختلف بهم 0از فلش‌هاي ‌ •عالمت اتصال :براي اتصال جهتدار استفاده مي‌كنند. ‌ • فلوچارت مجموع سه عدد Begin Read(a,b,c) Sum a+b+c Ave sum/3 Write(sum,ave) End مثال :فلوچارتی رسم نمائيد كه دو عدد از ورودي دريافت كرده سپس محتويات دو عدد را با هم جابجا ‌نمايد. راي حل اين مسئله b , aرا دو متغير كه در آنها دو عدد خوانده شده، قرار مي‌گيرند در نظر مي‌گيريم .سپس با استفاده از يك متغير كمكي محتويات اين دو عدد را جابجا مي‌كنيم : a temp 12 b a b 15 12 15 temp 12 temp a b a b 15 15 15 12 12 12 temp temp فلوچارت مسئله باال بصورت زير خواهد بود: Begin Read(a,b) temp a a b b temp Write(a,b) End تمرين  1ـ فلوچارتي رسم نمائيد كه طول و عرض مستطيل را از ورودي دريافت كرده محيط و مساحت آنرا محاسبه و چاپ كند. 2ـ فلوچارتي رسم نمائيد كه شعاع دايره‌اي را از ورودي دريافت كرده، محيط و مساحت آنرا محاسبه و چاپ نمايد. فلوچارتي رسم كنيد كه سه عدد Third , second, firstرا از ور يافت كرده ،محتويات آنها را جابجا نموده ،حاصل را در خروجي پ كند. 4ـ فلوچارتي رسم نمائيد كه دو عدد از ورودي دريافت كرده ،سپس محتويات دو عدد را بدون استفاده از متغير كمكي جابجا كند. 5ـ فلوچارتي رسم نمائيد كه عددي (درجه حرارت برحسب سانتيگراد) را از ورودي دريافت كرده سپس آنرا به درجه فارنهايت تبديل كند. دستورالعملهاي شرطي  ‌ در حل بسياري از مسائل يا تقريب ًا تمام مسائل نياز به استفاده از شروط جزء ،نيازهاي اساسي محسوب مي‌شود .همانطور كه ما خودمان در زندگي روزمره با اين شرط‌ها سركار داريم .0بط0ور مثال اگر هوا ابري باشد ممكن است چنين سخن بگوييم: • اگر هوا باراني باشد سپس چتري برمي‌دارم. در غير اينصورت چتر برنمي‌دارم. در حالت كلي شرط را بصورت زير نمايش مي‌دهند: ‏yes عمل يا اعمال ش0رط ی00ا ش0رو0ط If ‏then ‏NO عمل يا اعمال بعدي مثال :فلوچارتي رسم نمائيد كه عددي را از ورودي دريافت كرده ،فرد يا زوج بودن آن را تشخيص دهد. ‏Begin )Read(a ‏R ‏a mod 2 ‏yes )’Write(‘even ‏if R=0 then ‏No )’Write(‘odd ‏End مثال :فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد را پيدا كرده در خروجي چاپ نمايد. ‏Begin )Read(a,b ‏a ‏b ‏max ‏yes ‏max ‏if b>max ‏No )Write(max ‏End Begin مثال :فلوچارتي رسم نمائيد كه سه عدد از ورودي دريافت كرده ،كوچكترين عدد را يافته در خروجي چاپ نمايد: )Read(a,b,c ‏a ‏b ‏min ‏yes ‏min ‏yes ‏min ‏if b<min then ‏No ‏c ‏if c<min then ‏No )Write(min ‏End نمونه اجراي فلوچارت باال بصورت زير مي‌باشد: خروج ‏Min 11 ‏c 17 12 11 11 11 ‏a ‏b 11 1 12 2 3 4 5 تمرين  -1فلوچارتي رسم كنيد که عددي را از ورودي دريافت كرده ،قدر مطلق عدد را در خروجي چاپ كند. -2فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده مثبت ،منفي يا صفر بودن عدد را تشخيص داده ،در خروجي با پيغام مناسب چاپ كند. -3فلوچارتي رسم نمائيد كه عددي را از ورودي دريافت كرده ،بخشپذيري آن بر 3و 5را بررسي نمايد. 4ـ فلوچارتي رسم نمائيد كه ضرايب يك معادله درجه دوم را از ورودي دريافت كرده ،ريشه‌هاي آن را محاسبه در خروجي چاپ كند. حلقهها  ‌ در حل بسياري از مسائل با عملياتي روبرو مي‌شويم ،كه نياز به تكرار دارند و عمل تكرار آنها به تعداد مشخصي انجام مي‌گيرد .فرض كنيد، بخواهيم ميانگين 100عدد را محاسبه كنيم ،در اينصورت منطقي بنظر نميرسد كه 100متغير مختلف را از ورودي دريافت كنيم سپس آنها را ‌ جمع كنيم. • انواع حلقه ها • حلقه های با تکرار مشخص • حلقه های با تکرار نا مشخص • حلقه های با تکرار مشخص در اين نوع حلقه‌ها تعداد تكرار مشخص مي‌باشد اين حلقه از اجزاء زير تشكيل مي‌شود: 1ـ انديس حلقه 2ـ مقدار اوليه براي انديس حلقه -3مقدار افزاينده براي انديس حلقه (معموال يك واحد در هر مرحله) 4ـ مقدار نهايي (تعداد تكرا حلقه) 5ـ شرطي براي كنترل تعداد تكرار حلقه اين حلقه‌ها را غالب ًا با فلوچارت بصورت زير نمايش مي‌دهند: 1 ‏No اتمام كار حلقه ‏i ‏if i<=n ‏yes مجموعه دستورات حلقه ‏i+1 ‏i مثال :فلوچارتي رسم نمائيد كه عدد nرا از ورودي دريافت كرده، مجموع اعداد از يك تا nرا محاسبه كند. ‏n ‏i م قدار ن هايي انديسحلقه Begi n Read(n) I sum 1 0 if I<=n No Write(sum) yes حلقه End sum I sum+I I+1 نمونه اجراي فلوچارت باال بصورت زير است: خروجي 15 ‏sum ‏I ‏N 0 1 5 1 3 6 10 15 2 3 4 5 6 1 2 3 4 5 6 7 مثال :فلوچارتي رسم كنيد كه nعدد از ورودي دريافت كرده، بزرگترين مقدار از بين nعدد را پيدا كر0ده در خروجي چاپ نمايد. انديس حلقه مقدار نهايي بزرگترين مقدار ‏Max ‏i ‏n Begin Read(n,a) I max 2 a No if i<=n then write(max) yes End Read(a) حلقه yes if a > max No i i+1 max a مثال :فلوچارتي رسم نمائيد كه ، n , xدو عدد صحيح مثبت را از ورودي دريافت كرده سپس xبه توان nرا محاسبه كند. • انديس حلقه ‏n • مقدار نهايي • عدد به توان pown ‏i Begin Read(n,x) i pow 1 1 if i<=n then No write(pow) yes حلقه pow i pow*x i+1 End  حلقههايي كه تعداد تكرار آنها مشخص نيست ‌ (در پاسكال به حلقه whileمشهورند). در اين حلقه‌ها با توجه به ورودي ،تعداد تكرار مشخص مي‌شود .و دقيق ًا نمي‌توان تعداد تكرار حلقه را بدون ورودي معين كرد .اين حلقه ها فقط شامل شرطي هستند كه تا زمانيكه برقرار باشد حلقه اجرا مي‌شود. ميشوند: در حالت كلي اين نوع حلقه‌ها بصورت زير نمايش داده ‌ ‏No شـرط يـا شـروـط If ‏yes محموعه دستورالعملها و جاگزينها مثال :فلوچارتي رسم كنيد كه عددي را از ورودي دريافت كرده سپس تعداد ارقام آن را شمرده در خروجي چاپ نمايد. • عدد خوانده شده • تعداد ارقام ‏N ‏count Begin count 0 Read(N) if N>0 then No write(count) yes N N div 10 حلقه count count+1 End مثال :فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده ،سري فيبوناچي قبل از آنرا توليد نمايد. در حالت كلي جمالت سري بصورت: ‏fk=fk-1+fk-2 عدد خوانده شده ‏N جمله اول سري ‏f1 جمله دوم سري ‏f2 جمله سوم سري ‏f3 Begin F1 f2 0 1 Read(N) f3 f1+f2 if f3>N then no write(f3) حلقه f1 f2 f3 f2 f3 f1+f2 yes End تمرين  -1فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده ،كامل بودن مقسومعليه‌هاي ‌ آنرا بررسي نمايد( .عدد كامل ،عددي است كه مجموع آن با خودش برابر باشد). -2فلوچارتي رسم كنيد كه Nرا از ورودي دريافت كرده N ،جمله سري فيبوناچي را توليد نماید. 3ـ فلوچارتي رسم نمائيد كه دو عدد N , Mرا از ورودي خوانده، بزرگترين مقسوم‌عليه مشترك دو عدد را محاسبه و چاپ كند. حلقههاي تودرتو  ‌ الگوريتم‌هايي كه تا حال بكار برديم ،فقط شامل يك حلقه بودند. در صورتي كه در بسياري از مسائل ممكن است نياز به استفاده از چند حلقه در داخل هم باشيم .در اين نوع حلقه‌ها بايد دقت بيشتري به خرج دهيم ،تا مشكلي پيش نيايد .اگر از حلقه‌هاي نوع اول بصورت تودرتو استفاده كنيم در اينصورت براي هر حلقه شرط نهايي و انديس اوليه جداگانه بايد تعريف كنيم . حلقههاي تودرتو به ازاي يكبار تكرار حلقه اوليه ،حلقه داخلي به اندازه ‌ در مقدار نهايي خود تكرار مي‌شود .در كل اگر حلقه اوليه nبار تكرار شود و حلقه داخلي mبار ،در اينصورت كل حلقه : بار تكرار خواهد شد. ‏nm فلوچارت حلقه‌هاي تودرتو را مي‌توان بصورت زير نشان داد: 1 ‏i . . . ‏A اتمام كار حلقه هاي تو در تو ‏No ‏if i<=n then ‏yes 1 مجموعه دستورات و جايگزينيـ ها ‏No ‏j ‏if j<=m then ‏yes ‏i ‏i+1 ‏A مجموعه دستورات و جايگزينيـ ها ‏j+1 ‏j حلقه مثال :فلوچارتي رسم نمائيد كه Nرا از ورودي دريافت كرده ،مجموع سري زير را محاسبه نمايد: ‏N !N ‏ .... 3 !3 • انديس حلقه اول • ورودي N • محاسبه فاكتوريل fact • انديس حلقه داخلي j • مجموع Sum ‏ ‏I ‌ 2 !2 ‏S 1 i sum 2 1 Read(N) A No if i<=N Write(sum) yes End fact j 1 2 if j<=i No sum sum+i/fact yes fact j fact*j j+1 i i+1 A تمرينات آخر فصل  -1فلوچارتي رسم نمائيد كه Nعدد از ورودي دريافت كرده تعداد اعداد اول و كامل را شمرده در خروجي چاپ نمايد. -2فلوچارتي رسم نمائيد كه N , Xرا از ورودي خوانده مقدار سري زير را محاسبه كند: ‏xn !N ‏ .... ‏x4 !4 ‏ ‏x2 !2 ‏S 1 -3فلوچارتي رسم نمائيد كه عددی را از ورودي دريافت كرده مقلوب عدد را محاسبه و در خر0وجي چاپ كند. 4ـ فلوچارتي رسم كنيد كه تاريخ تولد شخصي را از ورودي خوانده، سن شخص را با تاريخ روز ،محاسبه نموده در خروجي چاپ كند. -5فلوچارتي رسم نمائيد كه ( N ,M )m>nرا از ورودي دريافت كرده سري فيبوناچي بين N ,Mرا توليد كرده ،در خروجي چاپ كند دانشگاه پيام نور دانشكده فناوري اطالعات(گ روه مهندسي کامپيوتر) فصل 2 كاربرد آرايه ها در الگوريتم ها هدفهاي كلي شناخت آرایه ها و مفهوم آن شناخت الگوریتم های الزم برای جستجو و مرتب سازی مقایسه انواع روش های جستجو با هم هدفهاي رفتاري :دانشجو پس از مطالعه اين فصل بايد بتواند ‏ از آرایه ها در حل مسئله استفاده کند . ‏ با استفاده از آرایه ها لیستی را مرتب نماید . ‏ در صورت لزوم در لیستی جستجو انجام دهد . مقدمه فرض كنيد بخواهيم اطالعات 100كارمند را از ورودي بخوانيم و سپس آنها را مرتب كنيم ،در اينصورت بايد وروديها را در جايي از حافظه ذخيره كنيم .در زبانهاي برنامه‌نويسي معموال از آرايه براي ذخيره اطالعات در حافظه استفاده مي‌كنند .در آرايه‌ها ما با توجه به تعداد وروديها ،طول آن را مشخص مي‌كنيم .سپس داده‌ها را خوانده در آن قرار مي‌دهيم.0 تعريف آرايه  خانههاي پشت سر هم از حافظه ،كه همنوع بوده و توسط يك اسم معرفي ‌ ميشوند ،آرايه نام دارد. ‌ نحوه دسترسي به هر يك از اعضاء آرايه ،از طريق انديس آرايه امكانپذير است .براي تعريف آرايه ابتدا طول آرايه كه در حقيقت تعداد خانه‌هاي آن را مشخص مي‌كند ،معين مي‌كنيم .سپس نوع خانه‌ها بايد معين شوند. در فلوچارت‌ها آرايه‌ها را بصورت زير نمايش مي‌دهيم: ] Name[ 1 .. Length طول آرايه اسم آرايه براي خواندن يك آرايه از ورودي از حلقه‌ها استفاده مي‌كنيم .فلوچارت خواندن آرايه از ورودي بصورت زير مي‌باشد: ]a[1..100 1 ‏No ‏i ‏if i<=100 ‏yes )]Read(a[i ‏i+1 ‏i با توجه به فلوچارت باال براي دسترسي به عنصر iام آرايه در حالت كلي بصورت : [ inde ‏Nam انديس آرايه اسم آرايه عمل مي‌كنند. مثال :فلوچارتي رسم كنيد كه يك آرايه حداكثر 100عنصري را از ورودي دريافت كرده ،سپس آن را خروجي نمايش دهد. Begin a[1..100] i 1 Read(N) if i<=N No i 1 yes if i<=N Read(a[i]) yes i i+1 write(a[i]) i i+1 No End مثال :فلوچارتي رسم 0كنيد كه عددي را از ورودي دريافت كرده آن را به مبناي 2ببرد. ‏i ‏i-1 ‏No ]a[1..20 ‏i 1 )Read(N ‏if N>0 ‏yes ‏End ‏No ‏N mod 2 ‏i+1 ‏if i >0 ]a[i ‏i ‏yes )]write(a[i ‏i-1 ‏i ‏N div 2 ‏N مثال :فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده سپس اعداد اول قبل از آن را توليد نموده ،در يك آرايه قرار دهد. ]a[1..100 ‏i 1 )Read(N 3 2 1 ‏k ]a[1 ]a[2 A if i<=N No i yes j k End yes 2 0 write(a[i]) i if j<=i div 2 No if k=0 yes No i i+1 yes if I mod j = 0 No j No if i<k 1 j+1 k 1 A i+1 yes a[k] k i k+1 ) ( search and sortجستجو و مرتب سازي  يكي از مسائلي كه در بحث طراحي الگوريتم بسيار مهم است ،بحث مرتبسازي و جستجو مي‌باشد .منظور از جستجو اينست كه يك مقداري ‌ را از يك ليست جستجو كنيم و منظور از مرتب‌سازي اينست كه يك ليست مرتب از داده‌ها را توليد كنيم. براي جستجو و مرتب‌سازي الگوريتم‌هاي مختلفي وجود دارد در زير الگوريتمهای اوليه ،براي جستجو و مرتب‌سازي را بررسي مي‌كنيم. ‌ الگوریتم های جستجو ( )search ميروند: دو الگوريتم زير غالب ًا براي جستجو بكار ‌ •جستجوي خطي linear search •جستجوي دودوئی binary search • جستجوي خطي linear search در جستجوي خطي عبارت مورد جستجو را به ترتيب با اولين ،دومين و … عنصرآرايه مقايسه مي‌كنيم اگر عنصر مورد جستجو پيدا شد اندیس آن را نمايش مي‌دهيم. list[1..100] i 1 index 0 falg 0 :فلوچارت جستجوي خطي بصورت زير است i Read(x) 1 No if (i<=N) and (flag=0) write(index) End yes if list[i]=x i i+1 yes index flag i 1 • جستجوي دودوئی binary search در جستجوي دودوئی ،ليست مورد جستجو ،مرتب مي‌باشد .لذا براي جستجو اعمال زير انجام مي‌شود: -1عنصر Xبا عنصر وسط آرايه كه انديس آن برابر (low+high)/2 مقايسه مي‌شود. ‏middle 2ـ اگر xاز عنصر وسط كوچكتر باشد ،عنصر مورد نظر احتما ً ال در قسمت باالی ليست قرار دارد .لذا آرايه با انديس ،جديد در نظر 0گرفته ميشود و قسمت پايين ليست از فضاي جستجو حذف مي‌شود. ‌ 3ـ اگر xاز عنصر وسط آرايه بزرگتر باشد قسمت باالي ليست حذف ميشود و فضاي جستجو ،قسمت پايين آرايه خواهد بود. ‌ -4اگر xبرابر عنصر وسط باشد عمل جستجو خاتمه مي‌پذيرد. مرتب سازي () sort مرتبسازي بحث بعدي اين فصل مي‌باشد .براي مرتب كردن داده‌ها نيز ‌ الگوريتمهاي مختلفي وجود دارد ،كه هر كدام مزايا و معايب خاص خود ‌ فصلهاي بعد واگذار مي‌كنيم. ‌ را دارد .بحث مفصل در اين مورد را به تمرين  •فلوچارتي رسم نمائيد كه عددي از ورودي دريافت كرده ،اعداد كامل قبل از خود را توليد و در يك آرايه قرار دهد. •فلوچارتي رسم نمائيد كه يك آرايه حداكثر 100عنصري از ورودي دريافت كرده ،عناصري از آن كه اول هستند را با صفر كردن حذف نمايد. •فلوچارتي رسم نمائيد كه يك عدد حداكثر 20رقمي را توسط آرايه‌اي از ورودي دريافت نمايد .سپس يك عدد تک رقمي را از ورودي خوانده در عدد 20رقمي ضرب نموده ،حاصل را در خروجي چاپ نمايد. فصل 3 دانشگاه پيام نور دانشكده فناوري اطالعات(گ روه مهندسي کامپيوتر) كامپيوترباآشنايي هدفهاي كلي شناخت كامپيوترهاي نسل قديم و امروزي سختافزارهاي الزم براي كامپيوترهاي شخصي ‌ شناخت بررسي نرم‌افزارها و انواع آن هدفهاي رفتاري :دانشجو پس از مطالعه اين فصل بايد بتواند ‏ كامپيوترهاي نسل جديد را با كامپيوترهاي نسل قديم مقايسه كند. ‏ سختافزارهاي الزم براي كامپيوترهاي شخصي را بشناسد. ‌ ‏ انواع حافظه ،مزايا و معايب آنها را شناخته و با هم مقايسه نمايد. ‏ سيستم عامل و انواع آن را مقايسه نمايد. ‏ نرمافزار و زبانهاي برنامه‌نويسي را تعريف كند. ‌ كامپيوترهاي قديمي اولين كامپيوتر بزرگ ( )Super Computerهمه منظوره ديجيتال الكترونيك ،تحت عنوان ENIACدر سال 1946ميالدي در دانشگاه پنسيلوانيا ساخته شد .اين كامپيوتر با سرمايه ارتش آمريكا طراحي شد .وزن اين كامپيوتر 30 0تن و ابعاد آن 30×50فوت بود. اين كامپيوتر براي محاسبه جدول پرتابه‌ها ،پيش‌گويي وضع آب و هوا و محاسبات انرژي اتمي بكار مي‌رفت. در كامپيوترهاي اوليه از المپهاي خالء بعنوان عنصر الكترونيكي پايه استفاده مي‌كردند .در اين ماشين‌ها 19000المپ خالء استفاده شده بود و براي انرژي مصرفي المپ‌ها و همچنين دستگاههاي تهويه و انرژي الكتريكي مصرف kw 130خنك‌كننده ماشين حدود مي‌شد .اين ماشين‌ها داراي حجم زيادي بودند و سطحي را معادل 9015مترمربع اشغال مي‌كردند .اين كامپيوترها به كامپيوترهاي نسل .اول معروف شدند كامپيوترهاي امروزي كامپيوترهاي امروزي با بكارگيري ريزپردازنده به كامپيوترهاي نسل چهارم معروفند .البته نسل‌هاي جديد ديگر كامپيوترها نيز .به بازار ارائه مي‌شود در كامپيوترهاي امروزي سرعت‌ پردازش‌ بسيار باال ،حجم‌ اجزاء سخت‌افزاري بسيار كوچك ،حجم حافظه باال و غير0ه .آنها را از نسل هاي ديگر متمايز مي‌سازد :اجزاء تشکيل دهنده کامپيوتر عبارتند از سخت افزار نرم افزار سخت افزار ‏Out put ‏process خروج ي پرداز ش ‏Input ورود ي :كامپيوترهاي امروزي معمو ً ال از قطعات زير تشكيل مي‌شوند • • • • • دستگاههاي ورودي حافظه‌هاي جانبي حافظه‌هاي اصلي واحد پردازشگر مركزي دستگاههاي خروجي نرم افزار نرم‌افزار يكي از بخش‌هاي اساسي كامپيوتر 0به شمار مي‌آيد ،كه در واقع سخت‌افزار را بكار مي‌گيرد .بعبارت ديگر رابط بين كاربر و سخت‌افزار را نرم‌افزار مي‌نامند .نرم‌افزار در حقيقت روح و جان يك كامپيوتر است ،كه به سخت‌افزار هويت مي‌بخشد. نرم افزار سيستم عامل • سيستم عامل ( )OS: Operating Systemمشهورترين نوع نرم‌افزارهاي سيستمي مي‌باشد .كه مديريت منابع سيستمي را بر عهده دارد .سيستم‌عامل ،همچنين ارتباط بين كاربر و اجزاء سخت‌افزاري و نرم‌افزاري ديگر را برقرار مي‌كند. زبانهاي برنامه‌نويسي  نرم‌افزارها توسط زبانهاي برنامه‌نويسي نوشته مي‌شوند .زبانهاي • بر/نامه‌نويسي ،يك سيستم ارتباطي هستند كه توسط آنها مي‌توان .دستورات الزم را به ماشين انتقال داد هرزبان برنامه‌نويسي به مجموعه‌أي از عاليم ،قواعد و • دستورالعمل‌ها گفته مي‌شود كه امكان ارتباط با كامپيوتر را جهت .بيان كاري يا حل مسئله‌اي فراهم مي‌كند در حالت كلي زبانهاي برنامه‌نويسي را به سه دسته زير تقسيم‌بندي :مي‌كنند • زبانهاي سطح باال • زبانهاي سطح پايين • زبانهاي سطح مياني كامپايلر برنامه نوشته در يك زبان سطح باال را به برنامه مقصد تبديل .مي‌كند ‏Object ‏program ‏Compil ‏er ‏Source ‏program زبان Pascal در اين كتاب زبان پاسكال ( )Pascalرا براي آموزش و نوشتن برنامه‌ها انتخاب كرديم .اين زبان كه به افتخار بلز پاسكال دانشمند فرانسوي قرن هفدهم ميالدي ،پاسكال نامگذاري شده است ،در اواخر سال 1960و اوايل 1970توسط پروفسور نيكالس ويژت در انستيتو فني فدرال سوئيس مطرح گرديد

62,000 تومان