کامپیوتر و IT و اینترنتعلوم مهندسی

مبانی برنامه نويسی کامپیوتر

صفحه 1:

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

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

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

صفحه 5:
Out put خروج Inpu 42 ورود

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

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

صفحه 8:
‎ *‏ عامل ‎on Ze OG: Operatay Gyotew)‏ 68 نرم‌افزارهای سیستمی می‌باشد. که مدیریت منابع سیستمی را بر عهده دارد. سیستم‌عامل همچنین ارتباط بين كاربر و اجزاء سخت‌آفزاری و نرم‌افزاری دیگر را برقرار می‌کند. ‏* میستم عامل کنترل و نظارت دارد بر عمل کرد کلیه اجزاء سیستم کامپیوتری.

صفحه 9:

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

صفحه 11:

صفحه 12:
کامپایلر برنامه نوشته در يك زبان سطح با را بهبرنامه مقصد تبدیل می‌کند Source program

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

صفحه 14:
...<< کچ * تعریف الگوریتم الگوریتم مجموعه‌ای از دستورالعمل ها. برای حل مسئله می‌باشد که شرایط زیر را بايد دارا باشد: * دقيق باشد * جزئیات کامل حل مسئله را داشته باشد. *پایان‌پذیر باشد. Bees

صفحه 15:
ب ب ب <ج ب ب << 1۳11[ * مراحل الگوریتم برای حل یک مسئله باید الگوریتم آن مسئله را مشخص كنيم (يا بيابيم). که اصطلاحاً طراحى الكوريتم براى أن مسئله نامیده می‌شود. در طراحی الگوریتم معمولاً سه مرحله زیر را از هم جدا می‌کنند: ۱. شناخت مسئله *_ خواندن داده‌ها(شناسایی ورودیها) *_انجام محاسبات( پردازش) *_ خروجی‌ها(شناسایی خروجیها) ‎ot‏ پیاده سازی ‎ ‎ ‏دم

صفحه 16:
‎٠‏ شروع ‏۵-۱, ۲ را بخوان. ‏۲-مجموع 2 , 0 را محاسبه و در 511110 قرار بده. ۳- 51110 را در خروجی چاپ کن ‏۴-پایان

صفحه 17:
خروجی‌ها انجام محاسیات ورودیها ‎a‏ ‎b‏ چاپ مجموع محاسبه مجموع جاب ميانكين محاسبه میانگین ۰ ‎far‏ ۱- سه عدد از ورودی بخوان "ل مجموع سه عدد را محاسبه و در ‎٩1110‏ قیار بده. 9-۳ را بر سه تقسیم کرده.در قرار بده. ۶ 51110 , 2۷6 را در خروجی چاپ کن. ه يايان.

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

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

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

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

صفحه 22:
9 emp

صفحه 23:

صفحه 24:
* قمرین ۱- فلوچارتی رسم نمائید که طول و عرض مستطیل را از ورودی دریافت ‎die; Gabe igi only dew aye‏ ۲- فلوچارتی رسم نمائید که شعاع دایره‌ای را از ورودی دریافت کرده. محيط و مساحت انرا محاسبه و جاب نمايد. فلوچارتی رسم كنيد كه سه عدد ‎Third , second, first‏ )!93 یافت کرده. محتویات آنها را جابجا نموده. حاصل را در خروجی ‎ne‏

صفحه 25:
:- فلوچارتی رسم نمائید که دو عدد از ورودی دریافت کرده. سپس محتویات دو عدد را بدون استفاده از متغیر کمکی جابجا کند. 5 فلوچارتی رسم نمائید که عددی (درجه حرارت برحسب سانتیگراد) رااز ورودى دريافت كرده سيس انرا به درجه فارنهايت تبديل كند.

صفحه 26:
Pascal gb; # در این کتاب زبان پاسکال (۳۵56۵1) را برای آموزش و نوشتن برنامه‌ها انتخاب کردیم. اين زبان كه به افتخار بلز پاسکال دانشمند فرانسوی قرن هفدهم میلادی. پاسکال نامگذاری شده است. در اواخر سال ۱۹۱۰ و اوایل ۱۹۷۰ توسط پروفسور نیکلاس ویذت در انستیتو فنی فدرال سوئیس مطرح گردید

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

صفحه 28:
(Reserved Oords ) ‏کلمات ذخیره‌شده‎ * (deter) bau *

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

صفحه 30:
uses var xor exports mod file nil for not function object goto of if or implementation packed in procedure inherited program inline record interface repeat label set library shl

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

صفحه 32:
هایلستاندارد: لینوع 8 ها از قبلدر بانب اسکللتعریفشدملند و در برنامه‌ه؛ معنای‌خاصی‌داوند . ‎ad >‏ های‌فیرلستاندارد: اینوع ‎8٩‏ ها بسوسیله کایبر بسطور مجزا تسعریف می‌تسوند و لصطلاحا ببه نها حالص گفته میشود.

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

صفحه 34:
Covsteat: Devtaraioa ‏اعلان تابتها‎ Pepe Devlarctica ‏اعلان انواع‎ Oevlrtiva Ourtuble اهريغتم ‏اعلان‎ ‎Oectaraioa Lubet ‏اعلان برچسبها‎

صفحه 35:
بصورت زیر بیان کرد: استفاده از کلمه ذخیره شده دحم و اسم برنامه ( که می‌تواند بكار برده نشود ) ف تعاریف ادها بلوک اصلی برنامه که با 625 شروع و به 0۳4 همراه نقطه () م مب هر دستور در پاسکال به ( 7) ختم می‌شود.

صفحه 36:
block شناسه د del | Statem ‏سم‎ “CBegi n

صفحه 37:
EE EEE " " ) ‏خروجي ( دج‎ * مشهورترین دستگاههای خروجی عبارتنداز: ‎Monitor‏ صفحه نمایش ‎Printer‏ جا ‎as‏ ‎Terminale‏ ترمینال ‎Plotter‏ رسام

صفحه 38:
‎EEE << <<"‏ *مثال هاي حل شده ‎Program Print (output ); Begin Writeln (' Pascal Language ' ) ; Writeln (' Hello"); End.

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

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

صفحه 41:
‎s%‏ لد ها عملگرها نمادهایی هستند که برای انجام اعمال حاصی مورد استفاده قرار می‌گیرند.عملگرها برای انجام اعمال خاصی روی عملوندها ( 2 ) بکار می‌روند. با توجه به نوع عملكر ممكن است یک يا دو عملوند وجود داشته باشد. عملگرها در زبان پاسکال از تنوع زیادی برخوردارند.

صفحه 42:

صفحه 43:
عملگرهاي = ردیف | عملگر نام ‎Jl.‏ ‏1 + 5 — 3 - |تفریق و منهاي يكاني | «,ر-* 3 > ضرب ‎x*y‏ ‏4 / تقسیم ‎xly‏ ‎Aunts 59 5‏ 07 ‎wood 6‏ باقیمانده تقسیم | له

صفحه 44:

صفحه 45:
Oct OR نام مثال »كبر ‎wy ul‏ ‎xy vr psx‏ Out (x)

صفحه 46:

صفحه 47:

صفحه 48:
EEE EEE << << "> (data ‏انواع داده‌ها ( عم‎ * (Simple data type) ‏داده‌های ساده‎ < داده‌های ساخت‌یافته ( ( 10282 513110111121 ‎Types‏ (Pointer Data ۰۲۵۵5( ‏داده‌های اشاره‌گر‎

صفحه 49:
*نوع کاراکتری (06ا تقطت)) صحیح ( 1۳1]6067) #عشاری (حقیقی) *نوغ رشته ای (97۳6 ‎(String‏ (Boolean type) ib ‏نوع‎ *

صفحه 50:
pte Ghoriat 0 ‏هت هت‎ Oord اور محدوده از 0 تا 255 از 128- تا 127 از 32768- تا 32767 از ۵ تا 65535 از 2147483648- تا 2147483647 اندازه بر 1 1 2 2 4

صفحه 51:
|) Grote امه محدوده 66۰-9 0 0 eS... 15 9۵ 9? - 266 5.0 10 200 v #098 3.4 110 ... ححه حل تعداد ارقام معني دار 13-1 10

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

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

صفحه 54:
"*""" << << آ" آاآ" ‎EE‏ ‏* متغیرها (حطتدبه) متغیر. محلی از حافظه است که دارای نوع و اسم می‌باشد. نوع متغیر همان ,نوع داده بوده و اسم متغیر از قواعد اسم گذاری شناسه تبعیت می‌کند در پاسکال برای معرفی متغیرها بصورت زیر عمل می‌کنند: (کلمه ذخیره 14-5( ‎Var‏ ‏نوع متغیر: اسم متفیر

صفحه 55:
EE 7 ي6جببَُُئصُ#ُش*ُ“سب_بئسش٠شس٠غظئنييّمج_م‎ (Coxstrcts) ist * یک ثابت نام شناسه‌ای است که در آغاز یک برنامه یک مقدار در آن جاگزین می‌شود. درست مانند متغیرها. ثابت‌ها را می‌توان بعنوان خانه‌هایی از حافظه در نظر بكيريم که مقدار داده‌ها در آنها ذخیره می‌شود ولی مقدار ثابت مشخص می‌باشد, ,طوری که نمی‌توان مقدار یک ثابت را در برنامه خود بوسیله یک دستور تغییر داد te Sees pty po ‏عریف ینکن‎ cl مقدار ثابت - اسم متغير ‎Const‏

صفحه 56:
‎EEE EEE << <<"‏ سور یدز ی ‏برای قرار دادن یک مقدار یا مقدار یک متفیر داخل یک متغیر دیگر از دستور .جایگزینی استفاده می‌کنند شکل کلی یک دستور جایگزینی در پاسکال بصورت زیر است: عبارت محاسباتی - : اسم شناسه عبارت قیاسی یا ‏عبارت منطقی

صفحه 57:
‎EE << << ">‏ ‎ae ot‏ ۰ ۰ ‎(Comment) 406 9) 4) Olowd gi (99 551‏ افزودن مطلب توضیحی در درون خود برنامه عملی پسندیده و مطلوب است بدین ترتیب که بعد از مدتی امکان فراموشی کار با برنامه از بین می‌رود و در .کل می‌توان گفت که نوشتن توضیحات در برنامه خوانایی آن را بالا می‌برد ‏در پاسکال توضیحات بین دو آکولاد محصور می‌شوند. ‎This is comment }‏ { ‎{ This program written by A. Pascal }

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

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

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

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

صفحه 62:
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=?

صفحه 63:
> << << کچ * تمرینات بينامه‌ نويسي * _ برنامه‌ای بنویسید که ابعاد مثلث ‎byl) VY LY 5 syle SF‏ گرفته محیط و مساحت آن را محاسبه و با پیفام مناسب در خروجی چاپ کند. برنامه‌ای بنویسید که دو متغیر صحیح با مقادیر ۳, ۱۵ را در گرفته محتویات دو عدد را بدون استفاده از متغیر کمکی جابجا نماید. * _ برنامه‌ای بنویسید که سه عدد بنام های , ‎Dhird , Geoved‏ ‎CPirst‏ بترتیب با مقادیر ۱۷ , ۱۳,۱۵ را در نظر گرفته بطور چرخشی مقادیر آنها را جابجا نموده در خروجی با پیغام مناسب جات كن

صفحه 64:
فصل 4 ورودي و خروجي صعرفیدستورل 25 ‎Writeln‏ ‏معرفی خروجی فرمت‌بندی شده بررسی دستورات ورودی ‎1٩630‏ و ‎ReadLn‏

صفحه 65:
‎EEE " " "‏ * خروجي با دستور 07) ‏این دستور برای نوشتن اطلاعات در خروجی بکار می‌رود. اطلاعات خروجی می‌توانند ثابتهای عددی. مقادیر متغیرها. عبارات و غیره باشند. شکل دستور در :حالت کلی بصورت زیر است ‎ ‏و متغیر۲ و متغیر ۱ )۲۷116 و" عبارت ۲" و عبارت۱ ) ‎ ‎OY seal Sealy: cand ) ‏يا‎

صفحه 66:
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

صفحه 67:
* خروجي با دستور 0۳/۰ این دستور همانند دستور ۷۷16 عمل می‌کند با این تفاوت که بعد از اجرا. كنترل را به ابتداى سطر بعد منتقل می‌کند در نتیجه موجب چاپ داده‌های بعدی در اپتدای سطر بعد می‌شود.

صفحه 68:
Nriteln ; { new line } Nriteln ('A=',A,' B=',B) ; Nriteln('Ch=',ch,'R=',R); Vriteln('Sum of A and B=',A+B) ; .{ End of program } :خروجی برنامه بصورت زیر می‌باشد 15 < ظ ‎A=10‏ ‎Ch=T R=1.225000000 e + 01‏ ‎Sum of A and B= 25‏

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

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

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

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

صفحه 73:
برای نمایش اعداد اعشاری بصورت دلخواه. می توان با تعریف طول .میدان و تعداد ارقام اعشاری, عدد مزبور را نمایش داد در حالتک لی‌طولمیللنرا می‌تسولنبه صوونذیر تعریفکرد : ( تعداد ایقام بسعد از مميز: طولميدان متغير لعشایی) ۷۷۲16 ماع تالا يا

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

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

صفحه 76:
برای نمایش رشته‌ها و کاراکترهای با طول میدان بصورت زیر عمل مى كنيم. ۳ ( طولمیدلن متغیر يا عبارتيشتملويا كار لكترى) ۷۷۷6 در توربو ياسكال. كليه موارد كفته شده در مورد اعداد صحيح براى رشته‌ها نیز صادق است

صفحه 77:
>" << ااا “ ورودي & ‎Qeuda , Reud‏ از این دستور برای خواندن داده ها و اختصاص آنها به متغیرها :استفاده می‌شود. در خواندن داده ها به دو موضوع بايد دقت شود منبع دادمها یبعنی‌دستگام ورودی‌که از آن‌دادمها خولنده -1 مین‌سود متغيرىكه دادمهاىخولنده شده در آنقرار میگیرد -2 .

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

صفحه 79:
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 } _

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

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

صفحه 82:
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 ))>

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

صفحه 84:
برنامه‌ای برای یک حسابدار اداره جمع آوری مالیات بنویسید که صورت .حسابهای مالیات را مخاسبه نماید خورودی شماره شناسایی مالیات دهنده بهای ارزیابی شده نرخ مالیات ‎eo‏ ‏صورت حساب بافرمت مناسب شامل تمام داده‌های ورودی و میزان بدهی

صفحه 85:
ساختارهاي شرطي و کنترلي هدفهاي كلي معرفىودستور شرطيع119 220 ‎If‏ معرفی دستور 4896 پررسی دستورات تکرار ‎for . while . repeat until‏ معرفی دستورات شرطی متداخل بررسی چند تابع و روال استاندارد زبان پاسکال

صفحه 86:
EE EE EEE EE ‏موممئي‎ ‏دستورالعمل‌هاي شرطي‎ ** در حل بسیاری از مسائل یا تقریباً تمام مسائل نیاز به استفاده از شروط مزع انیا های: التانسن مسبوپمی شود ضمانطو و که,ما خودمان :در زندگی روزمره با اين شرطها سر کار داریم بطور مثال اگر هوا ابری باشد ممکن است چنین سخن بگوییم: اكرهوا بارانى باشد سيس جترى برمىدارم. در غير اينصورت جتر برنمىدارم.

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

صفحه 88:
مثال : فلوچارتی رسم تمائید که عددی را از ورودء زوج بودن آن را تشخیص دهد. > ‎C Begin‏ یافت کرده فرد یا Read(a) R < a mod 2 yes Write(‘even’), ~~ No ‎Write(‘odd’) ۳‏ کت ‎ ‎ ‎

صفحه 89:

صفحه 90:
- ‏لوصح‎ ‎Read(a,b,c) “ min <— ‏مه‎

صفحه 91:
۱۳ ۳ ۷۱ ۷۱ ۷۱ > 1 ۱۷

صفحه 92:
ب ب ب <ج ب ب << 1۳11[ * تمرین ۱- فلوچارتی رسم کنید که عددی را از ورودی دریافت کرده. قدر مطلق عدد را در خروجی چاپ کند. ۲- فلوچارتی رسم نمائید که عددی از ورودی دریافت کرده مثبت. منفی يا صفر بودن عدد را تشخیص داده. در خروجی با پیغام مناسب عايج كتلاه ۳- فلوچارتی رسم نمائید که عددی را از ورودی دریافت کرده بخشپذیری ‎ald poop ly OT pO‏ ۶- فلوچارتی رسم نمائید که ضرایب یک معادله درجه دوم را از ورودی دریافت کرده ریشه‌های آن را محاسبه در خروجی چاپ کند.

صفحه 93:
>" << << آآآآآاسا"اآ۳ * دستورات شرطي بطور کلی توسط اینگونه دستورات می‌توان بر حسب شرایط مختلف. تصمیمات متفاوتی را اتخاذ نمود و برحسب برقرار بودن یا نبودن شرایط .دستورات متفاوتی را اجرا نمود وزات شرظي دو حالت كلي به دو نوغ نقسیم می‌شوتن دستور ]1 Case ‏دستور‎

صفحه 94:
هرگاه در طول برنامه نیاز به استفاده از شرط یا شروط داشته باشیم. از دستور ‎If‏ .ستفاده می کنیم دستور 1 بطور کلی به سه شکل بر حسب نیاز ممکن است ظاهر شود: ool. if Else st, if ‏های متداخل‎ 1

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

صفحه 96:
:دیاگرام دستور بالا بصورت زیر می‌باشد a دستور هم رم

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

صفحه 98:
در اين دستور ابتدا شرط ‎«sw yp‏ ميءشود: در صورتي که شرط برقرار بانقنده عمل یاناعمال خاضی. را اتجام. مي‌دهد و در صورتي كه شرط برقرار نباشد عمل يا اعمال بخصوص ديگري را انجام خواهد داد.

صفحه 99:
Sa ‏دیاگرام‎

صفحه 100:
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

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

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

صفحه 103:
)9 اطرشتیبع‎ tea ۱ ‏دستور‎ _عبیتشرطی۲ ۸ ‎che‏ ‏دستور۲ ‏مه عبینشرطی] ‎IP‏ اد دستور ۲ ۳۹ ۶ یطرشتیبع‎ fen P ‏عبیتشرط[‎ few دستور 1 دستور ۲

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

صفحه 105:
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 : ReadIn ۳ ‘Grade 172 Then

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

صفحه 107:
Write (' please enter two Numbers: ' ) Readin(a,b) ; Write (' please Enter A operator: ' ) Readeln ( op) ; Case op of '+': Writeln ('Sum =',(a+b):6: 20 '.': Writeln (' Subtract =',(a-b): 9: 2( + '*': Writeln (' Multiple =',(a*b): 6:2) ‘|: Writeln (' divide =', (a/b): 6:2) ‎cans Pe‏ ری ی

صفحه 108:
دیاکرام دستور 256) بصورت زير مي‌باشد:

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

صفحه 110:
‌ ** حلقه‌ها در حل بسیاری از مسائل با عملیاتی روبرو می‌شویم . که نیاز به تکرار دارند و عمل تکرار آنها به تعداد مشخصی انجام می‌گیرد. فرض کنید. بخواهيم ميانكين ۰ عدد را محاسبه کنیم در اینصورت منطقی بنظر نمی‌رسد که ‎٠٠١‏ متغير مختلف را از ورودی دريافت كنيم سيس آنها حت تن

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

صفحه 112:
در اين نوع حلقه‌ها تعداد تکرار مشخص می‌باشد این حلقه از اجزاء ز؛ تشکیل می‌شود: ‎١‏ انديس حلقه ۲- مقدار اولیه براى انديس حلقه ‏۳- مقدار افزاینده برای اندیس حلقه (معمولا یک واحد در هر مرحله) ۶- مقدار نهایی (تعداد تکرا حلقه) 4 شرطى بياى كنتيل تعداد تکرار حلقه

صفحه 113:

صفحه 114:

صفحه 115:

صفحه 116:
1۵ ۱۵ غروجى

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

صفحه 118:

صفحه 119:

صفحه 120:
١ Read(n,x) yes i el

صفحه 121:
(در پاسکال به حلقه ‎nile‏ مشهورند.) در این حلقه‌ها با توجه به ورودی. تعداد تکرار مشخص می‌شود. و ‎Abs‏ نمی توان تعداد تکرار حلقه را بدون ورودی معین کرد. این حلقه ها فقه شام شرطی محد که نا زمانکه رفرار باشد له را ي‌شود

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

صفحه 123:
مثال: فلوچارتی رسم کنید که عددی را از ورودی دریافت کرده سپس تعداد ارقام ‎of‏ ;{ شمرده در خروجى جاب نمايد. ؟عدد خوانده شده ‎N‏ * تعداد ارقام ‎count‏

صفحه 124:
Be count <— 0 count— coyunt+T

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

صفحه 126:

صفحه 127:
* تمرین ۱- فلوچارتی رسم نمائید كه عددی از ورودی دریافت کرده. کامل بودن آنرا پررسی نماید. (عدد کامل. عددی است که مجموع مقسوم‌علیه‌های آن با خودش برابر باشد.) ۲- فلوچارتی رسم کنید که ا را از ورودی دریافت کرده ا جمله سری فیبوناچی را تولید نماید. ۳ فلوچارتی رسم نمائید که دو عدد ]1۷ , لا را از ورودی خوانده. بزرگترین مقسوم‌علیه مشترک دو عدد را محاسبه و چاپ کند.

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

صفحه 129:
ر نهایی خود تکرار می‌شود. در کل اگر حلقه اولیه 18 بار تکرار شود و 4 داخلی 121 بار. در ایتصورت کل حلقه : nxm بار تکرار خواهد شد.

صفحه 130:

صفحه 131:
Coe 5 37 سرى زير را محاسبه نمايد: ‎N‏ 3 ‎S=1+24+3 4.0.44‏ * اندیس حلقه اول 1 * ورودی لا * محاسبه فاکتوریل ‎fact‏ ‏* اندیس حلقه داخلی لل * مجموع 511112

صفحه 132:

صفحه 133:
ee ‏تمرینات آخر فصل‎ * ‎-١‏ فلوجارت تی رسم نمائید که آل عدد از ورودی دریافت کرده تعداد اعداد اول و كامل را شمرده در خروجى جاب نمايد. ‏۲- فلوچارتی رسم نمائید که 2۶ , لا رااز ورودى خوانده مقدار سرء ‏زیر را محاسبه کند: ‎Ss‏ برچ شاد + +1- 5

صفحه 134:
عدد را محاسبه و در خروجی چاپ کند. 6 فلوچارتی رسم کنید که تاریخ تولد شخصی را از ورودی خوانده سن شخص را با تاريخ رون محاسبه نموده در خروجی چاپ کند. ۵- فلوچارتی رسم نمائید که (10<10) ۷], لا را از ورودی دریافت کرده سری فیبوناچی بین ]1۷, لا[ را تولید کرده. در خروجی جاب كن

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

صفحه 136:
دستور برای انجام عمل یا اعمالی مشخص به تعداد تکرار معین بکار برده می‌شود. لقه ‎for‏ شامل یک اندیس ‎(index)‏ مقدار اولیه ) ‎oi lai (initial value‏ ( ۷۵1۷6 121221 ) و مقدار افزاينده مىباشد. اين حلقه با قرار دادن مقدار اولیه در .يس حلقه شروع شده و بعد از هر تكرار يك واحد به انديس حلقه اضافه مىكند تا نهایت به مقدار نهایی برسد. شکل کلی حلقه بصورت زير می‌باشد:

صفحه 137:
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 }

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

صفحه 139:
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 .

صفحه 140:
0 مقار نهایی 0 مقدار ایلیه - : لندیسا ‎for‏ ‏0 مقدار نهایی 0 مقدار اولیه - : انديس 2 ۶0۲ ۶ دستور

صفحه 141:
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)

صفحه 142:
‎feat {| fa (2h‏ همع ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

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

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

صفحه 145:

صفحه 146:
اين دستور نيز از نوع دستورات تکراری می‌باشد و به کمک آن می‌توان یک يا چند .دستور را به تعداد نامعین بار اجرا کرد لین‌دستور مشلبه دستور ۱۷16 :است. با تفاوتهایی که در زیر عنوان می‌کنیم در دستور (1 1300086 بسرعکس‌دستور ۱۷۲16 .شرط حلقه در انتهای حلقه بررسی می‌شود لذا حلقه حداقل یکبار اجرا می‌شود _

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

صفحه 148:
until by sl bs ;

صفحه 149:
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 }

صفحه 150:

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

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

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

صفحه 154:
هدف: باز گشت به ابتدای حلقه Procedure continue ; وقتی اس پزوسحر, دزن ‎tasty UES SS ge OW BA‏ اول خلقلة:اتتقاك می‌یابد و دستورات بعد از پروسیجر اجرا نمی‌شوند.

صفحه 155:
مثال : ی بنو یسید عد صحیح در 5 1 بينامها که یک مبنا ۰ ۱ از ورود 9 ی دریافت ۱ فت کرده. ۱ يا به یک عدد در مبنا | ۱ ‎cs‏ ‏۲ ببرد.

صفحه 156:
Power: = 1 ; N:=0; Write (' enter A Number: ') ; 1۳801 ( 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 = ' ' oN); ‎IM tS‏ 7 ال م

صفحه 157:
Write (' please enter A ‏زا‎ a3 Readin (N) ; Fis= 03 ۳2: 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: 5 82 ۶ F2: = F3 ; End ; {end of for } ۱, { end of program }

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

صفحه 159:
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 ;

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

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

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

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

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

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

صفحه 166:
** تعريف آرايه خانههاى يشت سر هم از حافظه. كه همنوع بوده و توسط يك اسم معرفى می‌شوند. ارایه نام دارد. ۱ ۱ نحوه دسترسی به هر یک از اعضاء ارایه. از طریق اندیس ارایه امکانپذیر است . برای تعریف آرایه ابتدا طول آرایه که در حقیقت تعداد خانه‌های آن ‎ES gt petals‏ فعین قی‌کنيم. سیسس: وق خانه‌ها بای مین شولد. در فلوچارت‌ها آرایه‌ها را بصورت زير نمایش می‌دهیم: ‎Name[ 1 .. Length ]‏ طول آرایه اسم آرايه

صفحه 167:

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

صفحه 169:

صفحه 170:
a[1..20] i ali] <— > N mod <p (20) ‏تع‎ ‎1+1

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

صفحه 172:

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

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

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

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

صفحه 177:
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 }

صفحه 178:
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] ; ۱101 11: 1 ali]: =temp ; End ;

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

صفحه 180:
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.

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

صفحه 182:
5 تحادى حبنت در مورت ‎wary!‏ ” تعريف آرايه با محدوده منفى اى مثال: برای مثال ‎A:array[-10..10] of Real‏ ; ‎v‏ تعریف آرایه از نوع منطقی ( 0016 ) برای مثال: ‎A:array[1..20] of Boolean‏ ;

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

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

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

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

صفحه 187:
۰ 1 1 > = مین ات به تر تیب ن» دومن ‎‘od‏ ‏با ‏بويت ‎J J‏ تیور 3 مور و و عبا خطى ‎S.‏ ‏۳ ] د شد بيدا حستجو ی د > عور عنصر ‎Ayes‏ ‏می دب يسه مقاب به آراب عنصر و .۰ می‌دهیم: ‎ou‏ ‏نماد ‏آن را ۳ اند

صفحه 188:
Read(x)

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

صفحه 190:
ود زرط مت بالای لیست قرار دارد. لذا آرایه با اندیس. جدید در نظر گرفته بود و قسمت پایین لیست از فضای جستجو حذف می‌شود. ر ک از عتصر وسط آرایه بزرگتر باشد قسمت بالای لیست حذف ود و فضای جستجو قسمت پایین آرایه خواهد بود. - اگر 5 برابر عنصر وسط باشد عمل جستجو خاتمه می‌پذیرد.

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

صفحه 192:
EE EE EEE EE ‏موممئي‎ ‏مه‎ & ‏تمرین‎ * لوچارتی رسم نمائید که عددی از ورودی دریافت کرده. اعداد کامل قبل از خود را تولید و در یک آرایه قرار دهد. لوچارتی رسم نمائید که یک آرایه حداکثر ۱۰۰ عنصری از ورودی ریافت کرده ‎ita Dl al 0G ag alee‏ را بااضق عردن علافت تباند. لوچارتی رسم نمائید که یک عدد حداکثر ۲۰ رقمی را توسط آرایه‌ای ورودی دریافت نماید. سپس یک عدد تک رقمی را از ورودی خوانده | عدد ۲۰ رقمی ضرب نموده, حاصل را در خروجی چاپ نماید.

صفحه 193:
در كل دو نوع عمل جستجو را در اين كتاب بررسی می‌کنیم : <جستجوی خطی 5©23:012 11122623 جستجو دودویی ‎Binary search‏

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

صفحه 195:
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') ;

صفحه 196:
درجستجوی دودوئی لیست اولیه بایدمرتب باشد. برای جستجو در چنین آرایه‌ای نخست انديس وسط آرايه را پیدا می‌کنیم و عنصر واقع در این اندیس را با :عبارت مورد جستجو مقایسه می‌کنيم و حالات زیر ممکن است حاصل شود ‎Low)‏ | ابتدای آرایه و 1101061 اندیس آخرین عناصرآرایه و 6 اندیس عنصر وسط می‌باشد.)

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

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

صفحه 199:
idle ] =X Then Write ('The Eiement is ‏قو ایتضورت‎ found ' ) LOW < Upper Sly ls |) ‏صووتىكه حالقائا فيا ب اتفاقبيفتد عم جستجو‎ مى باشد ادامه مىدهيم و در هر مرحله كه حالت سوم رخ دهد عمل جستجو خاتمه مى يابد.

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

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

صفحه 202:
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

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

صفحه 204:
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 }

صفحه 205:
EEE EEE bal, ‏جند منال در مورد‎ + مثال : برنامهاى بنويسيد كه يك عدد صحيح از ورودى دريافت کرده سپس .اعداد اول قبل از آن را توليد و در آرايه قرار دهد 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 ; k:=2; —

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

صفحه 207:
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 ;

صفحه 208:
ray 307 of ۳ 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]);

صفحه 209:
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; } ل ل سو

صفحه 210:
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 }

صفحه 211:
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]) ;

صفحه 212:
5 ** تموينات - كداميك از دستورات زير در مورد اعلان زير صحيح است: ‎a: array['A'..'Z'] of‏ char - :[ 'ق ' ] د' الف- 7 ۲ :۵۰1 ]و ج- 1 - :1 ۸ ۲] 2 د 12 2 :1 ۲1] 2 ح- 12 1:2 ]2۵

صفحه 213:
uarw [-OO..d0] oP cha ٠ ‘aarp [-OO.. 20 , 0.. 20 [ ‏۶اه‎ ۲ ۴ a arw [@vvleur ] oP cha ۶ ‎oP titer ٠‏ [' .1 ' ..' © ' , 00 ..0 ] بصصه زه

صفحه 214:
EEE EEE << <<" ‏تمرینات بینامه‌نویسی‎ * برنامه‌ای بنویسید که که یک آرایه حداکثر ۵۰ عنصری را از ورودی دریافت کرده و سپس عناصری از ارایه که اول هستند را با صفر جایگزین کرده ارایه حاصل را در خروجی چاپ كند. برنامه‌ای بنویسید كه عددى از ورودى دريافت كرده سپس آن را به عامل هاى اول تجزيه نمايد و حاصل را بصورت زير در خروجى :جاب نمايد OAV) OAT) RAN Se Gly

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

صفحه 216:
ماتریس هم پر حسب ستون و هم بر حسب سطر مرتب نموده به همراه ماتریس ! در یک سطر چاپ نماید. برنامه‌ای بنویسید که یک آرایه ۲۰۰ عنصری ازنوع صحیح که ۱۵۰ عنصرمرتب درآن قرار می‌گیرد را از ورودی دریافت کرده سپس آرایه دومی با ۵0 عنصر را از ورودی بخواند.

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

صفحه 218:
در کل هدف تابع اینست که متفیر یا متفیرهایی را بعنوان پارامتر از پرنامه اصلی دریافت کرد. عمل خاصی را روی پارامترها انجام داده و نتیجه را به برنامه اصلی بر گرداند :شکل کلی فراخوانی توابع در برنامه اصلی بصورت زیر می‌باشد ساختار تابع: ‎Function Name ( parameters )‏ ‎Type‏ ‏| نوع تابع باراهتزها | اسم تابع کلمه ذخیره شده

صفحه 219:
‎EEE EEE ">‏ “ توابعي براي اعداد صحیح و اعشار ی ‎av ‎Abs et ‏دف: باز گرداندن قدر مطلق ( 2155010116 ) پارامتري که به آن ارسال مي‌شود: ‎Function Abs (x: Integer ): Integer ; ‎Function Abs (x: Real ): Real ;‏ اين تابع یک عبارت از نوع حقیقی يا صحیح را بعنوان آراگون دریافت کرده سپس .قدر مطلق آن را محاسبه و حاصل را برگرداند

صفحه 220:
f: Real ; I: Integer ; egin F: = Abs (- 191.15); I: =Abs(-171) ; Writeln ('f=', £:8:2, 'IT=', 1); ind. خروجی‌حاصل: ‎F= 191.15 I= 171‏

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

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

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

صفحه 224:
ir X: Real ; gin X:=cos(10) ; Write ('cos(10)=', x:8:2) ; id.

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

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

صفحه 227:
هدف: عدد نپر ( 2.71828 -۰...) را به توان یک عدد می‌رساند. ; Function Exp ( X: Real ): Real ‏شکل تابع:‎ عبایتیا متفیریاز نوع لعشاری‌بوده و حاصلتسلبع نیز یسکعند لعشاریمیی اشا اين تابع مقدار عبه توان 16 را محاسبه می‌کند.

صفحه 228:
X:Real ; i:integer ; Begin For i:=1 to 10 do Begin 1۲ :- ‏وه‎ )1( : Writeln ( x:8:2) + End ; End.

صفحه 229:
هدف: قسمت اعشاری یک عدد اعشاری را برمی گرداند. 3 Function frac ( X: Real ): Real ‏شکل تابع:‎ 5 عددئاز نوع لمعشايىو حاصلة لبع يكهدد لمعشاروكه قسسلعشايى عدد 26 است می باشد و بعبارت ديكر اين تابع قسمت اعشارى عدد ورودى را به عنوان خروجی باز می‌گرداند.

صفحه 230:
0 Y,X: Real ; gin X: = frac (24.769) ; Y: = frac (- 12.75 ۱ Write ('x=', 8: 3,"y= "ee 23 0 ۰ X= 0.769 ‏حلا‎ - 5

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

صفحه 232:
y,x:Real ; Begin X:= Int (2.87) ; {2.0} Y:=Int(-876); {-8.0} End.

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

صفحه 234:
Var X:Real ; Begin X:= Ln (2.87) ; { x = 3.73767} Write (*x=",x:10:5) ; End.

صفحه 235:
هدف: فرد بودن عدد صحیح را بررسي مي کند. 7 Function odd ( X: logint ): Booleam 7 ‏شكل تابع‎ * یکعبایاز نوع 100۵104 لستو تسلبع .فرد بسودن‌عبایستوا بسروسی‌می‌کسند اگر مقدار خروجی تابع 100 باشد 1 فرد است و اگر مقدار خروجی تابع 1۳:15 باق ات

صفحه 236:

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

صفحه 238:
کد اسکی " ۸۸" تا" 2 " را درخروجی چاپ می‌کند كد اسكى ۰ ۸۸ " عدد 1۵ می‌باشد.

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

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

صفحه 241:
Ch: = pred ('d') ; 1 0 < 6 i: = pred (15) ; {i=14} flag : = pred ( True ) ; { flag = false } i: = pred (- 30) ; {i=-31}

صفحه 242:
۲ تابع ۳۵0010 هدف: برای تولید عدد تصادفی :شكل تابع ‎D Function Random: Real ;‏ 2 Function Random (x: word ): word ; اگر تابع :18۸0000 به شکل یک یعنی بدون آرگومان مورد استفاده قرار گیرد یک عدد تساوی از نوع اعشاری بین صفر و یک تولید می کند و اگر به شکل دو بکار رود باعث تولید یک عدد تصادفی از نوع ‎word‏ که بزرگتر یا مساوی صفر و کوچکتر از < است خواهد شد.

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

صفحه 244:
هدف: برای گرد كردن اعداد اعشارى بكار می رود. تابع: ‎Function Round (x: Real ): Longint‏ ‎X‏ ی کعبارتیامتفیر لعشاری‌سوده وخروجی‌تلبع یکعدد اننوع ‎Longint‏ مى باشد كه نتيجه كرد كردن می‌باشد. اين تابع ‎X‏ را به نزدیکترین مقدار مینک كر

صفحه 245:
‎er ee ee‏ و 0 2 :) 1 13 1 9 هددع ‎ein ee‏ ‎{i=18‏ اللا ‎ ‎i: = Round (17.45) {i=18

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

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

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

صفحه 249:
Y, X: Real ; Begin Y:= sqrt (64) ; {y=8} Z:= sqrt (0.16) ; {z=0.4 Write ('x =',x:8:2,'y=',y 5:82:27 End.

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

صفحه 251:
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 }

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

صفحه 253:
; {i=12} ; {i=12} ; {k=13} 25 ,'jH',j:5,' x,i,j:Longint ; Begin i: = trunc (12.5 ) j: = trunc (12.4) k: = trunc (13.5 ) Writeln ('IT=',i k=',ks5); End.

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

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

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

صفحه 257:
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] <='z') Then sen [i]: = Upcase (sen[i]) In (' Out pot of program') ; i:=1 to N do Writeln (sen[i]) ; f program } 3

صفحه 258:
EE EE EEE EE ‏موممئي‎ ‏روال‌هاي استانداره‎ * در بخش های قبل دیدید که در توابع پارامترها به تابع ارسال می شود و تابع نیز مقداری را بعنوان خروجی برمی‌گرداند روالها نیز مشابه توابع عمل می‌کنند با اين تفاوت که خروجی روالها از طریق پارامتر برمی گردانده می‌شود يا اعلان به .سیستم عامل می‌باشد. بنابراین روالها بدون نوع هستند :شکل کلی روال‌ها بصورت زیر می‌باشد ; Procedure Nar | ۱ | پارامترهاي روال اسم روال كلمه ذء

صفحه 259:
هدف: یک يا چند واحد از پارامتر ارسالی کم می کند. :شکل روال ‎Procedure Dec (Var X: longint ) ;‏ ‎Procedure Dec ( Var X: longint , N: longint ) ;‏ 6 یسکمتفیر از نوع 10:84 و بسصوومتغیری‌مویاشدلینروالل يكولحداز يارلمتر ايسا ىكم موكسند

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

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

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

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

صفحه 264:
هدف: اضافه کردن یک يا چند واحد به یک متغیر cedure Inc ( Var X: longint ) ‏شکل تلیع:‎ ‏مد‎ Inc ( Var X: longint , N: longint ) ; ite lds ally plush» Longint ‏يكهبايتيا متغير از نوع‎ X ‏سركت‎ ail lily wee Lens x

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

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

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

صفحه 268:
EE EE EEE EEE EE ‏حل چند مثال برنامه‌نويسي‎ * 1 * 9 ) > < 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;

صفحه 269:
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 }

صفحه 270:
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 }

صفحه 271:
+ تمرینات ‎i,j: integer is Bok Mineo 5‏ ۱.خروجی تمرینات زیر را تعیین کنید: 9 0 ز 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) ; -_

صفحه 272:
Chi = "A" 3 Ch: = chr(ord(ch)+3) ; Write (ch) ; xX; = 12" Suec (x) > 0: < BL Pred (ch) ; Write (x,ch) ;

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

صفحه 274:
Ahan’ (String) ‏عتغیرهای‌ک اراکتری وشتهها‎ هدفهاي كلي پررسی ساختار آرایه هایی از نوع کاراکتر معرفى نوع دادة جدید به نام رشته مقایسه آرایه ای از کاراکتر و رشته شناخت توابع و روالهای استاندارد برای رشته ها

صفحه 275:
* متغيرهايي از نوع کاراکتر متفیرهای کاراکتری ظرفیت پذیرش یک کاراکتر( شامل یک رقم. یک حرف از .حروف و يا يك كاراكتر ديكر ) را دارامی‌باشند مقدار دهی‌لینمتغیر ها به صووؤير مئهاشد : یگ د بلع" : اكر بخواهيم متغير هاى كاراكترى را از ورودى بخوانيم بايد دقت بيشترى به .خرج دهيم براى اينكه فضاهاى خالى كاراكتر محسوب مى شوند

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

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

صفحه 278:
هاي رسه‌اي ( ۱2۲۲۱ تعریف: مجموعه‌ای از کاراکتر را یک رشته نامیده و متغفیر از نوع آن را .یک متغیر رشته‌ای می‌نامند اين متغیر نیز مانند سایر متفیرها در قسمت تعاریف متفیرها ( ۵ ) معرفی می‌شود. در تعریف یک متغیر رشته‌ای معمولاً طول آن را مشخص می‌کنند. اگر طول تعیین نشود بطور قراردادی کامپایلر حداکثر طول را برای آن در نظر مى كيرد. حداکثر طول رشته ۲۵۵ کاراکتر می‌باشد.

صفحه 279:
Name sd ۳ 2 ۱ ‏طول رشته کلمه ذخیره شده‎ ‏سم رشته‎

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

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

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

صفحه 283:
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

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

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

صفحه 286:
180 ] 10 [ ‏:صصما زر‎ 1, : 25316 riteln (' Enter Ten Names') ; 2۲ 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 }

صفحه 287:
.صورت وجود در خروجی نمایش دهد Name , Family: array[1..50] of string[ 30] ; id: array[1..50] of longint ; Nam : string [ 30] ;

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

صفحه 289:
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 ;

صفحه 290:
‎EEE EEE << << ">‏ * قوابع و روالهاي کتابخانه‌اي براي متغيرهاي رشته‌اي ‎Concat at v ‏هدف: الحاق دو يا جند رشته به یکدیگر ‎Function concat (S1,S2,...,Sn): ‏شكل تابع:‎ ; string ‏ومع , 910 متغیرهایی از نوع رشته هستند و خروجی تابع نيز یک متفیر رشته‌ای است این تابع دویا چندتابع را به هم پیوند داده و رشته حاصل را پرمی گرداند.

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

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

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

صفحه 294:
هدف: حذف یک زیر رشته از یک رشته شکل‌روال: ‎Procedure delete (Var str: string;‏ ‎Index:integer;length: integer )‏ ; 5 يكمتفر يشتهلمى 111018 یکعبارت‌بامتغیر صحیح و 1.61101 نب ‎٠‏ عبارت یا متغیر صحیح می‌باشد. روال 6166( یک زیر رشته را از یک ته حذف می‌کند این روال از محل 112062 بطول 1.6۳901 از رشته ‎٩1‏ ‏ف می‌کند و رشته حاصل بعنوان خروجی روال برگردانده می‌شود.

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

صفحه 296:
هدف: درج ( وارد کردن ) یک رشته در یک رشته دیگر Procedure Insert ( Str1: string ;Var :J\;, Js: ; Str2: string ; Index: Byte ) 513 عبارت يا متغیر رشته ای. ‎٩12‏ منغیر رشته ای و ‎ole Index‏ دد از نوع ‎ae‏ می‌باشد. روال 11561 رشته 9171 رادر رشته 512 خانه ‎Index‏ درج می‌کند و رشته حاصل خروجی روال خواهد بود.

صفحه 297:
Var Str1 , str2: string ; Begin Str1: =' Pascal 7' ; Str2: ='Turbo' ; Insert (Str1, Str2,6) ; End. خروجی حاصل از برنامه بالا 7 7225621 ‎Turbo‏ خواهد بود.

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

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

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

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

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

صفحه 303:
Var Number, Str: String ; Begin Str (543:5, Str) ; {Str=' 543' } Str (12.25: 7:2 Str) ; { Str =' 12.25'} Str (127: 3: Str) ; { Str= '127'} Str (3.1239: 7:3, Str) ; { Str =' 3.124'} End.

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

صفحه 305:
F: Real ; Begin St='475'; Val (St,N,E) ; {N=475,E =0} St=' 475' ; Val (St, F,E) ; {F= ,E=3 St = '3.1716' ; Val (St, F,E) ; {F = 3.1716 ,E=0} End.

صفحه 306:
موممئي ‎EE EE EEE EE‏ **ارائه جند مثال در مورد رشته‌ها و کاراکترها مثال : برنامه‌ای بنویسید که یک جمله از ورودی دریافت کرده سپس در صورتی که کلمه 15 وجود داشته باشد انها را به 216 تبدیل نماید و در نهایت رشته حاصل را در خروجی نمایش دهد. توجه كنيد كه ممکن است بیش از یک بار کلمه 18 تکرار شده باشد در اینصورت همه کلمات 15 را با ۵16 تبدیل کند.

صفحه 307:
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 ‏يت د‎ |)

صفحه 308:
Begin Writeln ('Enter sentence') ; Readin (St1) ; j:=1; For i:=length(Stl1) downto 1 do Begin St2 0 j les Sth [ai], x Inc (j) ; End ; Writeln ('The result') ; Writeln ( St1 ) ; Writeln( St2 ) ;

صفحه 309:
* تمرینات = با فرض اینکه ‎GS, Gd‏ , 69 متغیر های رشته ای هستند خروجی عبارتهای زیر را تعیین کنید. a)S3 = copy(S1,1,6) ; b)S3 = concat (S3,52,S1) ; c)S3 = copy ($2, 1, pos($1,S2)-1 ); d)Delete (S2, pos(S1,S2),length(S1)) ;

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

صفحه 311:
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) ;

صفحه 312:
sert (S1,S2,pos(S1,S2)) ; $3: = copy (S2, pos (S1,S2), length (S1) ; 3: = copy (S2, pos (St, S2), length (S2) ; plete (S1, pos (S2, S81), length (S2 ); ز 6 # 2: [ 0 ] ۱1

صفحه 313:
:ی تمرینات بینامه‌نویسی *برنامه‌ای بنویسید که یک پاراگراف را از ورودی دریافت کرده ( حداکثر ۱۰ خط ) سپس: .الف) تعداد کلمات هر سطر را شمرده و انتهای سطر نمایش دهد «ب) تعذاد خروف صدا دار را شمرده.چاپ نماید .ج) تعداد خطوط برنامه را شمرده در خروجی چاپ کند .د) تعداد جملات هر خط را محاسبه و در سطر های جداگانه نمایش دهد

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

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

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

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

صفحه 318:
Procedure Name (parameters list ) | | | ليست بارامترها اسم روال كلمه دخوروشد { List of locad variable } Begin { Procedure Body } End af End of procedure }

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

صفحه 320:
(Formal parameters ) 52 Gb =\)b.' (Actual parameters ) (ily cs x1,LY. از پارامترهای صوری هنگام اعلان روال و از پارامترهای واقعی هنگام ‎eternity at‏

صفحه 321:
پارامترهاي صوري در حالت كلي 2 نوعند؛ که با توجه به نوع روال و تصمیم برنامه نویس مورد استفاده قرار مي گیرند: ” يارامترهاى مقدارى ( 12232312666375 71731116) (Variable parameters ) ¢ ni ch jb %

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

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

صفحه 324:
سین ی لذا اسامی پارامترهای 02201 پاراسرهای وافعی ‎Ola lel Gly‏ شوند: بن بد مان این یت که .این پارامترها ( پارامترهای صوری ) همان پارامترهای واقعی هستند در مثال بالا اين تناظر برقرار است: پارامترهای واقي متناظر است با پارامترهای صوری ‎Al‏ 1 ‎X2 A2‏ ‎Y1 B1‏ ‎Y2 B2‏

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

صفحه 326:
ram =main 2 , ۷1 , ۷2 : 1 lure ‏:2ظ , 81 , 42 , 1ك ) أ165‎ integer ); {formal pai Begin { main } test (x1 ,x2,yl,y2) ; { Actual paramete End. { End of program } —_—

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

صفحه 328:
1 اصلی برمی گرداند. تفاوت این گونه پارامترها با پارامترهای مقداری در ارسال تغییرات ایجاد شده در پارامترها می‌باشد. وقتی نیاز است. که نتایج روال به برنامه اصلی برگردد. از پارامترهای متغیری استفاده می‌کنند اعلان پارامترهای متغیری به صورت زیر می‌باشد: ‎ure Name (var id1 : type ; var id2 : type‏ | ليست يارامترهاي متغيري اسم رواال متغيرهاى 1012 , 1011 و ... يارامترهاى متغيرى مىباشند كه نتايج روال. توسط ‎e 7‏ آنها به برنامه اصلی با ز گردانده می‌شود.

صفحه 329:
را محاسبه و نتیجه را در برنامه اصلي چاپ نماید. ‎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 ,

صفحه 330:
پارامتر واقعی متناظر است با پارامترهای صوری Num1 Num1 Num2 Num2 Total sum Average ave 3 , 111101 پارلمترهایمقداییو 276 , 811110 پارلمترهایستغیر؛ باشند. که توسط آنها نتایج به برنامه اصلی بر گردانده می‌شود.

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

صفحه 332:
-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}

صفحه 333:
پارامترهای واقعی ‎x‏ Y.

صفحه 334:
>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‏

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

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

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

صفحه 338:
همانطور که قبلاً اشاره کردیم. هدف از بکارگیری پارامترها انتقال مقادیر از برنامه اصلی به روالها می‌باشد. گر این اثقال یک طرفه باشد یعنی فقط از پا مان به وواك بده ‎gal‏ فوج رجازامعرما اققفل:خاصنيت:ورودى نوم داشت. (قبلا در اين مورد توضیح داده شده است) در این نوع روال‌ها از پارامترهای مقداری استفاده می‌کنند

صفحه 339:
(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}

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

صفحه 341:
اصلی چاپ نماید. Program Example ; Var A, b: integer ; Procedure change (var x, y: integer) ; var temp:integer; Begin Temp:=x; X:=y; Y:=temp; End;

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

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

صفحه 344:
از هر برنامه (اصلی یا فرعی) به برنامه فرعی در صورتی می‌توان. دسترسی داشت. که در بخش تعاریف آن برنامه (اصلی يا فرعی) قرار داشته باشد. بطور مثال در شکل زیر برنامه اصلی. 11 می‌تواند. به كليه برنامههاى فرعى 2 و... که در بخش تعاریف برنامه اصلی قرار دارند. مراجعه کند

صفحه 345:

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

صفحه 347:
روال‌های 1۲0602 , 107001 داخل برنامه اصلی ‎Main‏ 3 شدهاند. ل براحتی می‌توان در برنامه اصلی به آنها دسترسی پیدا کرد. روال‌ها خود نیز داخل هم می‌توانند قرار بگیرند. دقیقاًمثل روال‌های معمولی ا اين تفاوت كه در داخل روال بايد تعریف شوند. به اینگونه روالها؛ اصطلاحاً روال‌های متداخل یا تودرتو می‌گویند.

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

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

صفحه 350:
اگر روال‌ها در بخش تعاریف برنامه‌أی بصورت متداخل باشند. در اینصورت از روال درونی می‌توان به روال‌های بیرونی که قبلا تعریف شده. مراجعه کرد و همچنین از روال درونی به روال‌های بیرونی که به موازات یکدیگر قرار گرفته‌اند. نیز می‌توان دسترسی بيدا كرد. طور مثال در شکل زیر روال 1 می‌تواند به روال‌های 2,3 دسترسی پیدا کند. وهمچنین روال درونی 101 می‌تواند به‌روال‌های 103 , 102 مراجعه کن

صفحه 351:
Main P3 22 Pl

صفحه 352:
‎EEE EEE << << ">‏ * اعلان روال‌ها به روش ‎Porward‏ ‏همانطور که قبلاً اشاره کردیم از روالی می‌توان در روال دیگر استفاده کرد. که قبلاًتعریف شده باشد. در توربوپاسکال نقیصه فوق به کمک اعلان ‎forward‏ قابل حل است. بدین صورت که اگر روالی به هنكام تعريف با اعلان ‎O54 tbh ol a» forward‏ رعایت از پیش تعریف شدن می‌تواند. ‏در روالهای دیگر ظاهر شود.

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

صفحه 354:

صفحه 355:
End; همانطور كه ملاحظه مىكنيد با اعلان روال 721003 1 بصورت 5015017310 بقيه روالها مى توانند به آن = لكا End. {End of program}

صفحه 356:
EE << << "> ‏واع رصم‎ ٠ نوع دیگری از برنامه‌های فرعی, توابع می‌باشند. توابع مانند روال‌ها. پیمانه‌های مستقلی هستند. با این تفاوت که روال‌ها می‌توانند. تعدادی خروجی داشته باشند. در حالی که توابع فقط یک خروجی دارند. در روال‌ها معمولاً خروجی‌ها توسط پارامتر به برنامه اصلی ارجاع داده می‌شود. ولی در توابع اینکار به نحو دیگر انجام می‌گیرد.

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

صفحه 358:
‎ab‏ فقط می‌تواند. یک خروجی داشته باشد. نوع خروجی تابع. همان نوع تابع محسوب می‌شود. لذا با توجه به نوع خروجی تابع. نوع تابع تشخیص داده می‌شود. ذکر این نکته خالی از لطف نیست که نوع پارامترهای صوری توایع معمولاً مقداری هستند چرا که توابع نوعی برنامه‌های فرعی هستند که فقط یک خروجی برمی گردانند. لذا استفاده از پارامترهای از نوع متفیری پسندیده نمی‌باشد. (اشکال کامپایلری در توربوپاسکال ندارد ولی در پاسکال استاندارد این کار اشکال کامپایلری دارد) ‏مقدار خروجی توابع توسط اسم تابع برگردانده می‌شود. توابع مثل روالها بعد .از قسمت تعاریف پرنامه اصلی ظاهر می‌شود

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

صفحه 360:
م پارامترهای تابع باید از نوع مقداری باشند داده نتیجه تایع در انتهای عنوان تایع و بعد از لیست پارامترهای صوری می‌گیرد ‎Ql at‏ خروجی تابع با نسبت دادن مقدار به ام تابع مشخص می‌شود

صفحه 361:
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

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

صفحه 363:
** توابع باز گشتي ‎(Revwsiod Puwiow)‏ در ياسكال يك تابع یا روال می‌تواند. خودش را فراخوانی نماید. پیمانه‌ای که خودش را فراخوانی می‌کند یک پیمانه بازگشتی نام دارد. اين نوع توابع در ی و واه وت اب اد و ای ارت ۶ شرط خاص که غالباً به یک عدد ثابت ختم می‌شود. ادامه پیدا می‌کند. سپس مقدار تابع از پایین به بالا محاسبه می‌شود و در نهایت نتیجه تابع حاصل .می شود

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

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

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

صفحه 367:
۳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

صفحه 368:

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

صفحه 370:
EEE EEE << << "> ۰ ۹ 2 ** مقايسه توابع و روالها توابع و روال‌ها هر دو برنامه‌های فرعی هستند. که بطور مستقل وظايفى را بر :عهده دارند. ولی در این میان از بعضی جنبه‌ها متفاوت می‌باشند که عبارتند از نحوه فرلخولنیآنها بسا هم متفاوتلست روا لها از طریق عبارلتو و لفرلخولنده . می‌شوند. درصورتی که فراخوانی تابع توسط عبارات مقایسه‌آی و یا تخصیص نتيجه به يك متغير صورت مى كيرد هنكام لمعلا يكتابع. نوع تلبع يانوع نتيجه حاصلاز تسلبع باید ذکر شود صورتى كه روالها نيازى به اين كار ندارند ‎tb fos arg RS RS‏ ولی‌روالها میتسولنند چندین‌خروجی3 برگردانند. درضمن نتیجه توابع توسط اسم تابع فرستاده می‌شود ولی روال‌ها از طریق پارامترها؛ نتایج را برمی گردانند

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

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

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

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

صفحه 375:
Begin { Main } Writeln (' Enter Number' ) ; ReadIn ( N); For I:=1 To N Do ReadIn ( b[ I] ); Writeln (' Enter Number ' ) ; ReadIn ( x ); If Search(b,N,x)=0 Then Writeln (' Not Found ') ; Else Writeln (Search(b,N,x) ); End. {End Of Program }

صفحه 376:
EE EE EEE EE ‏موممئي‎ ‏قمر ينات‎ 46 ‎bi 521, Down diy, *‏ بگیرید: ‎-edure Down ( N: Integer) ; in While N>0 do Begin Write (N: 3); Dec (N); End ; ‏3 ‏لف) وقتی روال بصورت (5) 0107112 فراخوانی شود. چه چیزی چاپ می‌شو: ب) مقدار پارامتر واقعی ۷ بعد از اجرای روال چیست؟

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

صفحه 378:
‎EE << << ">‏ تمرینات برنامه‌نويسي ‏" برنامه‌ای بنویسید که اطلاعات حداکثر ۱۰۰ دانشجو که عبارتند از: صل 7 فامیلی اسم 90 شماره دانشجوئی را از ورودی دریافت کرده سپس: الف) توسط روالی بنام 501 اطلاعات را برحسب شماره دانشجوئی مرتب کند ‏ب) توسط تابعی بنام 0 شماره دانشجوئی فردی را از ورودی دریافت و ی ات آنرا ‎

صفحه 379:
* آرایه‌آی از نوع صحیح با حداکثر ۱۰۰ عنصر را در نظر بگیرید. برنامهأى بنويسيد که ابتدا آرایه را از ورودی دریافت 03,5 سپس با استفاده از یک تابع بازگشتی پیشترین مقدار آرایه را محاسبه نماید. * دو آرایه مرتب حداکثر ۱۰۰ عنصری که شامل اسامی افراد می‌باشد را درنظر بگیرید. برنامه‌ای بنویسید که نخست دو آرایه را از ورودی دریافت نموده سپس توسط روالی بنام 6 این دو آرایه در هم ادغام نموده و در آرایه سومی قرار ده

صفحه 380:
فصل16 1 هدفهاي كلي 59 مفهوم مجموعه و دادههاى شمارشى در زبان ياسكال * مجموعه و دادههاى شمارشى به عنوان متغير * استفاده از مجموعدها و داد ای اشما رش اور ار ناما

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

صفحه 382:
:ی ‎(Get) tne gore *‏ در زبان پاسکال مجموعه مفهومی شبیه به مفهوم مجموعه در ریاضیات جدید دارد. متغیری است که شامل لیستی از اعداد صحیح. کاراکتر بولین و یا از نوع شمارشی امی‌باشد که دارای تغداد عناصر محدود به حداکتر ۲۵۲تا می‌باشد. از این جهت بسیار شبیه به یک آرایه در زبان پاسکال است که شامل داده‌هایی از یک نوع می‌باشد. ولی آرایه دارای عناصر محدودی نیست و در ضمن مانند .آرایه تعریف نمی‌شود

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

صفحه 384:
1 ar ch: set of char; — 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';

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

صفحه 386:
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,4]); True ۱ ۱۲116)]1,21[ < ]1,2,3[(( False write([1,2] <= [1,2,3]);

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

صفحه 388:
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.

صفحه 389:
۱. آرگومان ورودی روالها می‌تواند مجموعه باشد که قبلاً در تایپ تعریف شده باشد. نه اينکه مستقیم در روال به عنوان آرگومان بيايد. ولى خروجی یک تابع نمی تواند از نوع مجموعه باشد. ‎a‏ برای نوشتن یا خواندن مجموعه‌ها باید عضو به عضو عملیات صورت بگیرد و مستقیماً توابع 13680 .۷۷16 روی آنها کار نمی‌کنند.

صفحه 390:
Program test ; Var num , temp : set of byte; I, c: integer ; Begin Writln (‘Enter numbers: Readln( 1) ; Num :=[]; 0 << OF ‏ست.‎

صفحه 391:
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 }

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

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

صفحه 394:
۱ 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 : خروجی

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

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

صفحه 397:
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

صفحه 398:
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(*

صفحه 399:
:ی * تمرینات ‎2b C=[1,2,3] , B=[2,4,6] , A=[1,3,5,7] ;‏ عبارات زير. ‏ابی کنید. ‏الف- (0- ظ5) + ۸ ب ‎A + (B*C)‏ ج- ‎A+B+C‏ ‎inA2 -8

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

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

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

صفحه 403:
.<< << کچ ۰ تعریت ز ‎Wop‏ نوع داده ساخت‌یافته ای که از یک سری داده ها یا اطلاعات مرتبط به هم کل مق ‎aoe‏ ‏. هر کدام از اطلاعات را یک فیلد می نامند بطور کلی تعریف نوع رکورد در زیر آمده است: ‎ype‏ ‎Name = Record‏ ‎Field1-list : type1;‏ ‎Field2-list : type2;‏ Fieldn-list : typen; End;

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

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

صفحه 406:
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.

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

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

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

صفحه 410:
۱۰ A, B: Real; = 5 GCG, Di String [10]; > et) F: Array [1... 10] of Boolean; G: list1; 3 ۷۵ id; ۱9 x: Rectype; ۱۰+۱۰+۱۱+۱۲-۳ بایت فضا اشغال می‌شود.

صفحه 411:
‎EE << << ">‏ > و موره‌های تودریو ‏فیلدهای یک رکورد می‌توانند از هر نوعی باشد. از جمله می‌توانند از نوع رکورد دیگری باشند. در اینجا نیز مشابه قبل دسترسی به همان صو می‌باشد فقط به تعداد رکوردهای تودرتو '.' بيش مىآيد به مثال زیرتوجه کنید: ‏رت ‎Type‏ ‎Rec = recor‏ ‎a, b: ‎nteger; ‎c: char; ‎x: Record p: integer; ge nteger; ‎ ‎Ts

صفحه 412:
0 Rec; ‏دراینجا یک رکورد تودرتو به نام 1806 تعریف شده است که متفیر ۲ از آن‎ ‏نوع تعريف شده است. سپس برای دسترسی به فیلدهای 6, 0 , 28 می‌توان‎ به صورت زير عمل کرد: ‎ra‏ ‎r.b‏ ‏ولی برای دسترسی به فیلدهای 61, 0 چون متعلق به رکورد > نیز هستند داریم: ‎r.x.p‏ r.x.q

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

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

صفحه 415:
ارسال ر کورد به زیربرنامه‌ها ‎Se‏ ی ور ی متغير و مقدار به زيربرنامه ارسال كرد. ولى نوع بركشتى 3 نمی‌تواند از نوع رکورد باشد یعنی حتماً باید !5 ‎integer. Char 1s est. ¢.s‏ 9.. باشد و از انواع ترکیبی نظیر رکورد. ‎eu‏ مجموعه و فایل نمی‌تواند باشد. ‏اگر بخواهیم رکوردی را بصورت پارامتر به زیربرنامه ارسال کنیم. ابتدا بايد ‏آنرا در 13706 تعریف کرده و سپس ارسال شود وگرنه کامپایلر خطا صادر مي كقلد

صفحه 416:
Const no = 30; 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 ‏سک‎ دوه وبا

صفحه 417:
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;

صفحه 418:
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.

صفحه 419:
>" << ااا * تمرینات "برای گونه‌های حیوانات یک پارک نظیر پرندگان وحشی رکوردی شامل نام دسته. محیط زندگی, سن بسازید. در نظر بگیرید که در پارک ۱۰۰ گونه از یک پرنده وحشی وجود دارد (راهنمایی: آرایه‌ای از رکورد با فیلدهای گفته شده بسازید). * برنامه‌ای بنویسید که برای نگهداری تاریخ به صورت روز ماه و سال پرای ۱۰۰ سال بکار رود. در واقع به صورت تقویم باشد و جمله‌ای در مورد آن تاريخ را نكهدارى كنيد؟ (راهنمابى: آراینای. ۳۱۹ قانی از روز تهمراه آرایه‌ای از ۱۲ ماه و یک سال و یک رشته را به صورت یک رکورد در نظر 211111(

صفحه 420:
فصر12 فليلها (111©5) هدفهاي كلي * مفهوم فایل و انواع آن ؟ موارد استفاده از فایلها

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

صفحه 422:
۰ تايهي مسي (۱۵ ک فایل متنی از تعداد کاراکتر تشکیل شده است که با یک اسم در روی دیسک ذخیره شده است. چون فایل از نوع متنی است می‌توانید داده‌های داخل آنرا مشاهده کنید. ساختار داده‌ها در یک فایل متنی بدین صورت است که تعدادی خط وجود دارد كه به علامت 1901.18 ختم مىشوند و در انتهای فایل نیز علامت 176017 قرار دارد. طول خطوط نامشخص است و اندازه فایل ممکن است بسیار بزرگ یا کوچک و يا تهی باشد.

صفحه 423:
تعييف يك متغير فایلی ۱۰ نسبت دادن اسم فايل به متغير فایلی ۲۰ 6۷30 ایجاد فایل با دستور .۳

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

صفحه 425:
7 ‏مجموع آنها را بنويسد.‎ f: Text; A: Array [ 1.. 10] of integer; Sum, i: integer; egin Sum: = 0;Writeln (' Enter 10 numbers: For i: = 1 to 10 do begin Read (A [i]); Sum: = sum + A[i]; end; Assign (f, 'out.dat'); ‏ام و مر ۵ب‎

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

صفحه 427:
تعییف یک متفیر فایلی ۱۰ نسبت دادن اسم فایل به متغير فايلى .7 باز کردن فایل برای خواندن با ۳۰ ۲1 سستور

صفحه 428:
دستور 13620 و 13620112 برای خواندن اطلاعات از فایل بکار می روند . 7 بعد از خولندن‌داده‌هایمورد نسظر بسه سطر بسعد میرود. لین‌عمل برای ۷۷۲116110 نیز چنین می‌باشد. ولى قبل از استفاده از اين دستورات بايد فايل متنى براى خواندن يا نوشتن باز شود. دستور 1056 فایل متنی را برای خواندن باز مى كند و مكان نما را ابتداى فايل مى برد. دستور 1618/1186 فایل متنی را برای نوشتن در آن باز کرده؛ و مکان نما را به ابتدای آن می‌برد.

صفحه 429:
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);

صفحه 430:
yar ‏کرده و یک کپی از فایل درخروجی بسازد.‎ f1,f2: Text; str1,str2 : string ; ch: char ; begin write('Enter Input file: '); readIn(str1); write('Enter output (copy) file: readIn(str2); assign(f1,strl); reset(f1); assign(f2,str2); rewrite(f2);

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

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

صفحه 433:
‎EE << << ">‏ ی فايلهاي دودويي و نوع‌دار(۲۷۷۵ & س) ‏ن نوع فایل‌ها در زبان پاسکال از تایپهای مختلف ‎record ,array‏ ‎,integer ,chal‏ ۲6۵0 و ... تشکیل شده است که نیاز به پردازش متنوع بیه مرتب‌سازی. جستجو. حذف و... دارند. اين فایلها پس از ایجاد توسط ‏نامه قابل رژیت توسط ویراشگرها نیستند. بلکه به صورت کدهای اسکی ی‌باشند یعنی دودویی می‌باشند. نحوه دسترسی به اطلاعات آنها نیز به ‎cw! (Random) ‏مورت تصادفی‎

صفحه 434:
تعييف يك متغير فایلی ۱۰ نسبت دادن اسم فايل به متغير فایلی ۲۰ 6۷30 ایجاد فایل با دستور .۳

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

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

صفحه 437:
Var ;Bf2: file of integer ‏دودویی از نوع صحیح‎ , دودویی از نوع رکورد دانشجو فایل دودویی از نوع کاراکتر , دودویی از مجموعه/ تا ۸۰۰۳2۰ 0۶ 561 0۲ 816 :۳۶6 ;Bf3: file of student ;Bf1: file of char 7

صفحه 438:
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

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

صفحه 440:

صفحه 441:

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

صفحه 443:
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.

صفحه 444:
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;

صفحه 445:
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.

صفحه 446:
>" << ااا * تمرینات *برنامه‌ای بنویسید که از یک فایل متنی از اعداد حقیقی که در سطرها و ستونها مختلف قرار دارند» ‎ghia‏ داده‌ها را پدست آورده و در مانیتور يجاب كله "برنامهاى بنويسيد كه در انتهاى يك فايل متنى. همان فايل متنى را اضافه كند. * برنامه‌ای بنویسید كه در يك فايل نوع دار از كاراكترها. اطلاعات آمارى هر کاراکتر را پدست آورده. یعنی تعداد هر کاراکتر را بدست آورد. مثلاً کاراکتر ‏ به تعداد 40 تا و کاراکتر "3" به تعداد ۳۹ تا و...

صفحه 447:
هدفهاي كلي هو و تعریف الگریم ‎eee :‏ ابى يك الكوريتم ‎ie *‏ راب + = دكت الكوريتم rr ‏ج‎ | 1

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

صفحه 449:
” * تعریف مرتبه يا بيجيدكي الكوريتم (0 بزرک) براي بدست آوردن بدترین حالت اجراي يك الگوریتم با مرتبه بيجيدكي الكوريتم از 0 بزرگ استفاده م يكنيم و بنا به تعريف عبارتست از ((0)90)5<-00)؟ و ميخوانيم ()] از مرتبه ()0 مي‌باشد, اگر و تنها Ac> 0, Vn > n0= f(x)<cg(x)

صفحه 450:
حولي ترش n>=3 <= cg(n)=In+2A(n) لذا مىتوان كفت. بيجيدكى زمانى (1)13 از 455 ‎O(n)‏ می‌باشد.

صفحه 451:
‎EE << << ">‏ © دست 'وردن مرتيه تحور يدمهيا ‏براى بدست آوردن مرتبه اجراى الكوريتمها بايد به دقت بررسى شود و تعداد تكرار آن الكوريتم بدست آورده شود. يعنى در واقع تعداد تكرارها بدست آورده شود و سيس با هم جمع شده و مطابق مثالهاى قبلى به پیچیدگی زمان واقعى رسيد. براى اين منظور از الكوريتمهاى ساده شروع كرده و به بيجيده ‏مى رسيم.

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

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

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

صفحه 455:
EE EE EEE EE ‏موممئي‎ ‏تمر بنات‎ “ ” بيجيدكى زمانى توابع زیر را بدست آورید: ود 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)!

صفحه 456:
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 تومان