صفحه 1:

صفحه 2:

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

صفحه 4:
* جایگاه این درس در رشته علوم کامپیوتر این درس اولین درس دانشگاهی رشته می باشد و نقطه شروعی برای ورود به دنیای جالب برنامه نوسی و علم کامپیوتر هست . بنابراين ياد گیری اصول اولیه برنامه نویسی در این درس از جایگاه ویژه ای برخوردار است این درس پایه و اساس برنامه نویسی که جزء اصول این رشته می باشد را به . فركيران ياد می دهد . بنابراين اين درس جزء اصلى ترين دروس اين رشته در نظر مى كيرند

صفحه 5:
: توصیه می شود این درس در پانزده جلسه بصورت ذیل ارائه شود : جلسه اول اهداف درس و فصل اول كتاب درسى : جلسه دوم فصل دوم كتاب درسى : جلسه سوم فصل سوم كتاب درسى

صفحه 6:

صفحه 7:
فصل نهم کتاب درسی : جلسه دوازدهم فصل دهم کتاب درسی : جلسه سیزدهم فصل یازدهم کتاب درسی : جلسه چهاردهم فصل دوازدهم کتاب درسی : حلسه پانزدهم فصل سیزدهم کتاب درسی

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

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

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

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

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

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

صفحه 14:
Input ورود

صفحه 15:
کامپیوترهای امروزی معمولاً از قطعات زیر تشکیل می‌شوند: دستگاههای ورودی ‎pe cutie‏ حافظه‌های اصلی واحد پردازشگر مرکزی دستگاههای خروجی

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

صفحه 17:
* سیستم | ‎(OS: Operating System)‏ مشهور ترین نوع نرم‌افزارهای سیستمی می‌باشد. که مدیریت منابع سیستمی را پر عهده دارد. سیستم‌عامل. همجنين ارتباط بين کاربر و اجزاء سخت‌افزاری و نرم‌افزاری دیگر را برقرار می‌کند.

صفحه 18:

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

صفحه 20:
* زبانهای سطح ‎Ve‏ ‏* زبانهای سطح پایین * زبانهای سطح میانی

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

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

صفحه 23:
شناخت اجزای تشکیل دهنده یک برنامه شناخت ساختار یک برنامه در زبان پاسکال بررسی دستگاههای خروجی و دستورات لازم در زبان پاسکال برای تولید خروجی

صفحه 24:
:دانشجو يس از مطالعه اين فصل بايد بتواند اجزاء لازم براى نوشتن برنامه در زبان ياسكال را بداند. ‎a‏ يك شناسه صحيح در زبان ياسكال را تعريف كند. ساختار یک برنامه در زبان پاسکال و اعلانهای مربوط به برنامه را تعریف نماید. یک برنامه ساده به زیان پاسکال که فقط خاصیت خروجی دارد؛ بنویسد.

صفحه 25:
* کلمات ذخیره‌شده ( ۷۷۵۲5 11656150 ) (identifier ( ‏شناسه‌ها‎ *

صفحه 26:
کلمات ذخیره شده, کلماتی هستند که مترجم زبان آنها را می‌شناسد و معنای خاصی برای زبان دارند. مترجم زبان به محض مشاهده این کلمات اعمال خاصی را انجام می‌دهد. هر زبان دارای تعداد مشخصی کلمات ذخبره شده می‌باشد و این تعداد قابل افزایش توسط برنامه‌نویس

صفحه 27:
then unit until uses var with while exports mod file nil for not function object goto of 1 or implementation packed in procedure inherited program inline record interface repeat concat. constructor destructor

صفحه 28:
* شناسه در ياسكال براى نامكذارى ثابتها. تایپها؛ يروسيجروهاء توابع» میدانهای یک رکورد. برنامه و همچنین یوئیت مورد استفاده قرار مى كيرد.

صفحه 29:
ح 1 5 0 ما تان يبا علستاندارد: لیر = اس 0 هااز قباد ‎53h er t 2‏ 2045 1 ۱ ن‌پاسکللتسعر یفشدملند > 1 ها تراسا 5-5 ‎turers.‏ ل ‎userdefine‏ عن گفته ‎a‏ مونسود.

صفحه 30:
‎EE << << ">‏ * ساختار برنامه در زبان پاسکال :اجزاء اصلي یک برنامه به زبان پاسکال بصورت زیر مي‌باشد ‏عنوان برنامه قسمت تعاریف برنامه قسمت دستور العملها

صفحه 31:
Constant Declaration ‏اعلان‌ثابتها‎ ۶ Type Declaration ‏اعلان انواع‎ * Declaration Variable ‏اعلان‌متغیر‌ها‎ * Declaration Label ‏اعلان برچسبها‎ °

صفحه 32:
بصورت زیر بیان کرد: استفاده از کلمه ذخیره شده ۳100713100 و اسم برنامه ( که می‌تواند بكار برده نشود ) قسمت تعاریف شناسه‌ها بلوک اصلی برنامه که با 36010 ¢5,5 5 4 ‎End‏ همراه نقطه (.) ختم می‌شود. هر دستور در پاسکال به ( ۶) ختم می‌شود.

صفحه 33:
block شناسه del | Statement

صفحه 34:
:ی ‎Output ) -,> *‏ ( مشهورترین دستگاههای خروجی عبارتنداز: ‎Monitor‏ صفحه نمایش ‎Printer‏ چاپگر ‎Terminale‏ تزمينال ‎Plotter‏ رسام

صفحه 35:
> << کچ *مثال هاي حل شده Program Print ( output ) ; Begin Writeln (' Pascal Language ۱۱8 Writeln (' Hello' ): End.

صفحه 36:
:خروجي برنامه بالا بصورت زیر مي‌باشد Pascal Language Hello

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

صفحه 38:
:دانشجو پس از مطالعه این فصل باید بتواند "ا انواع عملگرها در زبان پاسکال را بکار ببرد انواع داددها براى يك برنامه را تعريف كند. كار ريت ملك ادر بى عارك ا اتتشيص ‎BS‏ #لايى برنامه:ساده با عمليات معمولى را ابتويسد:

صفحه 39:
‎si‏ لک ها ‏عملگرها نمادهایی هستند که برای انجام اعمال خاصی مورد استفاده ‏قرار می‌گیرند.عملگرها برای انجام اعمال خاصى روی عملوندها ‏( 02618205 ) بكار مىروند. با توجه به نوع عملگر ممکن است يك يا دو عملوند وجود داشته باشد. عملكرها در زبان ياسكال از تنوع زيادى برخوردارند.

صفحه 40:

صفحه 41:
div mod LEK منال ‎x+y‏ x-y,-x 7 5207 a div b amodb

صفحه 42:
نام بزرگتر بزرگتر مساوی کوچکتر کوچکتر مساوی مساوی بودن نامساوی مثال ‎x>y‏ ‎xy,‏ ‎x<y‏ ‏۲ 2<> ۶ ‎xy‏ ‎x<>y‏

صفحه 43:
OR Not مثال ‎and‏ <2 ‎y<x‏ ‎x>y or‏ > Not (x)

صفحه 44:

صفحه 45:
بالاترین تقدم ( Not div / mod - + Shl shr < =< => <> = And XOR

صفحه 46:
>" << آ" « ا * انواع داده‌ها ( 965 012182 ) ‎(Simple data type) ol. cesls <‏ Structural 122182 ( ( ‏دادههاى ساختيانفته‎ Types (Pointer Data Types) ‏دادههاى اشارمكر‎

صفحه 47:
Char type) «Sis ¢s° *صحیح ( 1۳1606۲ ) #عشاری (حقیقی) ‎String type) las, ¢5°‏ *نوع ‎Boolean type) da‏

صفحه 48:
نوع Byte Shortint Integer Word Longint محدوده از 0 تا 255 از 128- تا 127 از 32768- تا 32767 از ۵ تا 65535 از 2147483648- تا 2147483647 اندازه بر BININ IR] e

صفحه 49:
نوع Real Single Double Extend ed محدوده 2.2۸ 6 < 39 ... 1.7 6 8 940... 5 3.4 6 7 e-324 ... 5.0 1.7 e 308 e -4932 3.4 0006 4932 ‏عم‎ 1 0 تعداد ارقام معني دار 13-1 16-15 30-19 10

صفحه 50:
انواع داده‌های ساخت‌یافته عبارتند از: ارایه‌ها رکوردها مجموعه‌ها فایلها

صفحه 51:
ممکن است در نوشتن برنامه نوع داده‌های بحث شده در بالا به دلایل مختلف از جمله مشخص نبودن تعداد ورودیهای مسئله و غیره مشخص تباشد لذا نیاز به متغیرهایی هست که بتوانند آدرس متغیرهای دیگر را در خود نكه دایند لیرنوع دادمها دادمهایلشارءگر نام دايند .

صفحه 52:
> << کچ ** متغیرها (۷۵01656) متغیره «بجان السافظة :اميت كهداراى ‎aig‏ السم موباك نوع متغير همان نوع داده بوده و اسم متغیر از قواعد اسم گذاری شناسه تبعیت می‌کند در پاسکال برای معرفی متغیرها بصورت زیر عمل می‌کنند: (کلمه ذخیره 14-5( ‎Var‏ ‏نوع متغیر: اسم متغير

صفحه 53:
>" << آآآآاحسأ"اآ۳ ‎(Constants) kat *‏ یک ثابت نام شناسه‌ای است که در آغاز یک برنامه یک مقدار در آن جاگزین می‌شود. درست مانند متغیرها. ثابت‌ها را می‌توان بعنوان خانه‌هایی از حافظه در نظر بكيريم که مقدار داده‌ها در آنها ذخیره می‌شود ولی مقدار ثابت مشخص می‌باشد, طوری که نمی‌توان مقدار یک ثابت را در برنامه خود بوسیله یک دستور تغییر داد te Sees pty po ‏عریف ینکن‎ cl مقدار ثابت < اسم متفیر ‎Const‏

صفحه 54:
:ی * دستور جايگزيني ‎Gly‏ قرار دادن یک مقدار یا مقدار یک متفیر داخل یک متغیر دیگ از دستور .جایگزینی استفاده می‌کنند ‏شکل کلی یک دستور جایگزینی در پاسکال بصورت زیر است: عبارت محاسباتی ‎t=‏ اسم شناسه عبارت قیاسی يا ‏عبارت منطقی

صفحه 55:
>" < << آ" " ۰۲۳+«+«۰ءا+اآ۰۳طحء+آ۳ ‎go! =‏ نو صيحات نه بر نامه ‎(Comment)‏ ‏افزودن مطلب توضیحی در درون خود برنامه عملی پسندیده و مطلوب است بدین ترتیب که بعد از مدتی امکان فراموشی کار با برنامه از بین می‌رود و در .کل می‌توان گفت که نوشتن توضیحات در برنامه خوانایی آن را بالا می‌برد در پاسکال توضیحات بین دو آکولاد محصور می‌شوند. ‎This is comment }‏ { { This program written by A. Pascal }

صفحه 56:
4 مثال جابجا كردن مقدار دو متغير 17

صفحه 57:
Var a,b, temp : integer Begin a:=15;b:=17;temp:=0; temp: =a; a:=b; ‏خروجي برنامه‎ 0 برط - ط ارو دو 13 رطملا -حة

صفحه 58:
‎EE << << ">‏ * نكاتي چند در مورد برنامه نويسي ‏استفاده از اسامی با مفهوم برای متغیرها ‏* استفاده از دستور 0115 در صورتی که مقدار ثابت در برنامه وجود داشته باشد. ‏سوال جوابی بودن برنامه (ورودی‌ها و خروجی‌ها بايد دارای پیغام مناسب باشند) ‏نوشتن برنامه با فیمت مناسب (رعایت قرار گرفتن خطوط مختلف برنامه زیر هم و فاصله گذاشتن آنها از

صفحه 59:
EE EE EEE EE ‏موممئي‎ ‏تمرینات‎ * «حاصل عبار تهاي زیر را بدست آورید ‎A)3*13 Mod3 div3 =?‏ B)7.3*5/3=? C)(3+4<6) and (4+7<13)=? D)33-8*3 div 3 mod (5 div3) =? E)NOT (((3-4 MOD3)<5) and((6 div 4) <=3 ))

صفحه 60:
A: = true ; B: = false ; C: = true ; A)(A AND B) OR (A AND C)=? B)(A OR NOT B) and (NotA ORC)=? C)A OR B AND C=? D) NOT (A OR B) AND C=?

صفحه 61:
‎EE << << ">‏ تمرینات برنامه‌نويسي ‏© برنامه‌ای بنریسید که ابماد مخللت که عبارتند از ۳: ۱۲ راادر نظر گرفته محیط و مساحت آن را محاسبه و با پیغام مناسب در خروجی چاپ کند. ‎ ‏برنامه‌ای بنویسید که دو متغیر صحیح با مقادیر ۳, ۱۵ زا دوز گرفته محتویات دو عدد را بدون استفاده از متغیر کمکی جابجا نماید. ‏* _ برنامه‌ای بنوبسید که سه عدد بنام های , 1121۳0 ‎Second, First‏ بترتیب با مقادیر ۱۷, ۱۳,۱۵ را در نظر گرفته بطور چرخشی مقادیر آنها را جابجا نموده در خروجی لكل

صفحه 62:
فصل 4 ورودي و خروجي معرفیدستورلتخروجی 610 ۱۷۷۲ معرفی خروجی فرمت‌بندی شده بررسی دستورات ورودی ‎1٩630‏ و ‎ReadLn‏

صفحه 63:
:دانشجو يس از مطالعه ابن فصل بايد بتواند ‎et‏ ارات نر نظن ادر ري شان دقل #أعبارات خروجى را با فرمت مناسب چاپ کند. ‎Gla ll‏ مورد نياز برنامه را از ورودى دريافت نمايد. ‏#ابرنامه‌های ساده به زبان ياسكال بنويسد.

صفحه 64:
> << کچ * خروجي با دستور ۲۷۲6 اين دستور برای نوشتن اطلاعات در خروجی بکار می‌رود. اطلاعات خروجی می‌توانند ثابتهای عددی. مقادیر متغیرها. عبارات و غیره باشند. شکل دستور در :حالت کلی بصورت زیر است (....... و متغیر ۲ و متغیر ۱ )۲۷۲16 يا ‎sind‏ ی عیارت: ۷و عبارت۱ 0 .. و ابت ۲ وابت ‎CV‏

صفحه 65:
Ch: char ; R: Real ; egin A:= 10; B:=15 ; Ch: ="T' ۶ R: = 12.25 Write ('A=',A,' B=',B) ; Write (‘ch =',ch,'R=',R) ; Write (' sum of A and B=',A+B) ; ind. { end of program } ی برنامه فوق در خروجی خواهیم داشت B= 15 ch = TR = 1.2250000000 e + 01 sum of A and

صفحه 66:
> << کچ ‎٠‏ خروجى با دستور ‎Writeln‏ ‏اين دستور همانند دستور ۷۷۲16 عمل مىكند با اين تفاوت كه بعد از اجرا. كنترل را به ابتداى سطر بعد منتقل مى كند در نتيجه موجب چاپ داده‌های بعدى در ابتداى سطر بعد مى شود.

صفحه 67:
R: Real in 15 < :ظ : 10 < :۱ 2 ۳ ۲ * 2 ود 8-1228 7 Vriteln ; { new line } Vriteln('A=',A,' B=',B); Nriteln('Ch=',ch,'R=',R); Vriteln ('Sum of A and B=',A+B) ; .{ End of program } ‏:خروجی برنامه بصورت زير می‌باشد‎ A=10 ‏ظ‎ < 15 Ch=T R=1.225000000 e + 01 Sum of A and B= 25

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

صفحه 69:
:فرمت اعداد صحیح بصورت زير مشخص می‌شود ( طول میدان: داده صحیح ) ۷۷۲11۵18 یا ‎Write‏

صفحه 70:
در تعریف طول میدان براي متغیرها با داده‌هايي از نوع صحیح به نکات زیر توجه کنید: اگر طول میدان از طول ارقام عدد صحیح بیشتر تعریف شود عدد در منتهی‌الیه سمت راست میدان نوشته می‌شود. * از عون مق ول تا سیخ كتدترا تعريف شوق طول مدا اندازه تعداد ارقام در نظر كرفته مى شود و طول ميدان تعريف شده بی‌اثر خه اهد ب د.

صفحه 71:
X:= 3200 ; As. = 12) 5 B= 217) : Write (X:3,A:5 , B:5) ; See ‏دري‎ 3200 12 217

صفحه 72:
برای نمایش اعداد اعشاری بصورت دلخواه می توان با تعریف طول .میدان و تعداد ارقام اعشاری, عدد مزبور را نمایش داد در حالتک لی‌طولمیللنرا می‌تسولنبه صوونذیر تعریفکرد : ( تعلداد ایقام بسعد از صمیز: طول‌میدلن ‎Write (cick pi‏ ۷۲۵۴ با

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

صفحه 74:
۷ هنگامی که طول میدان همراه با تعداد ارقام بعد از ممیز ذکر شود. اگر طول میدان کوچکتر از مقدار عدد باشد. پاسکال تنها طول میدان را به اندازه‌ای كه مورد نیاز است تصحیح کرده و آنرا برابر اندازه واقعی که عدد در آن قرار می‌گیرد. اصلاح می‌کند. ۲ اگر تعداد ارقام بعد از ممیز زیاد باشد و تعداد ارقام بعد از مميز ذكر شده د ر طول میدان کمتر از تعداد ارقام اعشاری عدد باشد. تعداد ارقام اعشار مطابق درخواست برنامه‌نویس نشان داده خواهد شد و رقم اخر اعشار آن نسبت به عدد بعدی گرد می‌شود.

صفحه 75:
برای نمایش رشته‌ها و کاراکترهای با طول ميدان بصورت زیر عمل ۳۳ . ( طول‌میدلث متغیر یسا عباتوشتهلییا کاراکتری) ‎Write‏ در توربو پاسکال. کلیه موارد گفته شده در مورد اعداد صحیح برای برشته‌ها یز صادق است

صفحه 76:
* ورودي با 13620 , 16۵012 از این دستور برای خواندن داده ها و اختصاص آنها به متغیرها :استفاده می‌شود. در خواندن داده ها به دو موضوع بايد دقت شود منبع دادمها یبعنی‌دستگام ورودی‌که از آن‌دادمها خولنده -1 مین‌سود متغيرىكه دادمهاىخولنده شده در آنقرار میگیرد -2 .

صفحه 77:
... و متغير 7 و متغير 15680 ( اين دستور عمل خوائدن دادهها و ذخيره آنها در متغيرها را انجام مىدهد و يس از اتمام عمل خواندن كنترل را براى خواندن و نوشتنهاى بعدى در همان‌خط نگه میع‌ارد ‏ .

صفحه 78:
ram Example _1 (input, output) ; first , second , temp: integer ; Writeln ; Writeln ('Please Enter two numbers') ; Readln ( first , second ) ; Temp: = first ; First: = second ; Second: = temp ; Write (' first = ', first , 'second = ': 10, second ) {end of program } _

صفحه 79:
خروجی برنامه بالا به صورت زیر می‌باشد: Please Enter two numbers 15 17 First = 17 second = 15

صفحه 80:
>" آاس۳ تمرینات خروجرقطعه بر نلمهوير را تسعييزكسنيد : Valuel: = 27.3 ; Value2: = -8.5 ; Writeln ) ' Valuel1 is', Valuel ) ; Writeln (' Value2 is', Value2 ) ; Sum: = Valuel1 + Value2 ; Writeln ('Sum of Two Values =', Sum: 6:2) ;

صفحه 81:
Writeln (' Xis ': 10,.X%: 6:2 ,'T istr4,1:5) 3 Writeln ('I is': 10,1: 1) ; Writeln ('Xis':10,X:2:1) ; Writeln ('Xis':15,X:7:1) ; Writeln ( \Tis*: 1105‘ X is ': 104% 723 ))>

صفحه 82:
* تمرینات برنامه نويسي برنامه‌ای بنویسید که دو عدد را از ورودی دریافت کرده و محتویات آنها را بدون استفاده از متفیر کمکی جابجا نماید برنامه‌ای بنویسید که سه عدد صحیح , ‎Third‏ او ر 560000 را از 0 با پیغام مناسب دریافت کرده سپس محتویات این سه متغیر را بصورت چرخشی جابجا نموده با پیغام مناسب در خروجی چاپ کند.

صفحه 83:
برنامه‌ای برای یک حسابدار اداره جمع آوری مالیات بنویسید که صورت .حسابهای مالیات را محاسبه نماید "ورودی شماره شناسایی مالیات دهنده بهای ارزیابی شده نرخ مالیات اخروچین صورت حساب بافرمت مناسب شامل تمام داده‌های ورودی و میزان بدهی

صفحه 84:
هدفهاي كلي معرفىدستور شرطي©119 20ة ‎If‏ ‏معرفی دستور 0856 بررسی دستورات تکرار ‎for. while . repeat‏ 131 لاستورات شرطى متداخل بررسى جند تابع و روال استاندارد زبان ياسكال

صفحه 85:
:دانشجو يس از مطالعه ابن فصل بايد بتواند برنامههايى را بنويسد كه در آنها نياز به استفاده از شرط وجود دارد. 8 تفاوتهای بین دستورات مختلف با ك1 و 14 -©19© را تشخيص دهد. كا برنامههايى كه نياز به تكرار تعدادى عمليات داشته باشئد را بنویسد. "ا در صورت نياز بتواند در برنامههاء از روالها و توابع استاندارد زبان استفاده ‎Lyles‏

صفحه 86:
EEE EEE 2 ‏دستورات شرطى‎ “of ‏بطور کلی توسط اینگونه دستورات می‌توان بر حسب شرایط مختلف.‎ تصمیمات متفاوتی را اتخاذ نمود و برحسب برقرار بودن یا نبودن شرایط .دستورات متفاوتی را اجرا نمود ت شرطي در حالت كلي به دو نوع تقسيم مي شوند: دستور ]1 دستور 256

صفحه 87:
هرگاه در طول برنامه نیاز به استفاده از شرط یا شروط داشته باشیم. از دستور 1 .ستفاده می کنیم دستور 11 بطور كلى به سه شكل بر حسب نياز ممكن است ظاهر شود: cooly if Else sto. if ‏های متداخل‎

صفحه 88:
then در اين نوع دستور شرطی اگر شرط خاصی تحقق يافته باشد. عمل يا اعمال خاصی انجام می‌شود. در غیر اینصورت برنامه روال عادی خود را طی می کند. در صورتی که شرط برقرار باشد ارزش منطقی 11116 به خود می‌گیرد و اگر شرط برقرار نباشد. ارزش منطقی 32156 به خود خواهد گرفت.

صفحه 89:
:دیاگرام دستور بالا بصورت زیر می‌باشد ۵00۱5

صفحه 90:
Number: integer ; Begin Write ('Please enter Number:') ; Readlin ( Number ) ; if Number>0 then Write (' Number is positive ' ) End خروجی برنامه بالا بصورت زیر است: Please enter Number: 12 Number is positive

صفحه 91:
* در این دستور ابتدا شرط بررسي مي‌شود, در صورتي که شرط برقرار ‎mush‏ عمل يا اعمال خاصي را انجام مي‌دهد و در صورتي که شرط برقرار نباشد. عمل یا اعمال بخصوص ديگري را اتجام خواهد داد.

صفحه 92:
۱ ‏دستور‎ ‎else رز دستور ۲ دیاگرام دستور بصورت: د

صفحه 93:
gin Writeln (‘Please enter Number:') ; Readln ( Number ) ; if (Number mod 2) =0 Then Write (' even ' ) else Write ('odd') ; d. { end of program } خروجی برنامه بالا بصورت زیر است: ‎Please enter Number:‏ 17 odd

صفحه 94:
End Else Begin ز دستور 1 ز دستور 2

صفحه 95:
هركاه در نوشتن برنامه نياز به انتخاب يك شرط از بين چند شرط داشته باشیم. معمولاً از 1 متداخل استفاده مى كنند. در جنين مواقعى استفاده از 14 متداخل كارائى برنامه را بالا مىبرد زيرا بجاى كنترل تمام شروط فقط تا زمانيكه شرط برقرار نشده. ]1 ها بررسی می‌شوند. بعد از برقرار شدن يكى از شروط. كنترل برنامه به بعد از ۶ منتقل می‌شود و اين در بهبود كارائى يك برنامه مى تواند بسيار موثر باشد.

صفحه 96:
if )2 ‏عبیتشرطیا‎ then ۱ ‏دستور‎ 60 عبيتشرطىئ؟ 14 واه دستور۲ 08۲ عبلیتشرطی ‎else If‏ دستور ۳ ‎else‏ 1] ‏عبیتشرطیا‎ then if ‏عبیتشرطی]‎ then دستور | else دستور ۲

صفحه 97:
Grade 17-20 14-17 12-14 10 - 2 0 - 0

صفحه 98:
ReadIn ( Grade ) if Grade > = 17.0 Writeln ('Grade is A') Else If Grade > = 14.0 Then Writeln (' Grade is B') Else If Grade > = 12.0 Then Writeln ('Grade is C') Else If Grade > = 10 Writeln (' Grade is D') Else Writeln (' Grade is F ‘¢ Writeln ('Press any Key ...' : 30 ReadIin : Then

صفحه 99:
زبان پاسکال دستور 856 را بصورت زیر در نظر می‌گیرد: ‎Case oc Of‏ و دستور١‏ 0 : مقدار ۱ ,م دستور ۲ . : مقدار ۲ م دستور ۳ : مقدار ۳ Otherwise > دستور ‎End ; { End of case }‏

صفحه 100:
Write (' please enter two Numbers: ' ) Readin(a,b) ; Write (' please Enter A operator: ' ) Readeln ( op) ; Case op of '+': Writeln ('Sum =',(a+b):6: 2) 3 '.': Writeln (' Subtract =',(a-b): 63.25); > '*': Writeln (' Multiple =',(a*b): 6:2) ۱/۰۰ Writeln. (‘ divide’= ‘) (a/b )1/6: 2) ade oon ora nar a acne ENN

صفحه 101:
دیاگرام دستور ۵56 بصورت زير مي‌باشد:

صفحه 102:
‎EE << << ">‏ * ساختارهاي کنترلي ‏بسیاری از مواقع لازم است عمل يا اعمال به تعداد دفعات معين يا نامعين انجام شوند در جنين مواقعى زبانهاى برنامهنويسى دستوراتى دارند كه مى توان اين اعمال تكرارى را انجام داد. در حالت كلى ساختارهاى كنترلى شامل يك يا جند شرط و همجنين ‏متغير يا اصطلاحاً شمارندهاى براى يايان دادن به شرط می‌باشند

صفحه 103:
0 مقدار نهایی 10 مقدار اولیه - اندیس ‎For‏ ۶ دستور باید توجه داشته باشید که در حلقه تعداد تکرار کاملاً مشخص است و حلقه دقیفاً به .تعداد تکرار مشخص اجرا می‌شود

صفحه 104:
دستور برای انجام عمل یا اعمالی مشخص به تعداد تکرار معین بکار برده می‌شود. نه ‎bl: for‏ یک اندیس ( 10065 ) مقدار اولیه ( ۷16 1011 ) مقدار نهایی ( ۷۵16 1۳881 ) و مقدار افزاینده می‌باشد. اين حلقه با قرار دادن مقدار اولیه در س حلقه شروع شده و بعد از هر تکرار یک واحد به اندیس حلقه اضافه می‌کند تا نهایت به مقدار نهایی برسد. شکل کلی حلقه بصورت زیر می‌باشد:

صفحه 105:
Var i, number , Sum: integer ; Begin Writeln (' please enter 100 Numbers: 1 For I:=1 to 100 do Begin ReadIn (number ) ; Sum:= Sum + number ; End ; Writeln ('Sum =', Sum) ; End. { end of program }

صفحه 106:
0 مقدار نهاي 001171180 مقدار اولیه - : لندیس ۴01 ۶ دستون ار اين شکل از دستور 370۳ ابتدا مقدار اولیه در اندیس حلقه قرار داده می شود و بعد از آن در هر تکرار حلقه یک واحد از اندیس حلقه کم می شود تا به مقدار نهایی برسد .

صفحه 107:
Var i,n, Fact : integer ; Begin Fact: =1 ; Write (' please enter A Number ') ; Readin (n) ; For I:=n downto 1 = do Fact : = Fact * i ; Writeln (' Fact = ', Fact) ; End .

صفحه 108:
0 مقار نهایی 0 مقدار ایلیه - : لندیسا ‎for‏ ‏© مقدار نهایی 0 مقدار اولیه -: اندیس 2 ‎for‏ Joe ‏ع‎

صفحه 109:
in For j:=1 to 3 do Write (' pascal': 8) ; Writeln ; 1 خروجی Pascal Pascal Pascal J) a>» (i = 1) Pascal Pascal 2856081 ‏مرحله دهم‎ ) 1 > 2) Paceral Paceal Pacecal . si. .f 7)

صفحه 110:
مقدار نهايي مقدار اولیه سرهم

صفحه 111:
در حالت كلى هدف از بكار بردن این دستور انجام عملیاتی مشخص به تعداد دفعات نامعین است مينحلقه به صووتؤير بكار بردهمى شود: 0 عبارت منطقى ‎While‏ Desay

صفحه 112:
Numbers ') ; ReadIn (m,n) ; While (m Mod n) > < 0 0 MOD n; End ; { end of while }

صفحه 113:

صفحه 114:
اين دستور نيز از نوع دستورات تکراری می‌باشد و به کمک آن می‌توان یک یا چند .دستور را به تعداد نامعین بار اجرا کرد لیردستور مشلبه دستور ۲16 :است. با تفاوتهایی که در زیر عنوان می‌کنیم در دستور (1 1361068 بسرعکس‌دستور ‎While‏ ‏.شرط حلقه در انتهای حلقه بررسی می‌شود لذا حلقه حداقل یکبار اجرا می‌شود _

صفحه 115:
۲) دستور 38606616 تا زمانی اجرا می‌شود که شرط خاصی تحقق پیدا نکرده است در حالیکه دستور ۷۷0116 تا زمانی که شرط برقرار ‎al‏ اجرامی‌شود. ‏۳ دستور :606۵ نیاز به بلوک ندارد و همراه 10 ظاهر می‌شود.

صفحه 116:
; شرط یا شروط ‎until‏

صفحه 117:
eal ; riteln (' please enter Numbers While is Not Negative ') um: =0 ; ve:= 0 3 epeat Readln ( Number ) ; Sum: = sum + Number ; t=i+ 1 ۶ til number =0 ; { End of Repeat } :=i-1 ve: = Sum /i ; riteln ('Sum =', Sum, ' average = ': 12, ave: 7:2) ; nd of program }

صفحه 118:

صفحه 119:
‎EEE EEE << << ">‏ ** معرفي چند پروسیجر ( ۳۵6606 ‏پروسیجرها یا زیر روال‌ها قسمت‌های مستقلی از برنامه اصلی می‌باشند که به تنهایی اعمال خاصی را انجام داده و وظایف مستقل و بخصوصی بر عهده آنها گذاشته می‌شود. یک مزیت بزرگ پروسیجرها اینست که یکبار در برنامه گنجانده شده ولی در محلهای مختلف ازآن استفاده به عمل می‌آید و از ‏.اصول برنامه‌نویسی ساخت یافته‌است

صفحه 120:
هدف: انتقال کنترل برنامه به خارج از بلوک فعلی Procedure Exit ; استفاده از این پروسیجر در هر بلوک از برنامه باعث می‌شود که کنترل برنامه بلافاصله به خارج از آن بلوک انتقال یاپد.

صفحه 121:
هدف: خاتمه دادن به اجرای یک حلقه Procedure Break ; استفاده از پروسیجر فوق باعث می‌شود. که اجرای. یک خلقه: خائمه یافته و کنترل برنامه به دستورالعمل بعدی انتقال پابد.

صفحه 122:
هدف: باز گشت به ابتدای حلقه Procedure continue ; وقتی انم پزوسبحر, دزن ‎taal USS apd ge GW UA‏ اول خلقلة:اتتقاك می‌یابد و دستورات بعد از پروسیجر اجرا نمی‌شوند.

صفحه 123:
غال : ‎iso iS aS‏ 5 را 0 ۱ کب از ورود ۳ 2 ی دريافت 1 عد فت کرده. ۱ 0 بح در مبذ ‎jae‏ 00 ‎sé‏ ‏یک مینای ۲ ببرد.

صفحه 124:
Power: = 1 ; N:=0; Write (' enter A Number: ' ) ; 1۳8010 ( Number ) ; Repeat R: = Number MOD 2 ; Number: = Number DIV 2; N: = N + Power* R ; Power: = Power * 10 ; Until Number < 2 ; N: = N + Number * Power ; Writeln ('Number In Base 2 = ' ' rN); ی ی وت ی ات اس ای ق قح ت۳۳

صفحه 125:
Readin (N) ; Fl; = 0; F2:=1 ; Write (F1: 5, F2:5) ; For i:=3 to N_ do Begin F3: = Fl + F2; If (i mod 10)=0 Then Writeln ; Write (F3:5) ; ۳1: < ۳2 ‏ز‎ ‎F2: = F3 ; End ; { end of for } |, { end of program }

صفحه 126:
۳ 1 116 ‎“ah: 3‏ ۰ تمرینات ‎Begin‏ ‏۱- خروجی قطعه برنامه‌های زیر را تعیین کنید: ‎Sum: = Sum +i‏ ۱ end ; b) is = 0.3 Sum: =°0'; While i<=20 do Begin i+ ;

صفحه 127:
be Di Until (b div 3)=5 ; d) Count Stop : While Count < Stop Do Begin For K:=1 to Count Do Write (K:3) ; Writeln ;

صفحه 128:
EE EE EEE EE ‏موممئي‎ ‏تمرينات برنامه نویسی‎ ** ۱- برنامه‌ای بنویسید که با استفاده از حلقه ها خروجی زير را تولید کند.

صفحه 129:
بسرنامهلوبنویسید که تسعدادی‌عدد از ورودی‌دویافتکرده مجموع -2 ايقام هر علد را در خروجىجا نايد ( پابانداده ها بسه ۱- ختم‌می شود) بسرنامهلوب‌نویسيد که دو علد صحیح را از ورودی‌دویافکرده -3 تن .اعداد فيبوناجى بين اين دو عدد را جاب كند برنامهلىيب:ويسيد كه يكلسكناس١٠٠٠‏ توملئنىرا به حلتهاى4 مخت نيعت يه لسکناس۲۰۰ تسوملنی ۱۰۰ تسوملنی 0۰ تسوملنی ۲۰ توملنی ۱۰ توملنیو سکه های۵ توملنیو ۲ توملنیو یکتوملنی‌خرد ‎bo.‏

صفحه 130:
Arrayb 47 هدفهاي كلي شناخت لزوم استفاده از ساختار داده ای به نام آرایه شناخت انواع آرایه‌ها و موارد استفاده از آنها ا ا ل شناخت الگوریتمهای مرتب‌سازی و جستجو

صفحه 131:
:دانشجو پس از مطالعه این فصل بايد بتواند * آرایه‌ها یک بعدی را در برنامه‌های خود بکار ببرد. 8 ماتریسها را پیاده‌سازی نماید. عمل جستجو در آرایه انجام دهد. #ایک لیست را توسط روشهای مرتب سازی حبابی انتخابی و غیره مرتب کند.

صفحه 132:
* آرایه و انواع آن خانه‌های پشت سرهم از حافظه که همنوع بوده و توسط یک اسم معرفی می‌شوند. آرایه نام دارد. نحوه دسترسی به هر یک از اعضاء ارایه از تطر يق "انيسن ريه امكالوفة بر انتتی برای تعریف آرایه ابتدا طول آرایه که درحقیقت تعداد خانه‌های آنرا مشخص می‌کند. معین می‌گردد. سپس نوع خانه‌هایی که داده‌ها در آن قرار خواهند كرفت را تعيين مى كنند

صفحه 133:
آرایه‌های یک بعدی بصورت زیر تعریف می‌شوند: Name ۳ array [1.. Length] of ‎alte | ْ‏ هچ ان زره | ‏کلمه ذخیره شده اسم آرایه

صفحه 134:
Var No: Array [1.. 50] of integer ; id: Array [1.. 20] of Byte ; Name , Fam: Array [ 1.. 30] of char ;

صفحه 135:
۱- با استفاده از دستورات ورودی ۲- مقداردهی در طول برنامه طریقه دسترسی به عناصر آرایه بصورت زير می‌باشد: Name [ index ] | انديس آزرایه ۳

صفحه 136:
Writeln (' please enter TEN Numbers') ; For i:=1 to 100 do Readin (No[il]) ; Max: = No[ 1] ; Index: = 1 ; For i:=2 to 100 do If No[i] > Max Then Begin Max: = No[i] ; Index: =i ; End ; Writeln ('The Maximum is =', Max) ; ۱ Writeln ('And Index =', Index) ; End of program }

صفحه 137:
integer ; Begin Writeln (' please enter 100 Numbers : 13 For i:=1 to 100 do Begin Read (a[li]) ; If(i Mod 10)=0 Then Writeln ; End ; For i:=1 to 50 do Begin Temp: =a[101-i] ; a[101-i]:=a[i]; ۱ ali]: =temp ; End ;

صفحه 138:
برای نمایش ماتریس درحافظه معمولاً از آرایه‌هایی بنام آرایه‌های دویعدی استفاده می‌کنند رای فرزکا بیشتر ابیز آرایة‌ها آنها را بضورت ماتربس دزانظر می‌گیرند آرایه‌های دو بعدی بصورت زیر معرفی می‌شوند: ‎Name 1 array [1..row ,1.. column ] of‏ ‎type‏ ۳ لا ا . ] | | | نوع عناصر آرایه کلمه ذخیره شده تعداد ستونها_ تعداد سطرها كلمه ذخيره شده اسم ارايه

صفحه 139:
jin For i:=1 to 5 do Begin For j:=1 to 5 do Read (ali,j]) ; Writeln ; End ; Writeln ; For i:=1 to 5 do Begin For j:=1 to 5 do Write (ali,j]:5) ; Writeln ; End ; 1.

صفحه 140:
می‌توان آرایه‌هایی با ابعاد بیشتر از دو نیز تعریف کرد. بطور کلی برای : معرفى يك آرايه جند بعد توان بصورت زد د ی .1 [ مج 3 1 ‎Name: psu (iene‏ ‎length2 ] ....‏ Of array [ 1.. lengthN ] of Type ‏ويا‎ Name: array [ 1.. length1, 1.. length2,.... 1.. lengthN ] of Type

صفحه 141:
‎EEE EEE << << ">‏ ‎Ry‏ نکاتی جند در مورد آرایه‌ها ‏” تعریف آرایه با محدوده منفی ‏برای مثال: ‎A:array[-10..10] of Real 1‏ ; 7 تعريف آرايه از نوع منطقى ) ‎(Boolean‏ ‏براى مثال: ‎A:array[1..20] of Boolean‏ ;

صفحه 142:
ای مثال ‎A: array [ Boolean ] of ee‏ ‎;integer‏ ۲آرایه‌ای با محدوده کاراکتری: بزاع شال ۵1 05 1[ ۲2 .۲۸۰۰ ] 27727 :۱ "آرایه‌ای که برای اعضای آن محدودیت قائل شویم براى مثال: ‎A: array[1.. 20] of 1.. 0‏

صفحه 143:
© جستجو و مرب‌سازي ( 2310 5621012 ‎(Sort‏ یکی از مسائلی که در بحث طراحی الگوریتم بسیار مهم است. بحث مرتب‌سازی و جستجو می باشد. منظور از جستجو اینست که یک مقداری را از یک لیست جستجو کنیم و منظور از مرتب سازی اینست که یک لیست مرتب از داده ها را ایجاد کنیم. حال تعدادی الگوریتم که برای مرتب‌سازی و جستجو بکار می‌روند را بسررسی‌مر‌کنيم بخصوص زمانيكه ساختار داده ما يكآرليه باشد .

صفحه 144:
در كل دو نوع عمل جستجو را در اين كتاب بررسی می‌کنیم : Linear search (+ oye >” Binary search ‏جستجو دودویی‎

صفحه 145:
در جستجوی خطی عبارت مورد جستجو را نخست با اولین عضو آرایه مقایسه می‌کنيم. اگر برابر بود عمل جستجو با موفقیت همراه بوده و عمل جستجو خاتمه می‌یابد در غیر اینصورت روند را ادامه داده و عبارت مورد جستجو را بترتیب با عضو دوم سوم ... مقایسه می‌کنیم تا اینکه حالت تساوی حاصل شود .و اگر این حالت حاصل نشد. عباریت مورد جستجو در لیست قرار ندارد

صفحه 146:
ee hile (i<=N) and (flag) Do Begin 1-1+ 1 ۶ if A[i] =x Then Begin Index: =i ; Flag: = false ; End ; End ; flag Then Writeln ('The Element is found ') 56 Writeln ('The Element is not found') ;

صفحه 147:
درجستجوی دودوئی لیست اولیه بایدمرتب باشد. برای جستجو در چنین آرایه‌ای نخست انديس وسط آرايه را يبدا مى كنيم و عنصر واقع در اين انديس را با :عبارت مورد جستجو مقايسه مى كنيم و حالات زير ممكن است حاصل شود (0۲,] اندیس ابتدای آرایه و 13006 اندیس آخرین عناصرآرایه و 6 اندیس عنصر وسط می‌باشد.)

صفحه 148:
. ] ۸10016 [ < X Then Low : = middle ‏بر ایتصورت‎ و مقدار جدید 10010016 را که عبارتست از: Middle : = (low + middle ) / 2

صفحه 149:
1016 [ > Then upper : = middle ‏در اينصورت‎ و مقدار جدید 1010016 را که عبارتست از: Middle : = (low + middle ) / 2

صفحه 150:
idle ] =X Then Write ('The Eiement is ‏قر ابنضووة‎ found ' ) OW > ۱۷۵۳6۲ ‏فيا ب لتفاقبیفند عملجستجو را تا زملنیکه‎ ELL AS ope | می باشد ادامه می‌دهیم و در هر مرحله که حالت سوم رخ دهد عمل جستجو خاتمه می‌يابد.

صفحه 151:
برای مرتب‌سازی داده‌ها روشهای متفاوتی وجود دارد . تفاوت روشهای مرتب‌سازی در زمان اجرای آنها می باشد. در حالت کلی با توجه به تعداد ورودیها (داده ها) و نوع مسئله مرتب‌سازی می توان از انواع روش‌های .مرتب‌سازی استفاده نمود حال بعضی از روش های مرتب سازی عمومی را بررسی می‌کنیم. *؟ مرتب‌سازی حبابی ) ‎(Bubble sort‏ *مرتب‌سازی انتخابی ( 50۲۲ 5616611012 )

صفحه 152:
ساده‌ترین روش مرتب‌سازی روش مرتب‌سازی حبابی می‌باشد. یکی از خصوصیات بارز این نوع مرتب‌سازی این است که فهم آن ساده بوده و برنامه‌نویسی آن به سهولت انجام می كيرد مرتب‌سازی حبابی نخست عنصر اول و دوم را با هم مقایسه می‌کند و در صورت ‎GUS‏ آنها را جابجا می‌کند. سپس عنصر دوم و سوم را مقایسه می‌کند. این عمل را تا زمانیکه به انتهای آرایه نرسیده تکرار می‌کند. در پایان مرحله اول بزرگترین عنصر در آخرین خانه آرایه قرار عمل بالا را انجام می‌دهد. اين روند را 1 - ‎N‏ می‌گیرد. در مرحله دوم از خانه اول تا خانه تا زمانیکه تمام عناصر آرایه مرتب نشده‌اند ادامه می‌دهد و در نهایت یک لیست مرتب شده بصورت صعودی در خروجی تولید می‌شود

صفحه 153:
For j:=1 to n-1 do If x[j] >x[j+1] Then Begin Temp: = x[j] ; ۶ ][ 1: 2۶ ][ + 11 ‏ز‎ ‎X[j+1]: =temp ; End ; تعداد مقایسه‌ها در این روش بصورت زير محاسبه می‌شود: 1-1 + 2-2 + .. + N(N- 1)/2

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

صفحه 155:
1: < 1 to n do Min: = x[i]; Index: =i ; For j:=i+lto n do If x[j] < Min Then Begin Min: = x[jl]; Index: =j ; End ; { find The smallest Element } X [index]: = x[iJ ; X[i]: = Min ; { swap Minimum With other Elem« ; { end of selection sort }

صفحه 156:
‎EEE << <<"‏ ‎ad‏ جند منال در مورد آرایه‌ها ‏مثال : برنامه‌ای بنویسید که یک عدد صحیح از ورودی دریافت کرده سپس اعداد اول قبل از آن را تولید و در آرایه قرار دهد ‎a:array[1..50] of integer ; i,j, N: integer ; k: Byte ; ‎flag : Boolean ; ‎Write (' Enter A Number:') ; Readin(N) ;a[1]:=2; a[2]:=3; flag : = True ; ks=2 ; ‎—

صفحه 157:
Flag : = false ; If flag Then Begin K:=k+1; ALK]: =1 End ; Flag : = Ture ; End ; { end of for } Writeln ('The prime Numbers before N') For j:=1 to K_ do Writeln (a[i]:5 ) ; nd .{ End of program }

صفحه 158:
Begin. Writeln ('Enter Array') ; for i:=1 to 3 do for j:=1 to 3 do Read(a[li,j]) ; Writeln ; Writeln ('The result matrix For i:=1 to 3 do Begin For j:=1 to 3 do Begin Write (a[i,j]:8:2) ; Sum: = sum + a[i,j ];{ calculate sum any row } End ; Writeln ( sum: 8:2 ) ; Sum:=0 ;

صفحه 159:
ray "36 ator integer 1۳9 ‏يحب‎ 1..60] of integer ; M,N.1,j ,.ki Byte ; Begin Write ('Enter Dimention of arrays:') ; ReadIn(N,M) ; Writeln (‘Enter first Array') ; for i:=1 to N do Read (L1[i]) ; Writeln ('Enter second Array') ; = for j:=1 to M do Read (L2[i]);

صفحه 160:
End Else if L1[i] < L2[j] Then Begin L3[k]:=L1[i] ; ;1 زرح( End Else Begin ‏]ناک ۶ ۶ ] ون‎ 1 3 1» < 1+1 ‏رز‎ ‎۲۵ | ‏ق ] اج(‎ i=l ‏زع نل‎ +1: end ; k =k+1; } ل ل سو

صفحه 161:
1 ‏ز 1+ 16 ع‎ end Else if j< =M Then for p:=j to M do Begin L3[k]:=L2[p]; k=k+1; 600, Writeln ; Writeln ('The result of merge is') ; for i:=1 to k-1 do Begin Write: (.L3) [1] 5).5 If (i mod 10)=0 Then Writeln ; End ; { end of merge } id. { End of program }

صفحه 162:
Begin Writeln (' Enter Number of sentence: ' ) Readin(N) ; Writeln (‘Enter sentence') ; for i:=1 to N do Read (state [i]) ; for i:=1 to N do if state[i] =‘ ' Then state[i]:='*' ; Writeln_ ; Writeln ('The output sentence') ; for i:=1 to N do Write (state[i]) ;

صفحه 163:
- کدامیک از دستورات زیر در مورد اعلان زیر صحیح است: ‎a: array['A'..'Z'] of‏ ‎char‏ ‎‘af A]: ='Z-w‏ ب- ۸ 2 :2۰1 ۲] 5 ۰ ج- 2-1 :1 ' 1ه د- 12 2 :1 1۰ ۲ ] 2 ح- 12 < :1 ۲1۰] 2

صفحه 164:
a: array | -2U.. LU] Of char ‘a: array [ -20..-20,0..-20] of 'A'..'Z a: array [ Booleam ] of char a: array[1..10,'A'..'Z'] of integer

صفحه 165:
تمرینات برنامه‌نویسی * برنامه‌ای بنویسید که که یک آرایه حداکثر ۵۰ عنصری را از ورودی دریافت کرده و سپس عناصری از ارایه که او هستند را با صفر جایگزین کرده ارایه حاصل را در خروجی چاپ کند. برنامه‌ای بنویسید که عددی از ورودی دریافت کرده سپس آن را به عامل های اول تجزیه نماید و حاصل را بصورت زیر در خروجی ذجاب: لمانب برای مثال: ۳-۲۱ ۱ ۷ ۱)

صفحه 166:
برنامهاى ب که یک عدد از ورودی دریافت کرده سپس در صورت وجود صفرهای آن را حذف نموده. نتيجه را در خروجى جاب نمايد. * برنامه ای بنویسد که یک ماتریس ۵ * ۵ رااز ورودى دريافت كرده سبس مجموع هر سطر را انتهای همان سطر و مجموع هر ستون را در انتهای همان ستون چاپ نماید.

صفحه 167:
ماتریس هم پر حسب ستون و هم بر حسب سطر مرتب نموده به همراه ماتریس اول در يك سر عاك ابية * برنامهاى بنويسيد كه يك آرايه ‎٠٠١‏ عنصرى ازنوع صحيح كه ‎16١‏ عنصرمرتب درآن قرار مىكيرد را از ورودی دریافت کرده سپس آرایه دومی با ۵۰ عنصر را از ورودی بخواند

صفحه 168:
هدفهاي كلي شناخت ساختار تابع و روال شناخت توابع و روالهای استاندارد برای نوعهای صحیح شناخت توابع و روالهای استاندارد برای نوعهای اعشاری و کارکتری اشناخت توابع و روالهای استاندارد ریاضی

صفحه 169:
:دانشجو يس از مطالعه اين فصل بايد بتواند ا توابع و روالهای استاندارد را در صورت نياز در برنامه استفاده كند. ا ساختار توابع و خروجيهاى آنها را تشخيص داده و در برنامه خود از آنها استفاده كند. "1 ساختار روالها و خروجيهاى آنها را تشخيص داده و نتايج حاصل از آنها را مورد استفاده قرار دهد. #توابع رياضى را براى محاسبه عبارت رياضى در برنامه بكار ببرد.

صفحه 170:
EEE EEE << << "> ‏ساختار تابع‎ 4 در كل هدف تابع اينست كه متغير يا متغيرهايى را بعنوان يارامتر از برنامه اصلى دريافت كرد. عمل خاصى را روى بارامترها انجام داده و نتيجه را به برنامه اصلی برگرداند :شکل کلی فراخوانی توابع در برنامه اصلی بصورت زیر می‌باشد ساختار تابع: 1 ‎Function Name ( parameters )‏ ‎Type‏ ‏| | | | نوع تابع پارامترها اسم تابع کلمه ذخیره شده

صفحه 171:
‎EEE EEE << << ">‏ * توابعی برای اعداد صحیح و اعشاری ‎Abs at ¥‏ دف: باز گرداندن قدر مطلق ( 8۳5010116 ) پارامتري که به آن ارسال مي‌شود: ‎Function Abs (x: Integer ): Integer ; ‎Function Abs ( x: Real ): Real ;‏ اين تابع يك عبارت از نوع حقیقی یا صحیح را بعنوان آراگون دریافت کرده سپس .قدر مطلق آن را محاسبه و حاصل را برگرداند

صفحه 172:
Real ; Integer ; : = Abs (- 191.15 ) ; خروجی‌حاصل: ‎F= 191.15 I= 171‏

صفحه 173:
هدف: باز گرداندن سینوس یک عدد از نوع اعشاری Function Sin ( X: Real ): Real ‏تابع:‎ 6 یک عبارت یا عدد از نوع اعشاری بوده و حاصل مقدار سینوس ا می‌باشد.

صفحه 174:
Var X: Real ; Begin 2 : < 510 ) 10( : Write ('sin(10)=', x:8:2); End.

صفحه 175:
هدف: باز گرداندن کسینوس یک عدد از نوع اعشاری. تابع: ‎Function cos ( X: Real ): Real‏ ی کعبارتبا عدد از نوع لعشاریبوده و حاصلمقدار کسینوس ‎ilies‏

صفحه 176:
۴ X: Real ; gin X:=cos (10) ; Write ('cos(10)=', x:8:2) ; d.

صفحه 177:
هدف: بازگرداندن آرک تانژانت یک عدد از نوع اعشاری ; Function ArcTan ( X: Real ): Real ‏تابع:‎ 6 یک عبارت یا عدد از نوع اعشاری بوده حاصل مقدار آرک تانژانت ۱6 می‌باشد.

صفحه 178:
Var X: Real ; Begin X:=ArcTan (10) ; Write (' ArcTan (10) =', x:8:2) ; End. توجه: در صورتى كه در توابع مثلثاتى زاويه از نوع درجه ارائه شود :مى توان با فرمول زير معادل راديان آن را محاسبه كرد Real = Dey * 3.14159 / 180

صفحه 179:
هدف: عدد نپر ( 2.71828 < 6 ...) رابه توان یک عدد می‌رساند. شکل تابع: :) ‎Function Exp ( X: Real‏ ‎Real‏ ; 6 عباییا ستغیریاز نوع لعشاری‌بسوده و حاصلتسلبع نیز یکعدد لعشاری‌مواشد اين تابع مقدار عبه توان ۴ را محاسبه می‌کند.

صفحه 180:
X: Real ; i: integer ; Begin For i:=1 to 10 do Begin X:=exp (i) ; Writeln (x:8:2 ) ; End ; End.

صفحه 181:
هدف: قسمت اعشاری یک عدد اعشاری را برمی‌گرداند. Function frac ( X: Real ): Real ‏ل تابع:‎ عددعاز نوع لعشاییو حاصلتسلبع یکعدد لعنایی‌که قسمتلعشایی عدد 26 است می باشد و بعبارت دیگر این تابع قسمت اعشاری عدد ورودی را به عنوان خروجی باز می‌گرداند.

صفحه 182:
0 Y,X: Real ; gin X: = frac (24.769) ; Y: = frac (- 12.75) ; Write ('x=', 8:3,'y=',8:2 ); 0 ۰

صفحه 183:
هدف: قسمت صحیح یک عدد اعشاری را برمی گرداند. ‘unction Int ( X: Real ): Real ‏تابع:‎ ا يكعبارتيا متغير از نوعلمعشايىو خروجىتابع فيزيكعلد اعشارى است اين تابع مقدار صحيح يك عدد اعشارى در خروجى نشان می‌دهد.

صفحه 184:
X: = Int (2.87) ; 4:2:0: ( Y: = Int (- 8.76) ; =

صفحه 185:
هدف: محاسبه لگاریتم یک عدد اعشاري در مبناي ». ; Function Ln (X: Real ): Real igh ‏شکل‎ 6 ی کعبایتی| متغیر ازنوع لعشاریوده وحاصلتلیع فسیز یک ادلءاییم ی شا

صفحه 186:
r X: Real ; »gin X:=Ln (2.87) ; {x = 3.73767 } Write ('x=',x:10:5) ; id.

صفحه 187:
هدف: فرد بودن عدد صحیح را بررسي مي کند. unction odd ( X: logint ): Booleam ‏کل تابع:‎ یکعبایساز نوع 10120110 لستو تسلبع .فرد بسودنعباینتوا بسروسیمیک: اگر مقدار خروجی تابع 1۳016 باشد 16 فرد است و اگر مقدار خروجی تابع ‎alse‏ ‏باشد ک ردنست.

صفحه 188:

صفحه 189:
هدف: غالباً براى يبدا كردن كد اسكى يك متغير كاراكترى بكار می‌رود. شکل تابع: :) ‎Function Ord (x: char‏ شارت ۲ از نوع كاركتري را بعنوان بارامتر دریافت وكد اسكي أن را برمي كرداند. اكر : از نوع اسكالر باشد تابع بعنوان خروجي ترتیب قرار گرفتن : رادر مجموعه اي که ابتدا به عنوان اسکالر اعلان شده, باز مي‌گرداند.

صفحه 190:
Var ch: char ; Begin For ch:='A' to ‘Z' do Write (ord (ch):5) ; کد اسکی " ۸" تا" 2 ' را درخروجی چاپ می‌کند كد اسکی ۲ ۸ ۰ عدد 1۵ می‌باشد.

صفحه 191:
هدف: عدد پی را بر می‌گرداند. Function pi: Real ‏کل تابع:‎ اين تابع برای بازگرداندن عددی پی ( ۳۱۶۱۵۹۲ ۰۰۰) مورد استفاده قرار می‌گیرد.

صفحه 192:
هدف: مقدار قبل مقدار پارامتر را بر مي گرداند. on pred (x): <same type of parameter > ; ۲ پارامتر تابع می تواند از هر نوع باشد و با توجه به نوع پارامتر تابع نیاز از هم نوع می‌باشد و خروجی تابع مقدار قبل از * می‌باشد.

صفحه 193:
{ flag = {i=- Ch: = pred ('d') ; c'} i: = pred (15) ; 14 } flag: = pred ( True) ; false } i: = pred (- 30) ; 31 }

صفحه 194:
۲ تابع 1۳۵۱000 هدف: برای تولید عدد تصادفی :شکل تابع ‎Function Random: Real ;‏ )1 ‎2)Function Random (x: word ):‏ ‎word ;‏ اگر تابع 13210010180 به شکل یک یعنی بدون آرگومان مورد استفاده قرار گیرد یک عدد تساوی از نوع اعشاری بین صفر و یک تولید می کند و اكر به شكل دو بكار رود باعث تولید یک عدد تصادفی از نوع ۷۷0۵1 که بزرگتر یا مساوی صفر و کوچکتر از * است خواهد شد. ‎

صفحه 195:
Var i: integer ; Begin For i:=1 to 10 do Begin Writeln ( Random : ‎Writeln‏ ه55 ‎(Random )20(:8) ;‏ ‎End ; End. ‏۰ عدد تصادفى بين صفر و یک. و ۱۰ عدد تصادفی بین ۰ و ۶۰ تولید نماید.

صفحه 196:
هدف: برای گرد کردن اعداد اعشاری بکار می رود. تابع: ‎Function Round (x: Real ): Longint‏ ( یکعبارتیامتفیر لعشاری‌سوده وخروجی‌تلبع ‎Longint ¢ 5!) sess‏ ی‌باشد که نتیجه گرد کردن26 می‌باشد. اين تابع 6 را به نزدیکترین مقدار حیح گرد می‌کند.

صفحه 197:
BS ‏و‎ reese cs ۱ 2 Bes Keune Cot) {i=60 0 ‏اه‎ {i=13 : aia anim {i=12 8 ۱۱ بو i: = Round (17.45 ) {i=18

صفحه 198:
هدف: برای محاسبه محذور یک عدد صحیح یا اعشاری بکار می‌رود. شکل تابع: Function sqr (x: Integer ): Integer ; Function sqr ( x: Real ): Real 7 * عبارتی یا متغییری از نوع صحیح یا اعشاری بوده و خروجی تابع فیزیک یک عدد صحیح یا اعشاری می باشد این تابع مجذور 16 را بعنوان خروجی بر می‌گرداند.

صفحه 199:
Var i: integer ; Begin For i:=1 to 10 do Writeln ('I* 2=' , sqr )1(( ‏ز‎ End.

صفحه 200:
Function sqrt (x: 0 0 ; Real ): Rea بر کت ‎ee ee‏ ‎ah ltl ys‏ جنر # را بسعنولن‌خروجوبر میگ ردلند

صفحه 201:
Y, X: Real ; Begin Y: = sqrt (64) ; {y=8} Z:= sqrt (0.16) ; {z=0.4 Write ('x =',x:8:2,'y=',y زلف ‎End.‏

صفحه 202:
هدف: مقدار بعد از مقدار فعلی را برمی گرداند. Function succ (x): same type of ‏شکل تابع:‎ ‏زر‎ parameters ‎X‏ یک عبارت از نوع صحیح. اولین و غیره بوده و خروجی تابع نیز از همان نوع 3 مى باشد اين تابع مقدار بعد از ۱ را بعنوان خروجی بر می‌گرداند.

صفحه 203:
ch : = suce ('a') {ch='b'} ch: = suce ('A') {ch='B'} i: =suce (15) {i= 16} flag : = suce ( false ) { flag = True } flag : = suce ( True ) { situa = 5 }

صفحه 204:
هدف: قسمت صحیح یک عدد اعشار را بر می‌گرداند. Function Trunc (x: Real ): ‏شکل تابع:‎ ; Longint ‎x‏ یکضارتنا متعیر از نوع شاوی ودد و خروجی‌تسلبع یکعدد از نوع ‎Longint‏ می‌باشد. این تابع قسمت صحیح عدد اعشاری ۶ را بعنوان خروجی بر می‌گرداند.

صفحه 205:
x,i,j: Longint ; Begin i: =trunc (12.5) ; {i=12} j: =trunc (12.4) ; {i= 12} k: = trunc (13.5) ; {k=13} Writeln ('T=',i1:5 ,'j=',j:5,' ‏(5:علا,' دعا‎ : End.

صفحه 206:
ee ‏توابع از نوع کاراکتری‎ * در این بخش توايعي رآ بررسي مي کنیم که خروجي آنها ار نوع كاراكتري باشد ‎chr at ¥‏ هدف: معادل کاراکتری یک کد اسکی را بر می‌گرداند. Function chr ( X: Byte ): char ‏کل تابع:‎ يكعبارتيا متغير از نوع باتبوده و خروجىتالبع يككاركتر موياشد ن تابع کد اسکی را دریافت کرده و معادل کارکتری آن را بر می‌گرداند.

صفحه 207:
Var , i: Byte ; Begin For i:=65 to 91 do Writeln (chr (I) ) ; End. ‏خروجی‎ : برنامه بالا حروف ۸ تا 2 را در خروجی ‎le‏ می‌کند.

صفحه 208:
هدف: براي تبديل يك كاراكتر به حرف بزرگتر بکار مي‌رود. Function Upcase ( ch: char ): ‏شکل تابع:‎ ; Char یک عبارت یا متفیر از نوع کاراکتر بوده و خروجی تلبع فیزیک کاراکتری باشد این تلبع حرف کوچک رابه حرف بزرگ تبدیل کرده و بعنوان خروجی حروف بزرك را بر مى كرداند.

صفحه 209:
yte ; (‘enter Numbers:') ; m(N); i:=1 to N do Read (Sen[il]) ; In ; i:=1 to N do If (sen[i]>='a') and (sen[i] sen [i]: = Upcase (sen [i] In (' Out pot of program ') ; i:=1 to N do Writeln (sen [i]) ; f program } اسر دسر

صفحه 210:
EEE EEE ‏روال‌هاي استانداره‎ * در بخش های قبل دیدید که در توابع پارامترها به تابع ارسال می شود و تابع نیز مقداری را بعنوان خروجی برمی‌گرداند روالها نیز مشابه توابع عمل می‌کنند با اين تفاوت که خروجی روالها از طریق پارامتر برمی گردانده می‌شود يا اعلان به .سیستم عامل می‌باشد. بنابراین روالها بدون نوع هستند :شکل کلی روال‌ها بصورت زیر می‌باشد Procedure Name | | | پارامترهاي روال اسم روال علمه

صفحه 211:
هدف: یک یا چند واحد از پارامتر ارسالی کم می کند. :شکل روال ‎Procedure Dec (Var X: longint ) ;‏ ‎Procedure Dec ( Var X: longint , N: longint ) ;‏ ۴ يكمتغير از نوع ]10100130 و بسصورمتفیریسویساشدلین روللکولحد از پسارلمتر ایسالکسم موکسند

صفحه 212:
Var 5 N : integer Begin N:=1201; Dec (N) ; {N= 1200} Writeln (N) ; Dec (N, 200) ; {W= 1000 } Writeln (N) ; End.

صفحه 213:
هدف: کنترل برنامه را به خارج از بلوک جاری منتقل می کند. Procedure ‏شکل روال:‎ > Exit این روال باعث می شود که کنترل برنامه از بلوک جاری خارج شود. اگر این روال در برنامه اصلی بکار رود باعث خروج از برنامه می‌شود. و اگر در یک روال يا تابع بکار رود باعث خروج از روال یا تابع شده و کنترل برنامه به برنامه اصلی منتقل می‌شود.

صفحه 214:
Var 9 i,j: integer ; Begin i: = 100; [ : 2 20 ‏ز‎ ‎Dec (i,j) ; Write (i) ; Exit ; End. : خروجی بعد از اتمام عمليات تابع 123:11 باعث خروج از برنامه می شود.

صفحه 215:
هدف: خاتمه دادن به اجرای برنامه Procedure ‏شکل روال:‎ ; Halt اين روال باعث خاتمه اجرای برنامه شده و کنترل برنامه به سیستم عامل بر كردة.

صفحه 216:
هدف: اضافه کردن یک یا چند واحد به یک متغیر cedure Inc ( Var X: longint ) ‏شکل تلیع:‎ ‏ماد‎ Inc ( Var X: longint , N: longint ) ; ا يكهبايتيا متغير از نوع 108001126 مىباشد دين ولليه مقنار متغير * يكيا جند واحد مضافه ميكند

صفحه 217:
Var N,i,j: integer ; Begin {i= 101} inc (j,N) ; {j = 210} Writeln (i=',i,'j=',j) ; End.

صفحه 218:
هدف: باعث تغیر نحوه تولید اعداد تصادفی می شود. Procedure ‏شکل روال:‎ ; Randomize وقتی در برنامه از تابع 18213010102 استفاده می‌کنیم اعداد تصادفی تولید شده در اجراهای مختلف یکسان می باشد برای جلوگیری از این وضعیت قبل از استفاده از تابع 182000100 روال 180110101026 را بکار می‌بريم. تا باعث تولید اعداد تصادفی متفاوت در اجراهای مختلف گردد.

صفحه 219:
Var i: word ; Begin Randomize; For i:=1 to 10 0 Writeln (Random (50) ) ; End.

صفحه 220:
EE E EE EEE ‏حل چند مثال برنامه‌نويسي‎ * 1 : 9 )1 > < 10 ( ‏مثال : برنامه ای بنویسید که یک ماتریس مربع‎ ‏از مقادیر صحیح را از ورودی دریافت کرده آنگاه عناصری که مربع کامل‎ ‏نیستند را صفر کرده و در نهایت ماتریس حاصل را در خروجی چاپ می کند.‎ ۳ ‏؟ تايوه‎ 26667 a:array[1..10,1..10]of integer ; gin Write (' enter Number:') ; For i:=1 to N do For j:=1 to N do Read: ((ai[ei jell) iy;

صفحه 221:
ali,j]sqr (Abs (ali,j1))) Then 8 ‏یرل زود‎ Writeln ('The oupput Mafrix') ; For i:=1 to N do Begin For j:=1 to N do Write (a [i,j 1:5) 3 Writeln ; End ; End. { End of program }

صفحه 222:
Vrite (' enter sentence ') ‏ز‎ ‎Repeat ‎Read (sen[i]) ; Ing: Giy ¢ Until sen[i]='.' ; Writeln ; n: = Dec(i) ; For i:=1 to n do If (sen[i]>='A')and (sen[i]<='B') Then sen[i]= chr(ord(sen[i])+(ord('a')-ord(' Writeln ('The result sentence') ; For i:=1 to n do Write (sen[i]) ; End of program }

صفحه 223:
+ تمرینات ‎i,j: integer 2 ۳‏ ۱.خروجی تمرینات زیر را تعیین کنید: ‎a aed‏ ز 20 < :[ 100 2< : 1 7 1001011 ‎Dec (j,10) ;‏ ‎Mead) 2‏ Writeln (1:25,j:5) ۶ y : integer ; in 7 : =Round (18.31) MoD 5 ; Writeln (y) ; -_

صفحه 224:
Chi = "A" 3 Ch: = chr(ord(ch)+3) ; Write (ch) ; Xe S112" s Suce Cx) 0: < BL Pred (ch) ; Write (x,ch) ;

صفحه 225:
EE EE EEE EE ‏موممئي‎ ‎۰ ۰ 5 ‏د‎ ** تمرینات برنامه‌نويسي ۱- برنامه‌ای بنویسید که تعداد ۱۰۰۰ شماره حساب بانکی ۷ رقمی بطور تصادفی بین ۵۱۱۹۶۳۲ و ۹۹۸۱۷۱۱ را تولید کرده و چاپ کند. ۲- برنامه ای بنویسید تا تعداد ۳۸ عدد تصادفی صحیح بین ۱۰ تا ‎۹٩‏ راتولید کرده سپس آن را در خروجی به شکل مربع وسط صفحه نمایش چاپ کند. ۳- برنامه‌ای بنویسید که یک عدد ۲۰ رقمی از ورودی دریافت کرده آن زار نگدعده: تک برقبی طرب: موجه و حامل رارجر خروعی جات تباتیت

صفحه 226:
فصلر عتغیرهایک ایلکتروو وشتهها (5100) هدفهاي كلي بررسی ساختار آرایه هایی از نوع کاراکتر معرفی نوع داد جدید به نام رشته مقایسه آرایه ای از کاراکتر و رشته شناخت توابع و روالهای استاندارد برای رشته ها

صفحه 227:
:دانشجو يس از مطالعه اين فصل بايد بتواند ja رایه‌ای از کاراکترها را در پرنامه پکار ببرد. 8 آرایه‌ای از کاراکترها را با رشته مقایسه کند. "لا اسمی افراد و غیره را با استفاده از آرایه‌ای از رشته مرتب نماید. #توابع و روالهای استاندارد مربوط به رشته‌ها را در برنامه خود بكار ببرد.

صفحه 228:
* متغيرهايي از نوع کاراکتر متغیرهای کاراکتری ظرفیت پذیرش یک کاراکتر ( شامل یک رقم. یک حرف از .حروف و يا يك كاراكتر ديكر ) را دارا مىباشئد مقدار دهیلینمتفیر ها بسه صوردویر مویاشد : s Meh: = "A ‏اگر بخواهیم متغیر های کاراکتری را از ورودی بخوانیم باید دقت بیشتری‎ ‏به ,خرج دهیم برای اينکه فضاهای خالی کاراکتر محسوب می شوند‎

صفحه 229:
Writeln (' equal ' ) Else Writeln (' Not equal') ; خروجی حاصل از قطعه برنامه بالا بصورت زیر است: Not equal

صفحه 230:
تیقم‌ها بسصویتزیر مقایسه میسوند -1 9 ع وين 1 مهد 35" هم 1 ۷ ‎PQS‏ ‏.رقمها از لحاظ كد اسكى يشت سر هم قرار كرفتهاند مقايسه مىشوند -2

صفحه 231:
EEE EEE << << "> ) 51 ( ‏متغيرهاي رشته‌اي‎ تعریف: مجموعه‌ای از کاراکتر را یک رشته نامیده و متغیر از نوع آن را .یک متغیر رشته‌ای می‌نامند این متغیر نیز مانند ساير متغیرها در قسمت تعاریف متغیرها ( ۷۵ ) معرفی می‌شود. در تعریف یک متغیر رشته‌ای معمولاً طول آن را مشخص می‌کنند. اگر طول تعیین نشود بطور قراردادی کامپایلر حداکثر طول را برای آن در نظر مى كيرد. حداکثر طول رشته ۲۵۵ کاراکتر می‌باشد.

صفحه 232:
طول رشته کلمه ذ< عیرهاشده | اسم رشته

صفحه 233:
Var S:string[10] ; Begin S:='pascal' ; Write (s) ; End.

صفحه 234:
; Read (s ) هنگام خواندن متغیرهای رشته‌ای اگر طول رشته ورودی از طول تعریف شده بیشتر باشد فقط به اندازه طول تعریف شده خوانده می شود و اگر طول رشته ورودی کمتر از طول تعریف شده باشد. رشته ورودی در منتهی‌الیه سمت چپ متغیر رشته‌ای قرار گرفته و بقیه متغیر رشته ای بدون محتوا تاق مق هائك

صفحه 235:
7[ می‌توان استفاده کرد:" ‎Write (s)‏ ; مثال : برنمه‌ای بنویسید که شماره دانشجوئی. اسم و فامیل دانشجوثی را .از ورودی دریافت کرده سپس در خروجی نمایش دهد

صفحه 236:
Name , family: string [ 40] ; Id: longint writeln (' Enter student number ReadIn (Id) ; writeln ('Enter Name') ; ReadIn (Name ) ; writeln ('Enter family') ; ReadIn ( family ) ; writeln (' Id Name Family writeln ( Id: 7 , Name, Var Begin

صفحه 237:
آرايه‌اي از رشته بصورت زیر تعریف مي‌شود: iy [1..length] of string نوع رشته اي طول آرايه

صفحه 238:
برای خواندن چنین آرایه‌ای بصورت زیر عمل می‌کنیم: r i:=1 to 50 do ReadIn (Name [i]) ; ‎ly‏ نمایش آرایه در خروجی بصورت: ‎For i:=1 to 50 do Writeln ( Name [i] )

صفحه 239:
ring[10] ; temp: i,j: Byte; riteln (' Enter Ten Names') ; r i:=1 to 10 do ReadIn (Name [i]) ; r j:=1 to 9 do for j:=i+1 to 10 do if Name [i] > Name [j] Then Begin Temp : = name [i] ; Name [i]: = Name[j] ; Name [j]: = temp ; End ; { sort Algrithm } ‘iteln ('The sorted list') ; r i:=1 to 10 do writeln (Name [i]) ; nd of program }

صفحه 240:
00 58 آسمي از ور و۳ اطلاعات اسم خوانده شده را در .صورت وجود در خروجى نمايش دهد Name , Family: array[1..50] of string[ 30] ; id: array[1..50] of longint ; Nam : string [ 30] ;

صفحه 241:
write ('Enter Name:') ; ReadIn (Name ) ; write ('Enter family:') ; Readln ( family ) ; write ('Enter student Number:') ; ReadIin (Id) ; end ; writeln ; write ('Enter Name:') ; Readin (Nam) ; -_

صفحه 242:
if Name[i] = Nam then flag : = false ; end ; If flag then writeln ('Not found') ; Else Begin writeln(' Id Name family ') write (Id, Name : 30, family : 30 ) ; end ;

صفحه 243:
موممئي ‎EE EE EEE EE‏ * توايع و روالهاي کتابخانه‌اي براي متغيرهاي رشته‌اي Concat at v مدف: الحاق دو يا چند رشته به یکدیگر Function concat (S1,S2,...,Sm): :عبات ‏شکل‎ ‎; string ‎٩2 , 1‏ , ... , 88 متفیرهایی از نوع رشته هستند و خروجی تابع نیز یک متغیر رشته‌ای است این تابع دویا چندتابع را به هم پیوند داده. و رشته حاصل را برمی گرداند.

صفحه 244:
Str3 ‏ر‎ str1 , str2: string egin Str1 : ='Pascal' ; 572 : < ۲ 0016۲ Str3 : = Concat ( Str1 , Str2) ; write ( Str3 ) ; nd. با اجرای برنامه فوق. عبارت 0016 ‎Pascal‏ نشان داده خواهد شد.

صفحه 245:
ندف: استخراج یک زیر رشته ( 511053110 ) از یک رشته n copy (S:string ; Index:Integer; count: Integer): stri يكهبايتيا متغير پشته لی‌ک» می‌خولهيم از آن‌زیر پشته لی‌ک» نقطه 5 _ می‌ب‌اشد جدا کنیم لنا زیر یشته ‎legs Index ob , Count‏ لمستموياشد 0۷11 حاصل یکیشته که طوللنبه لنلازد

صفحه 246:
Var Strycstnil: string: 5 Begin Str: =' Pascal Book' ; Siriv= Capy( Str, 7,4) 74 Sri] Book } write (Str1) ; End.

صفحه 247:
هدف: حذف یک زیر رشته از یک رشته شکل‌روال: ‎Procedure delete (Var str: string;‏ ‎Index:integer;length: integer )‏ ; 5 یبکمتفر رشته لی 1110102 یکعبارتیامتغیر صحیح و 1.61101 نب ‎٠‏ عبارت يا متغیر صحیح می‌باشد. روال 126166 یک زیر رشته را از یک ته حذف می‌کند این روال از محل ‎Index‏ بطول 1.6۳01 از رشته ‎٩]‏ ‏ف می‌کند و رشته حاصل بعنوان خروجی روال برگردانده می‌شود.

صفحه 248:
Var St: string ; Begin St: = 'Pascal.Book' ; Delete (St,7,5) ۶ writeln (St) ; End. خروجی حاصل از برنامه فوق 389081 می‌باشد.

صفحه 249:
هدف: درج ( وارد کردن ) یک رشته در یک رشته دیگر Procedure Insert ( Str1: string ;Var :Jis, Js: ; Str2: string ; Index: Byte ) ‎Str’‏ عبارت يا متغیر رشته ای. ‎٩12‏ منغیر رشته ای و 11206 عبارتی دد از نوع ‎os‏ می‌باشد. روال 11561 رشته 9171 رادر رشته ‎Str2‏ ‏خانه ‎Index‏ درج می‌کند و رشته حاصل خروجی روال خواهد بود.

صفحه 250:
Var Str1 , str2: string ; Begin Str1: =' Pascal 7' ; Str2: ='Turbo' ; Insert (Str1, Str2,6) ; End. خروجی حاصل )3 ‎Turbo pascal 7 Yu ub,‏ خواهد بود.

صفحه 251:
هدف: محاسبه طول رشته Function length (Str: string): ۰ ‏شکل تابع:‎ ; Integer ‎Str‏ يكعبارتوشته لمويوده و خروجىتلبع يكعدد صحيح موياشد اين تابع طول رشته ورودی را محاسبه و بعنوان خروجی بر می‌گرداند.

صفحه 252:
Var St: string ; n: integer ; Begin St: = 'Turbo Pascal 7' ; n:=length(S4); {n=14} Write (' The length of string is:',n) ; End.

صفحه 253:
هدف: برای جستجوی یک رشته داخل رشته دیگر Function pos ( Strl: string ‏شکل تابع: :572 ز‎ ‏رز‎ String ): Byte 1 یک عبارت يا متفیر رشته ای و ‎٩112‏ نیز یک عبارت یا متفیر رشته ای می‌باشد و خروجی تابع یک عدد صحیح می باشد. این تابع محل اولین وقوع رشته 1 در رشته ‎٩۲2‏ را بعنوان خروجی بر می‌گرداند.

صفحه 254:
Var Str1 , Str2: string ; i: integer ; Begin Str1: =' Book' ; Str2: = ' Pascal Book' ; i: = Pos(Str1,Str2) ; {i= 8} ‎Write ('i=',i) ;‏ نکته: توجه کنید که اگر عمل جستجو با موفقیت انجام نشود ( ‎JPA, gas‏ .در رشته دوم وجود نداشته باشد ) تابع مقدار صفر بر می‌گرداند

صفحه 255:
هدف: برای تبدیل عدد به یک رشته عددی بكار مى رود. ال. 1: ( ‎Str: string‏ ر تقم؟ :تعاطا :1 )او وتال0 ۵8( ‎Procedure Str (F: Real: format, Str: string) :‏ ; درشکل ۰۱ 1 یک عبارت یا متغیرعددی بوده و ‎٩‏ یک متغیر رشته‌ای می‌باشد این روال یک عدد صحیح با فرمت مشخص را به یک رشته عددی درشکل ۲ ۰ 17 یک عبارت یا متفیر رشته‌ای و ‎٩۲‏ یک متغیر رشته‌ای می‌باشد

صفحه 256:
Var Number, Str: String ; Begin Str (543:5, Str) ; { Str=' 543' } Str (12.25: 7: 2 ,Str) ; { Str =* 12.25'} Str (127: 3: Str) ; 4 52 > ۰127" [ Str (3.1239: 7:3, Str) ; { Str =' 3.124'} End.

صفحه 257:
هدف: تبدیل یک رشته عددی به یک عدد ; Procedure Val (S: String ‏روال: ۱: 166۲ :۲ ۷۵۲ ز‎ ; (Var Error: inte¢ dure Val (S: String ; Var N: Real ; Var Error: inte¢ 5 یکعبارتیامتغیر يشته لی ۷( يكمتغير از نوع صحيح يالمعشايىو 1 نیز یکمتفیر از نوع صحيح مئباشد دين ولليكيشته عددى را ببه یکعدد صحیح یسا(عشاریتبدیلمی‌کند و لذرا توسطمتغير 1( بسرمی‌گردلند دگر عملتسبدیلسطور صسحیح لنجام شود. مقلار متفیر 281101 برلبر صفر در غیر اینصور تم حل و جود لشکل لوا مشخص رمک ند

صفحه 258:
‎F: Real ;‏ : " 475 ' ع غ56 ۳ ر 475 < ۸ 4 : (1 ,1خ , ‎٩‏ ) ۷۵1 ‎St=' 475' ; Val (St, F,E) ; {F= ,E=3 ‎St = '3.1716' ; Val (St, F,E) ; { F = 3.1716 ‎Begin ‎,E=0} ‎End.

صفحه 259:
موممئي ‎EE EE EEE EE‏ **ارائه جند مثال در مورد رشته‌ها و کاراکترها مثال : برنامه‌ای بنویسید که یک جمله از ورودی دریافت کرده سپس در صورتی که ‎TS ads‏ وجود داشته باشد انها را به 216 تبدیل نماید و در نهایت رشته حاصل را در خروجی نمایش دهد. توجه كنيد كه ممکن است بیش از یک بار کلمه 18 تکرار شده باشد در اینصورت همه کلمات 5] را با 816 تبدیل کند.

صفحه 260:
Writeln (' Enter sentence ReadIn (St) ; Repeat i: = Pos (‘is', St) ; if 1< 0 Then Begin Delete (St, i,2); Insert (‘are', St,i) ; end ; 1-141 ‏يت د‎ |)

صفحه 261:
Begin 1 Writeln ('Enter sentence') ; Readin (St1) ; j:=1; For i:=length(Stl) downto 1 do Begin Sta [jl<e= StL (i] » Inc (j) ; End ; Writeln ('The result') ; Writeln ( St1 ) ; Writeln( St2 ) ;

صفحه 262:
‎EE << << ">‏ تمرینات ۴ با فرض اینکه 51 , 92 , 93 متغیر های رشته ای ‏هستند خروجی عبارتهای زیر را تعیین کنید. ‎a)S3 =copy(S1,1,6) ; ‎b)S3 = concat (S3, 52, $1) ; ‎e@)S3'= copy'( $2.4. 1.,posCS1,, S2)—1 ).¢ d)Delete (S2, pos(S1,S2),length(S1)) ;

صفحه 263:
S1: string ; i: integer ; 91: = 'ABCDEF' ; For i:=1 to length(S1) ; Delete (S1,i,1) ; Writeln (S1) ; Var Begin -End

صفحه 264:
St: string ; i: integer ; ReadIn ( St) ; For i:=1 to length(St) Do 1] ) 5۲ ]1 [ < < ۲ 0۲ ( 280 ) 5۲ ]1[ > 2 9 1 Delete (St,i,1) ; Writeln (St) ;

صفحه 265:
رز ((52 , 51 ) 05 ر 52 , 91 ) 56۲ $: = copy (S2, pos (S1,S2), length(S1) ; 3: = copy (S2, pos (St, S2), length (S2) ; alete (S1, pos (S2,S1), length ) 52 (( ز 6 # 2: [ 0 ] ۱1

صفحه 266:
۳ 5 1 High * تمرینات برنامه‌نویسی *برنامه‌ای بنویسید که یک پاراگراف را از ورودی دریافت کرده ( حداکثر ۱۰ خط ) سپس: .الف) تعداد کلمات هر سطر را شمرده و انتهای سطر نمایش دهد .ب) تعداد حروف صدا دار را شمرده جاب نمايد .ج) تعداد خطوط برنامه را شمرده در خروجی چاپ کند .د) تعداد جملات هر خط را محاسبه و در سطر های جداگانه نمایش دهد

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

صفحه 268:
*برنامه‌ای بنویسید که دو عدد ۲۰ رقمی ( بصورت رشته باید خوانده شود ) را از ورودی دریافت کرده سپس مجموع و حاصل ضرب این دو عدد را محاسبه و در خروجی با پیغام مناسب چاپ نماید. *برنامه‌ای بنویسید که یک رشته از ورودی دریافت کرده سپس کلمات داخل آن را بصورت عمودی کاراکتر به کاراکتر نمایش دهد: *یرنم‌ای بنویسید. که یک پاراگراف با حداکتر ۵ خط را از ورودی دریافت نماید. سپس مجموع ارقام یا اعداد ( در صورت وجود ) هر خط را محاسبه نموده در انتهای همان سطر نمایش دهد.

صفحه 269:
برنامه‌هاي فرعي هدفهاي كلي ۷ شناخت اجزاء تشکیل‌دهنده توابع و روالها * بررسی انواع پارامترها و متغیرها در برنامه‌های فرعی * شناخت تفاوتهای روالها و توابع * معرفی مزایای استفاده از زیر برنامه‌ها eee

صفحه 270:
:دانشجو يس از مطالعه اين فصل بايد بتواند "" برنامه خود را به جندين زيربرنامه تقسیم‌بندی نماید. "" زيربرنامهها را با توجه به قوانين موجود. در ساختار برنامه جا دهد. ۴ باتوجه به مزایای استفاده از آنها را در برنامه خود بکار ببرد.

صفحه 271:
الم < << کچ * روال‌ها روال‌ها نوعی از برنامه‌های فرعی هستند. که به طور مستقل و جداگانه وظیفه یا وظایف خاصی از برنامه اصلی را انجام می‌دهند. روال ها در صورت نباز اطلاعات خود را از طریق پارامترها دریافت و همچنین در صورت نیاز نتایج را از طريق پارامترها به برنامه اصلی باز می‌گردانند. پارامترها در حقیقت خطوط .ارتباطی بین برنامه اصلی و برنامه‌های فرعی هستند. پارامترها باعث می شوند که توابع و روال ها روانتر عمل کنند. زیرا آنها به پرنامه های فرعی این قابلیت را .می دهند که با هر فراخوانی داده‌های مختلفی را مورد پردازش قرار دهند

صفحه 272:
Procedure Name (parameters list ) | | | vious siaelS ‏لیست پارامترها اسم روال‎ ar { List of locad variable } Begin 1 { Procedure Body } End af End of procedure }

صفحه 273:
اسم پرنامه اصلی ‎Program‏ : تعاریف برنامه اصلی ‎Procedure‏ ... ۳ Begin {main program } فراخوانی روال ها End. { End of program 1

صفحه 274:
(Formal parameters ) ¢5)50 sb xb.) (Actual parameters ) (ily (bs LLY. از پارامترهای صوری هنگام اعلان روال و از پارامترهای واقعی هنگام رفخولت رو لها لستفادد مشود

صفحه 275:
۱ و با نو < تصمیم برنامه نویس مورد استفاده قرار مي گیرند: ” يارامترهاى مقدارى ( 122323126166375 71731116) (Variable parameters ) «i ‏يارامترهاى‎ ”

صفحه 276:
پارامترهای مقداری. پارامترهایی هستند که مقدار متفیرهای فرستاده شده از برنامه اصلی را دریافت می کنند و وظیفه آنها فقط عبور دادن مقدار به روال می‌باشد. لذا تغییرات پارامترهای مقداری در روال به برنامه اصلی انتقال نمی‌یابد : ‏پارلمترهایس قداریب صوردزیر تعریفمی‌شوند‎ dure Name (varl1 : type ; var2:type,... ع مقداری اسم روال کلمه ذخیره شده

صفحه 277:
am main 2 , ۷1 , ۷2 : ۲ ure test (A1,A2,B1,B2:integer);{formal para —/ fi] x1,x2,yl, ‏ات‎ ; { Actual parameters } {End of program a

صفحه 278:
در مثال بالا این تناظر برقرار است: پارامترهای واقع ‎Al‏ ‎A2‏ ‎B1‏ ‎B2‏ متناظر است با نا پارامرهای وافعي برنامه اصلی انتحاب شوند. این به ‎gle‏ این تست که این پارامترها ( پارامترهای صوری ) همان پارامترهای واقعی هستند

صفحه 279:
متغیرهای ۰.۰ , ۷۵۲1 ر ۷۵32 پارامترهای مقداری هستند. توحه کنید. که این پارامترها صوری هستند و نوع و ترتیب آنها بايد با نوع و ترتیب پارامترهای واقعی در تناظر یک به یک باشند.

صفحه 280:
ram main 2 , ۷1 , ۷2 : 1 lure test (A1,A2,B1, B2: integer ); {formal pai Begin { main } test (x1 ,x2,yl,y2) ; { Actual paramete End. { End of program } —_—

صفحه 281:
همانطور که ملاحظه می کنید. روالی بنام 05 با ۶ پارامتر مقداری در پرنامه استفاده شده است. متفیرهای 1 ر 22 , 971 ر ۷2 از برنامه اصلی به روال 651 ارسال شده و بترتیب مقادیر این متغیرها در متغیرهای با همان نوع در ۸1 , ۸2 , 191 , 192 قرار می گيرند.

صفحه 282:
یک پارامتر متفیری. تفیرات یک پارمترواقمی را منوان حروجی به پرنامه اصلی برمی گرداند. تفاوت این گونه پارامترها با پارامترهای مقداری در ارسال تغييرات ايجاد شده در پارامترها می‌باشد. وقتی نیاز است. که نتایج روال به برنامه اصلی برگردد. از پارامترهای متغیری استفاده می‌کنند اعلان پارامترهای متغیری به صورت زیر می‌باشد: ‎dure Name ( var id1 : type ; var id2 : type‏ | ليست يارامترهاي متغيري اسم رواال تغيرهاى 16012 , 1611 و ... پارامترهای متغیری می‌باشند که نتايج روال. توسط , ع انها به برنامه اصلى بازكردانده مى شود.

صفحه 283:
را محاسبه و نتیجه را در برنامه اصلي چاپ نماید. ‎Num1, Num2: integer; Total,average:‏ Var Real; Procedure ComputeSumAve(Num1 , Num2: integer ; Var sum, ave: Real); Begin Sum:=Num1+Num2; Ave:=sum/2; End; {End of procedure} Begin {Main} WriteLn(' Enter Two Numbers');ReadLn(Num1,Num2); ComputeSumAve (Num1, Num2, total, average); ۳۳۳ WriteLn(‘The Sum is= ', sum:8:2 ,

صفحه 284:
پارامتر واقعی متناظر است با يارامتر هاى صورى Num1 Num1 Num2 Num2 Total sum Average ave 0 , 111721 پارلمترهایمتدایوو 2۷76 , ‎SUM‏ پارلمترهایمتغیرء باشند. که توسط آنها نتایج به برنامه اصلی برگردانده می‌شود.

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

صفحه 286:
-edure CalcSumAve ( Num1 , Num2: Read ); Sum , Ave: Real ; Sum:= Num1 + Num2 ; Ave:= Sum /2; WriteLn(' The Sum is =', sum:8:2 ) ; WriteLn(' The average is =',ave:8:2); ;{End of procedure}

صفحه 287:
مر ری ‎x‏ Y.

صفحه 288:
>dure test(var b: integer } a: Integer ); D: integer; {local variable} 1 D:=12;a:=bt+d; b:=at+c;c:=ct+2; 1 {Main} A= 1; b=2; 6:=3; Test(a,b); Writeln(‘a=',a,'b=',b,'’c=',c); {End of program} :خروجی پبرنامه بالا بصورت زير است ‎a =16 b=2 c=5‏

صفحه 289:
بکارگیری روال‌های بدون پارامتر بکارگیری روال همراه پارامترهای با خاصیت ورودی بکارگیری روال همراه پارامترهای با خاصیت ورودی و خروجی

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

صفحه 291:
Program Example ; Procedure Head Begin WriteL((Name Family Age No’); ۱۷۷ ‏ا ا م م )ام از‎ 0 End; Begin{Main} WriteLn(' open university ' ) ; Head; End.

صفحه 292:
همانطور که قبلاً اشاره کردیم» هدف از بکارگیری پارامترها انتقال مقادیر از برنامه اصلی به روال‌ها می‌باشد. اگر این انتقال یک طرفه باشد یعنی فقط از برنامه اصلی به روال باشد. این نوع پارامترها فقط خاصیت ورودی خواهند داشت. (قبلا در اين مورد توضیح داده شده است) در اين نوع روالها از پارامترهای مقداری استفاده مى كنئد

صفحه 293:
(1 nple ; NI: integer ; cedure sq( M: integer) ; egin WriteLn (‘sqartis=',M*M ); nd; n {Main} Write(' Enter Number = ') ; RealLn (N) ; For I:=1 to N_ do Sq (i) ; _ {End of program}

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

صفحه 295:
Program Example ; ‏سيت‎ ‎Var A, b: integer ; Procedure change (var x, y: integer) ; var temp:integer; Begin Temp:=x; Sy; Y:=temp; End;

صفحه 296:
Begin { Main } ReadLn( a,b); Change(a,b); WriteLn ('a=',a,'b=',b); End.{End of program}

صفحه 297:
۰ ۳ ** ارتباط روال‌ها با یکدیگر در پاسکال زیر برنمه‌ها نهتنها از طریق برنامه اصلی بلکه از داخل یکدیگر نیز ,فراخوانی می‌شوند فراخوانی روال‌ها از داخل یکدیگر تابع قوانین کلی زیر است: ۲ قلنون اول قانون دوم قانون سوم

صفحه 298:
از هر برنامه (اصلی یا فرعی) به برنامه فرعی در صورتی می‌توان. دسترسی داشت. که در بخش تعاریف ‎Of‏ برنامه (اصلی يا فرعی) قرار داشته باشد. بطور مثال در شکل زیر پرنامه اصلی 11 می‌تواند. به كليه برنامه‌های فرعی 1,2 و... که در بخش تعاریف برنامه اصلی قرار دارند. مراجعه کند

صفحه 299:

صفحه 300:
nd; egin {Main} ۳001: Proc2; nd.

صفحه 301:
والهاى 23062 , 101061 داخل برنامه اصلی 118310 تعریف شده‌اند. لذ راحتی می‌توان در برنامه اصلی به آنها دسترسی پیدا کرد. وال‌ها خود نیز داخل هم می‌توانند قرار بگیرند. دقیقاً مثل روال‌های معمولی این تفاوت که در داخل روال باید تعریف شوند. به اینگونه روالها. اصطلاحاً وال‌های متداخل یا تودرتو می‌گویند.

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

صفحه 303:
برنامه اصلى روال‌ها در شکل بالا چون 102 قبلاً معرفی شده است می‌توان آنرا داخل 3 فراخوانی کرد. Main 21 22 23 P2

صفحه 304:
گر روال‌ها در بخش تعاریف برنامه‌أی بصورت متداخل باشند. در اینصورت ز روال درونی می‌توان به روال‌های بیرونی که قبلا تعریف شده. راجعه کرد و همچنین از روال درونی به روال‌های بیرونی که به موازات کدیگر قرار گرفته‌اند. نیز می‌توان دسترسی پیدا کرد. لور مثال در شکل زیر روال 1 می‌تواند به روال‌های 2,03 دسترسی ییدا کند. وهمچنین روال درونی 124 می‌تواند به‌روال‌های 103 , 102 مراجعه کند

صفحه 305:
Main P3 22 Pl

صفحه 306:
‎EE << << ">‏ ** اعلان روالها به روش 1015172101 همانطور كه قبلاً اشاره كرديم از روالى مىتوان در روال ديكر استفاده کرد. كه قبلاً تعريف شده باشد. در توربوياسكال نقيصه فوق به كمك اعلان 01 قابل حل است. بدین صورت كه اكر روالى به هنكام تعريف با ‎forward ore!‏ همراه باشد. بدون رعایت از پیش تعریف شدن می‌تواند. ‏در روالهای دیگر ظاهر شود.

صفحه 307:
Procedure Name ( parameters ) ; ; forward | ۱ | ! ۱ کلمه ذخیره شده لیست پارامترها اسم روال کلمه ذخیره شده

صفحه 308:

صفحه 309:
End; همانطور که ملاحظه می‌کنید با اعلان روال 97063 ۳ بصورت 1201080230 بقیه روالها می‌توانند به آن 3 1 دسر لکد 212003 End. {End of program}

صفحه 310:
EE EE EEE EE ‏موممئي‎ ‎(Functions) ‏توابع‎ * نوع دیگری از برنامه‌های فرعی, توابع می‌باشند. توابع مانند روال‌ها. پیمانه‌های مستقلی هستند. با این تفاوت که روال‌ها می‌توانند. تعدادی خروجی داشته باشند. در حالی که توابع فقط یک خروجی دارند. در روال‌ها معمولاً خروجی‌ها توسط پارامتر به برنامه اصلی ارجاع داده می‌شود. ولی در توایع اینکار به نحو دیگر انجام می‌گیرد.

صفحه 311:
Function Name ( List Of Parameters ) : ; Function Type نوع تابع ليست پارامترها ‎wh pul‏ كلمه ذخيره شده

صفحه 312:
۰ دکنه — تابع فقط می‌تواند. یک خروجی داشته باشد. نوع خروجی تابع. همان نوع تابع محسوب مىشود. لذا با توجه به نوع خروجى تابع. نوع تابع تشخیص داده می‌شود. ذکر اين نکته خالی از لطف نیست که نوع پارامترهای صوری توابع معمولاً مقداری هستند چرا که توابع نوعی برنامه‌های فرعی هستند که فقط یک خروجی برمی گردانند. لذا استفاده از پارامترهای از نوع متغیری پسندیده نمی‌باشد. (اشکال کامپایلری در توربو پاسکال ندارد ولی در پاسکال استاندارد این کار اشکال کامپایلری دارد.) مقدار خروجی توابع توسط اسم تابع برگردانده می‌شود. توابع مثل روالها بعد .از قسمت تعاریف پرنامه اصلی ظاهر می‌شود

صفحه 313:
Name := Resualt Of Function ; End ;

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

صفحه 315:
N: Integer 7 on Fact ( M: Integer ): longint ; P, 1: Integer ; P=i1: For i:=2 To M _ do P= P'* Tx Fact:= P ; { Main } Write ('Enter Number='); Readln(N); Writeln (' Factorial is =', Fact (N )); {Call Func

صفحه 316:
ناحیه داده هاي اصلي_ ‏ 201" ناحيه داده هاي پارامترهای صوری ‎M‏ پارامترهای واقعی ‎N ‎ee ‏متفیرهای محلی‎ ‏نتیجه تابع‎ P 2 1 ‏نتیجه تابع‎ 2 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 317:
+ دوایع بار تسی ‎IRCCULSLUIL)‏ ‎(Functions‏ در پاسکال یک تابع یا روال می‌تواند. خودش را فراخوانی نماید. پیمانه‌ای که خودش را فراخوانی می‌کند یک پیمانه بازگشتی نام دارد. اين نوع توابع در ۶ ‏ی و واه وت اد وت ۰ ارت‎ s شرط خاص که غالباً به یک عدد ثابت ختم می‌شود. ادامه پیدا می‌کند. سپس مقدار تابع از پایین به بالا محاسبه می‌شود و در نهایت نتیجه تابع حاصل .می شود

صفحه 318:
را در محلی از حافظه بنام پشته (8126016) قرار می‌دهد. اگر بازگشت به تابع بازكشتى مجدداً صورت گیرد. مقادیر فعلی متغیرها مجدداً بدنبال مقادیر قبلی و اصطلاحاً در پشت مقادیر اولیه قرار می‌گیرند. هنگامی که شرط پایانی در تابع بازگشتی رخ می دهد. در اولین بازگشت مقادیری را که هنگام مراجعه به خود. در پشته نگهداری کرده مجدداً در دسترس قرار می‌دهد و بهمین ترتیب در باز گشت‌های بعدی این عمل تکرار می‌شود تا مقدار تابع محاسبه شود.

صفحه 319:
شرط پایانی | مقادیر متفیرها درآخرین بازگشت به تابع مقادیر متغیرها در سومین بازگشت به تابع مقادیر متغیرها در دومین بازگشت به تابع مقادیر متغیرها در اولین بازگشت به تابع

صفحه 320:
مقادير متغيرها درآخرين بازكشت به تابع مقادير متغيرها در سومين بازكشت به تابع مقادير متغيرها در دومين بازكشت به تابع مقادير متغيرها در اولين بازكشت به تابع

صفحه 321:
۳016 ‏ز‎ ‎N : integer ; on Fact ( N: integer ): Longint ; If N=1 Then Fact:= 1 Else Fact:= N * Fact(N-1); Writeln ('Enter Number' ) ; Writeln (' Factorial is =', Fact (N ) ); {Call Fur

صفحه 322:

صفحه 323:
Function GCD ( N,M:integer ): Integer ; Begin If (N<=M) and (M Mod N = 0) Then GCD:=N Else GCD:= GCD(M,NmodM); End ;

صفحه 324:
EEE EEE << << "> ۰ ۳۹ 2 ** مقايسه توابع و روالها توابع و روال‌ها هر دو برنامه‌های فرعی هستند. که بطور مستقل وظایفی را بر :عهده دارند. ولی در اين میان از بعضی جنبه‌ها متفاوت می‌باشند که عبارتند از حوم فرلخولنی‌آنها با هم متفاوتلست روا ها از طریقعبارلتو وا لفرلخولنده .1 ی‌شوند. درصورتی که فراخوانی تابع توسط عبارات مقایسه‌أی و یا تخصیص بجه به يك متغير صورت مى كيرد كام معلانيكتلبع. نوع تلبع يانوع نتيجه حاصلاز تلبع بايد ذكر شود. مورتى كه روالها نيازى به اين كار ندارند ولبع فسقط یک خروجوبرمیگ ردلنند ولیروا فا میسولنند چندین‌خریجی3 گردانند. درضمن نتیجه توایع توسط اسم تابع فرستاده می‌شود ولی روال‌ها طریق پارامترها. نتایج را برمی گردانند

صفحه 325:
* طربقه ارسال آرایه‌ها به توابع و روال‌ها آرایه‌ها خود مجموعه‌ی از داده‌ها می‌باشند. لذا برای ارسال آنها نمی‌توانیم از روش معمولی ارسال پارامترها استفاده کنیم. و بطور مستقیم نمی‌توان آنها را به برنامه‌های فرعی انتقال داد. برای ارسال آرایه‌ها به عنوان پارامتر به برنامه‌های فرعی از دستور 137106 استفاده می‌کنند. دستور 11/06 قبل از تعاریف برنامه اصلی بکار می‌رود و توسط این دستور در واقع یک نوع ساده‌سازی در تعاریف فراهم می‌شود. و با این ساده‌سازی می‌توان داده‌های

صفحه 326:
تعریف داده ساخت یافته = شناسه ‎Type‏ ‏برای مثال یک ارایه از نوع صحیح را تعریف می‌کنیم: ‎Type No = array [1...100] of intec‏ ; در اینصورت تعریف آرایه به. ۷0[ نسبت داده می‌شود. اگر بخواهیم متغیری از نوع آرايه بالا تعريف کنیم. آنرا از نوع ‎3٩0‏ تعریف می‌کنیم: ‎ar‏ ‎Number: No ;‏

صفحه 327:
m Example ; a=array[1..100] of integer ; B:a; N: Word ; 1 Search (b:a; N: Word ; x: integer ) : W [, Index: Word ; Flag: Boolean; { local vari Index:= 0 ; Flag:= TRUE ; —_—

صفحه 328:
Index:= I ; Flag:= FALSE ; End ; Inc (1); End ; Search:= Index ; End ; LORE EOE OEE CETTE eee 1 —_—

صفحه 329:
Begin { Main } Writeln (' Enter Number' ) ; ReadIn ( N); For I:=1 To N Do 1۱۵2010 ) ‏]ظ‎ 11( Writeln (' Enter ‏۲محامصی لح‎ ) ; ReadIn ( x ); If Search(b,N,x)=0 Then Writeln (' Not Found ') ; Else Writeln (Search(b,N,x) ); End. {End Of Program }

صفحه 330:
* تمرینات " روال ‎Down‏ را در نظر بگیرید: 601111 Down ( N: Integer) ; in While N>0 do Begin Write (N: 3); Dec (N); End ; 7 ب) وقتی روال بصورت )5( ‎down‏ فراخوانی شود. چه چیزی چاپ می‌شود ب) مقدار پارامتر واقعى 7 بعد از اجرای روال چیست؟

صفحه 331:
ion MyStery ( M,N: Integer): integer If N= 1 Then MyStery:= 1 Else MyStery:= M* MyStery(M,N-1) ; { End Of Function } ف) تابع بازكشتى بالا را به ازاء مقادیر 1۷]<5 , 4 ۱[ فراخوانی کنید. ب) تابع بازگشتی بالا را به ازاء مقادیر 1۷1-53 ر 25 لا فراخوانی کنید.

صفحه 332:
:ی © تمرینات برنامه‌نويسي " برنامه‌ای بنویسید که اطلاعات حداکثر ۱۰۰ دانشجو که عبارتند از: ‎vt Family Nanie‏ اسم 900 شماره دانشجوئی را از ورودی دریافت کرده سپس: الف) توسط روالی بنام :501 اطلاعات را برحسب شماره دانشجوئی مرتب کند. ب) توسط تابعی بنام 5628۳610 شماره دانشجوئی فردی را از ورودی دریافت نماید. در صورتی که شخص موردنظر در لیست باشد. سایر اطلاعات آنرا

صفحه 333:
* آرایه‌آی از نوع صحیح با حداکثر ۱۰۰ عنصر را در نظر بگیرید. برنامهأى بنويسيد كه ابتدا آرايه را از ورودى دريافت کرده سپس با استفاده از يك تابع بازكشتى بيشترين مقدار آرايه را محاسبه نمايد. " دو آرايه مرتب حداكثر١١٠‏ عنصرى كه شامل اسامى افراد مىباشد را درنظر بكيريد. برنامهاى بنويسيد كه نخست دو آرايه را از ورودى دريافت نموده سيس توسط روالى بنام 6 اين دو آرايه در هم ادغام نموده و در آرايه سومى قرار دها

صفحه 334:
فصر10 مجموعدها و دادههاي شمارث هدفهاي كلي ۰ مهو م مجموعه و داده‌های شمارشی در زبان ر زبان پاسکال e ‏مجموعه و دادههاى شمارث‎ ‏رشی به عنوان متخ‎ ‏متغير‎

صفحه 335:
:دانشجو يس از مطالعه اين فصل بايد بتواند 5 مفهوم مجموعه و داده‌های شمارشی را درک کند. ۴ بتواند در صورت لزوم از مجموعه و داده‌های شمارشی استفاده کند.

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

صفحه 337:
* مجموعه‌ها (عاه6) در زبان پاسکال مجموعه مفهومی شبیه به مفهوم مجموعه در ریاضیات جدید دارد. متفیری است که شامل لیستی از اعداد صحیح. ‎SINS‏ بولین و یا از نوع همارشفئ :و ياشد كه :دا راق داد هاض موه بجهدا رده ها می پاش ناو این جهت بسیار شییه به یک ‎ail‏ در زبان پاسکال است که شامل داده‌عانی از یک نوع می‌باشد. ولی آرایه دارای عناصر محدودی نیست و در ضمن مانند .آرایه تعریف نمی‌شود

صفحه 338:
برای تعریف يك مجموعه از کلمات کلیدی 0 56 بصورت زیر استفاده می‌کنیم: Type Name= Set of Type Of Set; Type Digit_type = 0..9; Digit = Set of Digit_type

صفحه 339:
1 ar ch: set of char; 55 HO PP ot of boolean; faBumreet of byte; 0..255 5 x: set of 100..200; y: set of ‘a'..'z'; z: set of '0'..'9';

صفحه 340:
عضو مجموعه می‌باشد يا خیر. این عمل در زبان پاسکال با کلمه کلیدی ‎in‏ صورت می‌گیرد. اگر عضویت صحیح باشد جواب 11116 وگرنه ‎False‏ می‌باشد. همچنین دو مجموعه را می‌توان با علامات شرطی = < > <- و >-مقایسه کرد که همگی دارای خروجی درست يا غلط می‌باشند. ولی‌علامات شرطی < و > در مورد مجموعه‌ها کاربردی ندارد.

صفحه 341:
Begin oe a:= [1..3,4]; Jee: if 3 in a then write('3 is in set a') جايميشود else write(‘'3 is not in set a‘); write(3 in a); True write(8 in a); False write([1,2,3,4,] = a); True write([1,2,3,4] = [2,2,1,1,1,3,4,41); True ۱ write([1,2] = [1,2,3]); False write([1,2] <= [1,2,3]);

صفحه 342:
در ریاضیات می‌توانیم مجموعه‌ها را با هم اجتماع اشتراک و تفاضل کنیم که اين عمليات در پاسکال با عملگرهای +. * و - به ترتیب می‌باشد. اجتماع دو مجموعه ترکیبی از همه عضوهای آنها است و اشتراک یعنی عضوهایی که در هر دو مجموعه مشترک است و تفاضل یعنی اعضایی که در مجموعه اول می‌باشد و در مجموعه دوم وجود ندارد.

صفحه 343:
a: set of byte; b: set of 0..10; c, d, e: set of byte; gin a:=[0,1,2,3]; b:=[2,3,4,5]; c:= a+b; 0,1,2,3,4,5]=[0..5] d:= a*b; d=[2,3] e:= a-b; e=[0,1] id.

صفحه 344:
۱. آرگومان ورودی روالها می‌تواند مجموعه باشد که قبلاً در تایپ تعریف شده باشد. نه اينكه مستقيم در روال به عنوان آرگومان بياید. ولی خروجی یک تابع نمی‌تواند از نوع مجموعه باشد. ۲ برای نوشتن يا خواندن مجموعه‌ها باید عضو به عضو عملیات صورت بگیرد و مستقیماً توابع ‎Read‏ ۰ روی آنها کار نمی کنند.

صفحه 345:
Program test ; Var num , temp : set of byte; I, c: integer ; Begin Writln (‘Enter numbers: Readln( 1) ; Num :=[]; 0 (0) 2 —_

صفحه 346:
while (i >-1) do begin c:=c+1; temp :=[I]; num := num + temp ; ReadIn( 1); end; for 1:= 0 to 255 do if (i in num) then write(i:5 ) ; End.{ End Of Program }

صفحه 347:
>" << << آآآآآاسا"اآ۳ * داده‌های شمارشی ‎(Enumeration)‏ ‏داده‌های شمارشی. یک مجموعه مرتب از اعداد است که در برنامه. هر عدد دارای نام بخصوصی است. این نامها در داخل دو پرانتز باز و بسته قرار می‌گیرند و بترتیب از صفر مقدار می‌گیرند مگر اینکه برنامه‌نویس به آنها .مقدار مخصوصی بدهد

صفحه 348:
۷06 0 Jar Cars_type = (Peykan, Pride, Pegout, Cars: cars_type; حال در پرنامه 0815 می‌تواند مقادیر داخل داده‌های شمارشی را بگیرد: cars:= Pride; cars:= PK;

صفحه 349:
۱ 1۵79 ۵6 = (sat, sun, mon, tue, wed, thu, fri ); Var Day: Days_type; Begin Day:= Mon; i:= ord (sat) + ord (day) + (succ(sat)); j:= ord ( pred (sun) + ord (pred (fri)); writeln(i:5, j:5); End. 1-3 j=5 : خروجی

صفحه 350:
متغیر داده شمارشی شبیه مجموعه‌ها حداکثر دارای ۲۵۹ عضو می‌تواند باشد که از صفر تا ۲۵۵ شماره گذاری می‌شود و لذا یک بایت حافظه را اشغال می‌کند.

صفحه 351:
و به عنوان آرگومانهای روالها و یا خروجی توابع می‌تواند درنظر گرفته شود ولى حتماً بايد در 1106 تعریف شده باشد و مستقیماً نمی‌توان بکار برد. اين عمل مشابه مجموعه‌ها و آرایه‌ها نیز می‌باشند. لذا ابتدا در 13706 تعریف می‌شود. سپس به عنوان ورودی و یا خروجی روالها استفاده می‌شود وگرنه خطای کامپایلری پیش خواهد آمد. همچنین می‌توان در آرایه‌ها از داده‌ها شمارشی استفاده کرد.

صفحه 352:
rogram test: ‏را حساب کند.‎ ype days_type = 1t,sun,mon,tue,wed,thu,fri ) ; ar day: days_type; i: byte; egin Write('Enter your days number: ' ); ReadIn(i); While (i>=0) and (i<=6) do begin Case I Of

صفحه 353:
4: day:= wed; 5: day:= thu; 6:day:= fri; end; Case day Of sat: writeln (‘your day is sat'); sun: writeln (‘your day is sun’); end; 1 ۱ 1۲62 019 )01(*

صفحه 354:
‎٠‏ تمرینات ‎A=[1,3,5,7] ,‏ , [8-12,4,6 و [1,2,3]-0) باشد عبارات زير ر فى کنید. ‏الف- (00- 8) + لكر ب ‎A + (B*C)‏ ج- ‎A+B+C‏ ‎inA2 -8

صفحه 355:
"برنامه‌ای بنویسید تا مجموعه ای از کاراکترهای کوچک را گرفته و به یک مجموعه از کاراکترهای حروف بزرگ متناظر با آن تبدیل کند. به کمک داده‌های شمارشی. برنامه ای بنویسید که نام دانشجویان يك كلاس را در برگیرد و هر دانشجو نیز یک شماره داشته باشد. سپس با دریافت نام او شماره او در نمایشگر چاپ شود.

صفحه 356:
فصل11 وكورهها (18620105) هدفهاي كلي * مفهوم ركورد و اجزاى آن * انواع ركوردها و استفاده از آن در برنامه * معرفى مزاياى ركوردها در برنامه

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

صفحه 358:
نوع داده ساخت یافته‌ای که در اینجا مطرح می‌شود. ر کورد نام دارد که حهت نگهداری داده‌های مختلف نظیر نام نام خانوادگی. سن و آدرس برای یک دانشجو بكار می‌رود. رکوردها برخلاف آرایه‌ها که دارای عناصر از یک جنس و نوع هستند. دارای عناصر از انواع مختلف می‌باشند. اطلاعات از نوع مختلف را نمی‌توان در آرایه نگهداری کرد چرا که دارای جنس مشابه نیستند و لذا از ساختاری به نام رکورد استفاده می‌شود.

صفحه 359:
ب ب ب <ج ب ب << 1۳11[ ** تعریف ركوردها نوع داده ساختيافته اى كه از يك سرى داده ها يا اطلاعات مرتبط به هم تخل مق شوه هر کدام از اطلاعات را یک فیلد می نامند بطور کلی تعریف نوع رکورد در زیر آمده است: ‎ype‏ ‎Name = Record‏ ‎Field1-list : type1;‏ ‎Field2-list : type2;‏ Fieldn-list : typen; End;

صفحه 360:
Type Student = Record Name: String [10]; Family: String [15]; Age: integer; Address: String; End; در اين تعريف ‎Student‏ 3 ¢ 18600۲0 است. حال می‌توان در 1 برنامه تعریف کرد: ‎Var‏ ‎S: Student;‏

صفحه 361:
براي دسترسي به فيلدهاي رکورد ازعلامت *." استفاده مي‌شود. يعني بصورت زیر: نام فیلد . نام متغیر رکورد مثال: برنامه‌ای بنویسید که رکوردی از نوع اعداد ایجاد کرده و مقادیر آنرا مقدارهی کند.

صفحه 362:
end; Var Num = Numbers; begin Num. a Num. b: Num. x Num. y: Num. z Write (Num.a 1 Num.b + Num.x + Num.y + Num.z); End.

صفحه 363:
Type Student = record Id: integer; Name: string[10]; Family: string[15]; Sex: char; Age: integer; End; Var Stu: student;

صفحه 364:
Stu.sge: =18; Case sex of 'M': write('Mr.'); 'F': write('Mrs.'); end; write(stu.name, '' stu.family); End.

صفحه 365:
برای بدست آوردن فضای اشغال شده توسط رکورد ابتدا باید فضای اشغال شده توسط تمامی‌فیلدها را بدست آورده و سپس باهم جمع کنیم. مثال زیر را درنظر بگیرید:

صفحه 366:
A, B: Real; = yer C, D: String [10]; 3 ett F: Array [1... 10] of Boolean; 3 Yee G: list1; 3 ۷*۵ x: Rectype; ۱۰+۱۰+۱۱+۱۲-۳ بایت فضا اشغال می‌شود. ir

صفحه 367:
EEE EEE F399 Go 495, * فیلدهای یک رکورد می‌توانند از هر نوعی باشد. از جمله می‌توانند از نوع رکورد دیگری باشند. در اینجا نیز مشابه قبل دسترسی به همان صورت می‌باشد فقط به تعذاد رکوردهای تودرتو؛ ۱ پیش می‌آید ‎Type‏ ‏به مثال زیرتوجه کنید: Rec = recor a, b: nteger; c: char; x: Record p: integer; q: integer; ا 5

صفحه 368:
0 Rec; ‏دراینجا یک رکورد تودرتو به نام 1*00 تعریف شده است که متغیر ۲ از آن‎ ‏نوع تعریف شده است. سپس برای دسترسی به فیلدهای 6, 0 , 2 می‌توان‎ به صورت زير عمل کرد: ‎ra‏ ‎r.b‏ ‏ولی برای دسترسی به فیلدهای ]6, 0 چون متعلق به رکورد > نیز هستند داریم: 9 1.

صفحه 369:
:ی ‎٠‏ آرايه‌اي از رکوردها هنكامى كه ما تعدادى داده مشابه داريم ولى در هريك. دادههاى مختلفى وجود دارد می‌توانیم یک رکورد تعریف کرده. سيس آرايهاى از آن تعريف كنيم. ‎e‏ ‎student = record‏ ‎Name: string[10];‏ ‎Id: integer;‏ ‎Age: integer;‏ ‎End;‏ ‎Arr_stu: array[1..10] of student;‏ 5: Arr_stu;

صفحه 370:
5 ارايه 5 از نوع آن تعریف شده است. مشابه ساختار آرایه چیزی عوض نشده است و فقط هر عنصر آرایه یک رکورد می‌باشد که دارای سه فیلد مطابق جدول فوق می‌باشد. و ترس ی رب من S[1].age S[2].name S[2].id

صفحه 371:
ب ب ب <ج ب ب << 1۳11[ ارسال ر کورد به زیربرنامه‌ها ید زا نیت ومع ور ‎Sg a‏ پارامترهای نتغیر و مقدار به زیربرنامه ارسال کرد. ولی نوع برگشتی ‎fi‏ نمىتوانة ا ز نوع رکورد باشد. یعنی حتماً باید از نوع ساده نظیر ‎..g integer. Char‏ اشد و از انواع ترکیبی نظیر رکورد. ‎eu‏ مجموعه و فایل نمی‌تواند باشد. اگر بخواهيم رکوردی را بصورت پارامتر به زیربرنامه ارسال كنيم, ابتدا بايد آنرا در 706 تعریف کرده و سپس ارسال شود وگرنه کامپایلر خطا صادر می‌کند.

صفحه 372:
Type Stu-rec = Record Name: string [10]; ID: integer; Age: record Day: integer; Month: integer; Year: integer; End; End; Stu_arr=array[1..no] of ‏سک‎ و

صفحه 373:
Stu: stu_rec; Procedure ReadStu(Var S: Stu_rec); Var i: integer; Begin for i:= 1 to no do ReadIn(S[i].name, S[i].id, S[i].age.day, S[i].age.month, S[i].age.year); End;

صفحه 374:
War 1 ۳ Begin for i:= 1 to no do Writeln(S[i].name,'', S[i].id,'', S[i].age.day,' ', S[i].age.month,'', S[i].age.year); End; Begin ReadStu(Stu); WriteStu(Stu); End.

صفحه 375:
EE EEE ۳-۳ " "" " ‏تمرینات‎ "برای گونه‌های حیوانات یک پارک نظیر پرندگان وحشی رکوردی شامل نام. دسته. محیط زندگی. سن بسازید. در نظر بگیرید که در پارک ۱۰۰ گونه از یک پرنده وحشی وجود دارد (راهنمایی: آرایه‌ای از رکورد با فیلدهای گفته شده بسازید). * برنامه‌ای بنویسید که برای نگهداری تاریخ به صورت روز. ماه و سال براى ‎٠٠١‏ سال بكار رود. در واقع به صورت تقویم باشد و جمله‌ای در مورد آن تاريخ را نگهداری کنید؟ (راهنمایی: آریه‌ای ۳۹۷ تابی از روز بهمراه آرایه‌ای از ۱۲ ماه و یک سال و یک رشته را به صورت یک رکورد در نظر گرفته سپس برای ۱۰۰ سال بصورت یک آرایه صدتایی در نظر بگیرید.)

صفحه 376:
فصر12 | فليلها (21165) هدفهاي كلي * مفهوم فایل و انواع آن * موارد استفاده از فایلها

صفحه 377:
:دانشجو يس از مطالعه اين فصل بايد بتواند #" در برنامهداش از فايلها استفاده كند.. "" براى برنامههاى با دادههاى زياد از فايل استفاده كند.. * با فایلهای داده‌ای و بایزی برنامه‌نویسی کند.

صفحه 378:
برای ذخیره دائمی داده‌ها از ساختاری به نام فایل ‎ile)‏ استفاده مى كنيم. تاکنون همه عملیات لازم در حافظه اصلی انجام می‌گرفت که گذرا و فقط به زمان اجرای برنامه و روشن بودن کامپیوتر بستگی داشت. ولی در فایلها چنین نیست. بلکه داده‌ها در فایلهایی قرار دارند که حتی بعد از خاموش کردن کامپیوتن بعدها قابل دسترسی است.

صفحه 379:
EEE EEE << << "> (Text) io sb * یک فایل متتی از تعداد کاراکتر تشکیل شده است که با یک اسم در روی دیسک ذخیره شده است. چون فایل از نوع متنی است می‌توانید داده‌های داخل آنرا مشاهده کنید. ساختار داده‌ها در یک فایل متنی بدین صورت است که تعدادی خط وجود دارد كه به علامت 801-17 ختم مىشوند و در انتهاى فايل نيز علامت "18001 قرار دارد. طول خطوط نامشخص است و اندازه فايل ممكن است بسيار بزرك يا كوجك و يا تهى باشد.

صفحه 380:
نعويف يك متغير فايلى ‎١١‏ ‏نسبت دادن اسم فایل به متفیر فایلی ۷ 6۷30 ایجاد فایل با دستور .۳

صفحه 381:
Name : Text; نسبت دادن اسم فايل به متغير فايلى ‎Assign(FileVar ,‏ ‎‘NameFile’ )‏ © ایجاد فاپل با دستور ‎Rewrite( FileVar ‎)

صفحه 382:
۰ ‏مجموع آنها را بنویسد.‎ : 4; Array [ 1.. 10] of integer; Sum, i: integer; gin Sum: = 0;Writeln (' Enter 10 numbers: For i: = 1 to 10 do begin Read (A [i]); Sum: = sum + A[il; end; Assign (f, 'out.dat'); 37۳ ‏راکوت ری‎ ff\6

صفحه 383:
Writeln (f, A[i]); Writeln (f, Sum); Close (f); End. بعد از نوشته شدن اطلاعات در فایل . فایل باید بسته شود برای اینکار از : روال زیر استفاده می شود Close(FileName)

صفحه 384:
تعییف یک متفیرفایلی .۱ نسبت دادن اسم فایل به متفیر فایلی ‎Mi‏ باز کردن فایل برای خواندن با ۳۰ 1 سستور

صفحه 385:
ستور 13680 و 1362011۳ برای خواندن اطلاعات از فایل بکار می روند . 7 بعد از خولندن‌دادههای‌مورد نسظر بسه سطر بسعد میرود. لین‌عمل ای ۷۷۳366180 نیز چنین می‌باشد. ولی قبل از استفاده از اين دستورات بايد ایل متنی برای خواندن یا نوشتن باز شود. دستور 36596 فایل متنی را برای خواندن باز می‌کند و مکان نما را ابتدای فایل می‌برد. ستور 161۷1116 فایل متنی را برای نوشتن در آن باز کرده. و مکان نما را به شدای آن می برد.

صفحه 386:
f: Text; str1, str2: string; a, b, c, d, e: integer; gin Assign (f, ' Test. dat '); Reset (f); ReadlIn (f, str1); Readln (f, a, b, c); Readln (f, d, e, str2); Write (str2, ':', a+ b+ c+ d+ e); Close (f);

صفحه 387:
11 0 ‏كبى از فايل درخروجى بسازده.‎ f1,f2: Text; str1,str2 : string ; ch: char ; agin write(‘Enter Input file: '); readIn(str1); write(‘Enter output (copy) file: readIn(str2); assign(f1,strl); reset(f1); assign(f2,str2); rewrite(f2);

صفحه 388:
در این برنامه ابتدا دو فایل به نامهایشان نسبت داده می‌شوند و ترتیب برای خواندن و نوشتن باز می‌شوند. سپس توسط 60 شرط خاتمه فایل ورودی یعنی 81 بررسی می‌شوند و در یک حلقه تو در تو ۷۷10116 شرط خاتمه خطوط نیز توسط 60139 بررسی شده و کاراکترها از فایل ورودی خوانده شده و در فایل خروجی نوشته می‌شوند.

صفحه 389:
begin while not eoln(f1) do begin read(f1,ch); write(f2,ch); end; readIn(f1); writeln(f2); end; Close(f1); Close(£2); End.

صفحه 390:
EE EE EEE EE ‏موممئي‎ ‎(Binary & Typed) ,to€53 9 ‏فايلهاي دودوبي‎ ** ن نوع فایل‌ها در زبان پاسکال از تایبهای مختلف 3729, 1600۲0 نل 122161©1, 620 و ... تشكيل شده است كه نياز به يردازش متنوء بیه مرتب‌سازی. جستجو. حذف ‎nung‏ دارند. این فایلها پس از ایجاد توسط رنامه. قابل رؤيت توسط ویراشگرها نیستند. بلکه به صورت کدهای اسکی می‌باشند یعنی دودویی می‌باشند. نحوه دسترسی به اطلاعات آنها نیز به cw! (Random) ‏سورت تصادفى‎

صفحه 391:
نعويف يك متغير فايلى ‎١١‏ ‏نسبت دادن اسم فایل به متفیر فایلی ۷ 6۷30 ایجاد فایل با دستور .۳

صفحه 392:
Name: File Of FileType ; ذسبت دادن اسم فایل به متفیر فایلی ‎Assign(FileVar ,‏ ‎‘NamefFile’ )‏ © ایجاد فاپل با دستور ‎Rewrite( FileVar ‎)

صفحه 393:
Const n=100; Type Student = Record Name: string[10]; Family: String[15]; Age: integer; ID: integer; end; Sarray = Array [1..n] of student;

صفحه 394:
Var دودویی از نوع صحيح ‎;Bf2: file of integer‏ دودویی از نوع رکورد دانشجو ‎;Bf3: file of student‏ فایل دودویی از نوع کاراکتر ‎;Bf1: file of char‏ 2 Bf6: file of set of 'A'..'Z 6 Ass yom 5! (25252,

صفحه 395:
Bf: file of strin[10]; Str: string [10]; i: integer; Begin Assign (Bf,'out.dat'); Rewrite (Bf); For i:=1 ton do Begin Readln (str); Write (Bf,str); End; Close (Bf); + oo

صفحه 396:
در جدول صفحه بعد تمام روالهای کتابخانه‌ای پاسکال جهت کار با فايلها آورده شده است که به همراه توضیحات لازمه جهت کار با آنها می‌باشد. همچنین برای هر تابع و رویه محل مورد استفاده آن در ستونی مشخص شده است .

صفحه 397:

صفحه 398:
x ۱ شماره رکورد 7 انتهاي فایل تعداد ‎ee‏ جاري را | حذف يك رکورد از انتهاي فایل وگ 17

صفحه 399:
>, ‏مثال های حل شده‎ * ‏مثال : برنامه‌ای بنویسید که تعداد خطوط یک فایل متنی را باست. آورف‎ Var F: text ; ch: char, str: string[20]; count: integer; Begin Write (‘Enter the file name: Readln(str); Assign(f,str); Reset(f);

صفحه 400:
count:=0; While not 53 do begin While not eoln(f) do Read(f,ch); Readln(f); count:=count+1; end; Write(‘the number of lines in file is: count); End.

صفحه 401:
Const r— 0: Type Booktype = Record name: string[20]; ID: integer; end; Var Bf: file of Booktype; LID: integer; name: string[20]; Book: Book type;

صفحه 402:
Rewrite 5 For I:=1 to n do begin Write (‘Enter the name & ID of book: Readin (name, ID); Book.name:= name; Book.ID:= ID; Write (Bf, Book); End; Close (Bf); End.

صفحه 403:
پگ « 5 ‎Ww‏ تمرینات *برنامه‌ای بنویسید که از یک فایل متنی از اعداد حقیقی که در سطرها و ستونها مختلف قرار دارند. میانگین داده‌ها را بدست آورده و در مانیتور چاپ کند. *برنامه‌ای بنويسيد كه در انتهای یک فایل متنی. همان فایل متنی را اضافه کند. " برنامهاى بنويسيد که در یک فایل نوع دار از کاراکترهاء اطلاعات آماری هر کاراکتر را بدست آورده. یعنی تعداد هر کاراکتر را بدست آورد. مثلاً کاراکتر 8 به تعداد 40 تا و کاراکتر "13" به تعداد ۳۹ تا و...

صفحه 404:
هدفهاي كلي res ‏تعریف‎ ‎aus a‏ یک الگوریتم ‎elie :‏ الگوریتم * مرتبه ب ‎

صفحه 405:
:دانشجو پس از مطالعه این فصل باید بتواند "" پرنامه خود را تحلیل زمانی نماید. * مرتبه الگوریتم را بدست آورد. * الگوریتمهای بازگشتی را تحلیل نماید.

صفحه 406:
تحلیل یک الگوریتم یعنی ارزیابی روشهای مختلف حل آن مسئله. بررسی و محاسبه بهترین و بدترین حالتهاء بصورتی که با توجه به شرایط بهترین حالت را بتوان انتخاب کرد. الگوریتم در واقع تعداد محدودی از دستورالعملها می باشد که بترتیب اجرا می‌شوند و هدف خاصی را دنبال می‌کنند

صفحه 407:
** تعریف مرتبه یا پيچيدگي الگوریتم ( 0 بزرگ) براي بدست آوردن بدترین حالت اجراي يك الگوریتم با مرتیه پیچیدکن الگوزیتم از 0 بزرگ استفاده مي‌کنيم و بنا به تعریف عبارتست ‎s f@)=O0(G{@)) J!‏ ‎no‏ خوانیم ()] از مرتبه ()0 مي‌باشد, اگر و تنها ‎Ac> 0, Vn > n0= f(x)<cg(x)

صفحه 408:
n>=3 <= cg(n)=In+2A(n) لذا می‌توان گفت. پیچیدگی زمانی (610] از مرتبه ‎O(n)‏ می‌باشد.

صفحه 409:
‎EEE EEE << << ">‏ * بدست آوردن مرتبه الکوریتمها برای بدست آوردن مرتبه اجرای الگوریتمها باید به دقت بررسی شود و تعداد تکرار آن الگوریتم بدست آورده شود. یعنی در واقع تعداد تکرارها بدست آورده شود و سپس با هم جمع شده و مطابق مثالهای قبلی به پیچیدگی زمان واقعی رسید. برای این منظور از الگوریتمهای ساده شروع کرده و به پیچیده ‏می‌رسیم.

صفحه 410:
x:= 0; For I:=1 ton do :=x+1; که در آن « تعداد ورودی می‌باشد. یعنی حلقه 601 بستگی به پارامتر 9 دارد. همان طور که از تعریف حلقه 50۲ برمی‌آید تعداد 11-۱+۱ تکرار یعنی 1 تسکرار یجود دارد و لنا قطعه برنامه فوقاز مرتبه(6()10 مریاشد

صفحه 411:
Function fact ( n: integer integer ; var f,i: integer; begin f:=1, for I:=1 to n do f:=f*i; fact:=f; end;

صفحه 412:
تابع فوق فاکتوریل عدد « را بر می‌گرداند. همانطور که می‌بینید تابع شامل یک حلقه 701 ساده بوده که از یک تا 9 متغیر بوده و لذا ‏ بار تکرار می‌شود ۲ جمله ساده نیز وجود دارد که زمان های ثابتی دارند ین مرتبه تابع بالا برابر است با 0)

صفحه 413:
۲ پیچیدگی زمانی توابع زیر را بدست آورید: چپ 1. £1(n) =n+ 2n? +100 2. £2(n) =n? + n°" ++ 2 3. £3) =2" + 5" + logn!+n” 4. £4(n) =logn+ Jn +1 5. £5(n) =n? logn + n!°™ + (logn)!

صفحه 414:
Function test(n : integer): teger ; var i,x: integer; Begin x:=0; for i:=1 to n do x:=x+1; for i:=1 to n do for j:=1 to n do x:=x+1; test:=x; pad

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
34,000 تومان