صفحه 1:
دانشكاه ييام نور- كروه كامييوتر اصول کامپیوتر ۲ رشته علوم رایانه تهيه كننده: مهدى يوسفخانى تابستان ۸۵

صفحه 2:
فصیل راوال

صفحه 3:
اک 7۳ الگوریتم مجموعه محدود و پایانپذیر از ار

صفحه 4:

صفحه 5:
كه يك الكوريتم مى تواند هيج يا جندين كميت ورودى داشته باشد كه از محيط خارج تامين مى شود.

صفحه 6:
۲- خروجی: الگوریتم بایستی حداقل یک کمیت بعنوان ال ا ۳- قطعیت: هر دستور العمل باید واضح و بدون ایهام باشد.

صفحه 7:
(۳ اگر ما دستور العملهای یک الگوریتم را دنبال کنیم براى تمام حالات بايد يس از طى مراحل محدودى لا ۱

صفحه 8:
4- كارايى: تنها قطعيت كافى نيست بلكه هر دستورالعمل نيز بايد انجام يدير باشد. پایان پذیری تفاوت میان یک برنامه و یک الگوریتم است.

صفحه 9:
PoP ‏فضای‎ (Awan ۳ EW gees GAPE (MIDE ‏مزال‎ BATES ATE RD eye Oe Ean ker ‏,یک برنامه است‎

صفحه 10:
:فضاى مورد نياز يك برنامه * نیازمندیهای فضای ثابت * نيازمنديهاى فضاى متغير

صفحه 11:
نيازمنديهاى فضاى ثابت: اين مطلب به فضاى مورد نيازى كه به تعداد و اندازه ورودى و خروجى بستكى ندارد اشارة دارد.

صفحه 12:
نيازمنديهاى فضاى متغير: این مورد شامل فضای مورد نیاز متغیر های ساخت یافته استکه اندازه آن بستگی به نمونه ای از مساله ای که حل می شود دارد.

صفحه 13:
۱7 میزان یا بیچیدگی زمانی یک برنامه مقدار زمانی است .كه كامييوتر براى اجراى كامل برنامه لازم دارد

صفحه 14:

صفحه 15:
جنبه های مهم باز بینی: ۳ 3 آزمايش درستی ور ۳

صفحه 16:
بعضى از الككوهاى توسعه نرم افزارى: * روش آبشاری بر نامه پویسی اکتتافی

صفحه 17:
۱- روش آبشاری: اين روش فرايند نرم افزار را متشكل از جند مرحله مى داند. يس از تعريف هر مرحله توسعه نرم افزار ا ا لد

صفحه 18:
؟ - برنامه نويسى اكتشافى: در اين روش در حداقل زمان ممكن سيستمى ايجاد مى شود و سپس اصلاحات لازم در آن بوجود می آید تا به درستی عمل کند.

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

صفحه 20:
AD Te Tee Ieee SP ۱- ناحیه مشترک داده ها حذف می شود. ۲- اشیا نهادهای مستقلی هستند که قابل تغییر.می باشند. ‎ren ee prc ia een en ey‏ 1 موازى يا ترتيبى اجرا شوند.

صفحه 21:
طراحى تابعى: روشى براى طراحى نرم.افزار است كه در. آن طراحى ا ل ‎ee Or‏ شود كه هر كدام وظيفه خاصى ذارند.

صفحه 22:
eee eC DES Teenie NewS) متمرکز سیستم بین توابع مشترک است.

صفحه 23:
دید تابعی به طراحی

صفحه 24:
فصل دوم زبان برنامه 5

صفحه 25:
ويزكيهاى زبان ©: " در دسترس است. * ساخت يافته سطح بالا و انعطاف يذير اسّت. پیمانه 0 اصول کامپیوتر

صفحه 26:
انواع کار اکتر دی * حروف بزرگ و کوچک * ارقام دهدهى * جاى خالى ‎RONG Be‏ " كاراكترهاى فرمت دادن اصول کامپیوتر

صفحه 27:
0م زبان © برخلاف ياسكال بين حروف بزرك و كوجك فرق ‎Ke‏ - ارقام دهدهی: شامل ۰ تا ‎٩‏

صفحه 28:
‎wee‏ ا ‎۸ ‎VA) = tele

صفحه 29:
كاراكترهاى فرمت دادن: - کاراکتر 730 ا - کاراکتر ۲20 ا۷۳ب۱ ۷۱ - کاراکتر خط جدید یا ۱ اصول کامپیوتر

صفحه 30:
۱ - كاراكتر تغذيه فرم يا 8 لو - کاراکتر تهی یا 0۱ اصول کامپیوتر

صفحه 31:
۳ يك شناسه ) دنباله اى از حروف ارقام يا ,علامت زير خط كه با هر ترتيبى ميتوانند قرار كيرند اما اولين كاراكتر بايد يك حرف باشد. اصول کامپیوتر

صفحه 32:
oe toe متغيرها در زبان © شناسه هايى هستند كه در ميان يك ا ‎Tet eye. nV ECs‏ از اطلاعات مورد استفاده قرار مى كيرند.

صفحه 33:
بعضی از شناسه های ژبان ] کلمات رزرو شده هستند يعنى مفهوم أن از قبل در زبان تعريف شده و نمى توانند بعنوان شنناسه تعریف شوند,

صفحه 34:
متداولترين كلمات كليدى: int fl 1 goto double 0 ۳ signed re rgistar continue 3 auto long i voi ‏و‎ union i اصول کامپیوتر

صفحه 35:
:ساختار برنامه ae Main( ) > ‏تبع اصلی‎ ( { een) variables declaration; @«- ‏(قعریف‎ ‎program statements; eee اصول کامپیوتر

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

صفحه 37:
برنامه اى كه مساحت مستطيلى به طول د و عرض ” را محاسبه و جاب كند: #include<stdio.h> Main() { int length , width, S ; ‏رد طاغومهءا‎ width = 3; S = length*width; printf (“area = %d”, S); 1 اصول کامپیوتر

صفحه 38:
عبارت: مجموعه اى معنى دار از داده ها است كه با استفاده از نشانه هايا عملكرهاى محاسباتى» قياسى و منطقى با ‎nS)‏ ۱

صفحه 39:
* عبارت محاسباتی كت * عبارت منطقى اصول کامپیوتر

صفحه 40:
ied ‏دستور حكمى است كه سبب مى شود كامييوتر عملى‎ ‏انجام دهد و به دو گروه تقسیم می شود:‎ و * دستور های ساخت يافته

صفحه 41:
9 دستور انتساب * خواندن و نوشتن ۰ فراخوانی یک تابع انتقال كنترل به نقطه اى از بر اصول کامپیوتر

صفحه 42:
دستورهاى ساخت يافته: * دستور مرکب { ‎scanf(“%d%d” ,&a,&b);‏ ‎s=a*b;‏ ‎p=2*(atb);‏ ‎printf(“%d%d",s,p)‏ ‏۷ اصول کامپیوتر

صفحه 43:
دستور حلقه تكرار ‎for(i=0;i<10;i++)‏ ‎5۱۲۲۱5۱۷۲٩‏ ‏* دستور شرطی ‎if(a>b)‏ ‏60 ‎y=)‏ ‎c=a-b;‏ اصول کامپیوتر

صفحه 44:
۳99 نشانه هايى هستند كه در عبارتها بكار مى روند وابّه كمك أنها مى توان اعمالى را روى داده:ها انجام داد و عبارتند از: ‎Greens 2‏ محاسباتی و عملگر های انتساب ‎

صفحه 45:
* عملكرهاى رابطه اى * عملكر هاى منطقى و ۰ عملگرهای یکانی ۱ اصول کامپیوتر

صفحه 46:

صفحه 47:
در نت ‎w=x*ty+w‏ ‏تقدم عملگرهای محاسباتى: 1 1 سا 2 % | * 4+ اضول كامبيوتر

صفحه 48:
عملگر های محاسباتی انتساب: اصول کامپیوتر

صفحه 49:
عملكرهاى رابطه اى: اصول کامپیوتر

صفحه 50:
فصل سوم انواع داده ها

صفحه 51:
:انوا داده « انو مهيح * نوع اعشاری * نوع کاراکتر ‎٠»‏ مقادير ثابت * مقادير متغير اصول کامپیوتر

صفحه 52:
م ‎ahd‏ ‎float‏ ‎double‏ ‎Coit 1g‏ ‎void‏ !!? boolean اصول کامپیوتر

صفحه 53:
1۳ اعداد صحیح با دامنه محدود برای کامپیوترهای شخصی دو بايت محفففه نشفات اصول کامپیوتر

صفحه 54:
float ‏اعداد و با دامن محدود‎ نمایش معمولی نمايش علمى 3 - 4 -8 12.3

صفحه 55:
double الم بیشتر از 11061 اصول کامپیوتر

صفحه 56:
ولتلراف ‎SPICY‏ ل 11 إلى ‎NG‏ res ad بسته به محل استفاده عدد با كاراكتر است.

صفحه 57:
0 داراى كاربردهاى مختلف مثال: توابع فاقد خروجي اصول کامپیوتر

صفحه 58:
انواع دادهاي دیکر 5 تركيب كلمات زبر 8 برخي از انواع داددهاي اصلي: 0 59601 (با عاهت 520250 ‎long . short‏ زا unsigned int long int unsinged long int اصول کامپیوتر

صفحه 59:
قوانين نامگذاري متغیرها: 7 ل ا ل 0 اولين كاراكتر رقم نباشد. اصول کامپیوتر

صفحه 60:
اسامي مجاز: ‎count‏ ‏4 ‎avg_grade‏ 000 ltest bin#tree Lila

صفحه 61:
0 0 eer ci ۳۱۸۱ 4 ; float m, n ; char 601, 6۱2, 3 ; long int count 0

صفحه 62:
را ;intx=5,y ; char ch1 = ‘a’, ch2 = ‘A’, ch

صفحه 63:
تعریف ثابت: مقدار ثابت نام ثابت 7# 0611126 8 مقدار -نام ثابت نوع داده ‎CONSE‏ اصول کامپیوتر

صفحه 64:
1۳3 define M 100# define P 3.14# 3; const int n= 100 3; const char c= | 9

صفحه 65:
دستورات متداول ييش يردازنده: 6 define# 554 اصول کامپیوتر

صفحه 66:
مثال ‎define M 100#‏ ‎define P cee‏ 3; const int n= 100 3; const char c=

صفحه 67:
فصل جهارم توابع ورودى و خروجى

صفحه 68:
ی ۱ *scanf, printf *getchar, putchar "gets, puts

صفحه 69:
ela peer pearl ( عبليدة1 ” , عبلید2 “) 1111م = نتقل شوند. 1 بر 22 2 ‎LS)‏ ‏(اختياري است) اصول کامپیوتر

صفحه 70:
printf (“ 2 ‏عبلید؛‎ , "Toc ) 17 ' ‏عبارت 1 مي‌تواند شامل:‎ 6 See eh el oe " كاراكترهاي تعيين كنندة فر ا ا اصول کامپیوتر

صفحه 71:
SE See Te MEAS : ‏مشخص كنندة نوع اطلاعات ذكر‎ * ‏با علامت مگ شروع مي‌شوند. مانند:‎ * 9 0 ‏(براي عدد اعشاري)‎ ۵ اصول کامپیوتر

صفحه 72:
كاراكترهاي كنترلي ا 0 "با علامت ل شروع مىشوند. مانند: ۱ انتقال به سطر جدید 2 an Al اصول کامپیوتر

صفحه 73:
مثال ‎printf (“this is a test.”);‏ خروجي ‎this is a test.‏

صفحه 74:
۳ ; inti =10 ; ‘char ch = ‘a ;printf (“Yd , %c” , i, ch) a,10 اصول کامپیوتر

صفحه 75:
تابع ورودى 5621115 scanf (“ 2c, "dc ) عبارت 2 : آدرس متغيرهابي كه بايد خوانده شوند عبارت 1 : نوع متغیرها و نحوة خوانده شدن آنها اصول کامپیوتر

صفحه 76:
عبارت 1 شامل: 1. کاراكترهاي فرمت. مشخص‌کنندة نوع اطلاعات. مانند: ‎C%‏ )351,15( ‎A%‏ (عدد صحیح) ‏اصول کامپیوتر

صفحه 77:
اك 7 (رد کردن) فضاي خالي در اطلاعات ورودي 3. كاراكترهاى ديكر تاثیر: خواندن 9 صرفنظر کردن د کاراکتر فوق اصول کامپیوتر

صفحه 78:
مغال inti,j; char ch; scanf (“%d %d %c’, &i, &, &ch) ;

صفحه 79:
ساختارهاى كنترلى و شرطی

صفحه 80:
‎te‏ ررك عازن هام که ای ‏اين دستورات. اين امكان را فراهم مى كنند كه يىك قطعه از برنامه جندين بار تا موقعى كة شرط ‎Oe Seen eee‏ ‏اصول کامپیوتر

صفحه 81:
‎gd‏ ساختار حلقه تکرار ‎for‏ * ‎* while * do-while ‏اصول کامپیوتر

صفحه 82:
دستورات كنترلى: "goto * continue * break * exit

صفحه 83:
لك ىن وا اين دستور براى انجام عمليات تكرارى بكار مى رود. با استفاده.ان أن يك حلقه قا موقعى اكه شرّط معيكن برقرار باشد اجرا می گردد. اصول کامپیوتر

صفحه 84:
۱/۵2 اصول کامپیوتر

صفحه 85:
مثال: برنامه اى كه اعذاد صحيح صفر تا ١٠.را‏ رؤى خطوط متوالى چاپ می کند: #include<stdio.h> main() { int number=0; while(number<=10) printf(%d\n”,number++); ۷ اصول کامپیوتر

صفحه 86:
۳ 1 - 0 : ۷/۲۱۱6 )1 !- -1 ( 1 TU ee oe scanf (“%d’ , &i) ; اصول کامپیوتر

صفحه 87:
دستور کنترلی 00۷۷۱۱۱۱2 ‎eres‏ را آغاز هر تكرار حلقه انجام مى شود اما با اين دستور اين آزمايش در يايان حلقه انجام مى شود. ‏اصول کامپیوتر

صفحه 88:
نمودار دستور ع ۱99۱/۱/۵ | 1 1

صفحه 89:
ا ‎tee eee‏ ۱ متوالی چاپ می کند: #include<stdio.h> main() { int number=0; ۰ printf(“%d\n”,number++); while(number<=10); } اصول کامپیوتر

صفحه 90:
مثال: ‎do {‏ ‎sum = sum+n;‏ ‎scanf (“%d” , &n) ;‏ ‎while (n != -1)‏ }

صفحه 91:
در سرب 1۳۶ اين دستور شبيه دستور ع!1(]/الا.بوده و داراى فرم كلى زير است: for(expression1; expression2; expression3) ‏2660و‎

صفحه 92:
نمودار. دستور 101

صفحه 93:
Bey EBB ‏ا ا ا‎ eee Ole) ‏متوالی چاپ کند:‎ #include<stdio.h> main() { int number; for (number=0; number<=10; + +number) printf (“%d\n”, number); }

صفحه 94:
مثال: ‎for (i=0O,sum=0;i < 20;i‏ کر رس { ‎sum =sum+i+j;‏ ‎printf (“%d’ , sum) ;‏

صفحه 95:
: Jo for (i=10,j=0; (i > 0) && (j <=20) ; i--,j ++) printf (“%d ,“,i+ j);

صفحه 96:
۱9 ‏را‎ (= yee ears eres for (; while au-b,% ; whileas_ ‏رت‎

صفحه 97:
دستورهاى شرطى ]1 و هواء 16: اين دستورها موجب مى شوند تا در صورت وجود شرایطی یک مجموعه از دستور ها ودر صورت عدم وجود آن مجموعه دیگری از دستورها اجرا شوند.

صفحه 98:
نمودار دستور ]|

صفحه 99:
نمودار دستور 656 17 اك دستورهای بعدی

صفحه 100:
مثال: برنامه اى كه متنى را خوانده تعداد محلهاى خالى 2 ‏يايان خط و جمع ساير‎ 7 cela) ‏موجود در آن متن را شمرده چاپ کند:‎ #include<stdio.h> main() 1 int c, blank_cnt, digit_cnt, letter_cnt, n1_cnt, other_cnt; اصول کامپیوتر

صفحه 101:
blank_cnt=digit_cnt=letter_cnt=n1_ cnt=other_cnt=0; while((c=getchar())!=EOF) if (c=="’) + + 21-۱06۱ 9’) ++digit_cnt; elfe if('a’<=c&&c<=z'|| “A “<=c&&c<= Z’) ++letter_cnt; اصول کامپیوتر

صفحه 102:
else if(c==‘\n’) ++n1_cnt; else ++other_cnt; printf(“\n%12s%12s%12s%12s%12s %12s”,” blanks” ,” digits”,” letters”, li nes” ,”others”,” totals”); printf(“\n\n%12d%12d%12d%12d%12d %12d \n\n, blank_cnt, digit_cnt, letter_cnt, n1_cnt, other cnt, blank_cnt+ digit_cnt+ letter_cnt+ n1_cnt+ other_cnt); 1 اصول کامپیوتر

صفحه 103:
۳ if (ch == ‘+’) r=xt+y; else if (ch == ‘-’ r=x-y; else if (ch == ‘*’) ۲ < * ۷ ۶ اصول کامپیوتر

صفحه 104:
۳ eee EES ere ey eli ar ‏مشخصى از دستورها بين جندين كروه از‎ ‏دستورها انتخاب كردد.‎ اصول کامپیوتر

صفحه 105:
لحك ۳ 13 Ire ‎ees ee‏ »كنات

صفحه 106:
مثال: برنامه زير متغير كاراكترى 0101© را از صفحه كليد دريافت كرده و رنكى كه با آن حرف آغاز مى شود را در خروجی چاپ می کند: ‎#include<stdio.h>‏ ‎main ( )‏ { ‎char color ;‏ ‎color = getchar( ) ;‏ اصول کامپیوتر

صفحه 107:
switch (color) { case ‏:ل‎ printf (“Yellow”); break ; case “B’: printf (“Black”); 0 case “‘W’: printf (“White”); break ; اصول کامپیوتر

صفحه 108:
‎printf (“Red”);‏ ت۱9 ‎10) @=t- ae ‎case “G’: printf (“Green”); break ; ‎default : printf(“error’); ‎1 ‎I ‏اصول کامپیوتر

صفحه 109:
مثال: char ch; switch (ch) { case ‘+’: ۲ < ۷ + ۷ ‏ز‎ break ;

صفحه 110:
case ‘-’;: r=aX-y; break ; case ‘**’: r=x*y; break ;

صفحه 111:
case ‘/’: r=x/y; break ; default : ما printf (“Invalid operator.”) ; 7 اصول کامپیوتر

صفحه 112:
908 See) اين دستور مسير معمولى و ثابت كنترل را تغيير داده و يا قطع مى كند. اين دستور براى خارج شدن از يك دستور 1ع]1/لا5 و يا يايان دادن حلقه ها استفاده مى شود. اصول کامپیوتر

صفحه 113:
002 4 0 sere سس

صفحه 114:
:continue ‏دستور‎ اين دستور به منظور يى عبور جانبى از كنار ساير مراحل جارى يك حلقه بكار برده مى شود در واقع باقیمانده تکرار جارى يك حلقه ناديده كرفته شده و بلافاصله تكرار بعدى حلقه آغاز مى شود. اصول کامپیوتر

صفحه 115:
continue ~) si jas

صفحه 116:
مثال: برنامه زير 17 عدد از ورودى خوانده و مجموع اعداد مثبت را محاسبه مى كند: #include<stdio.h> main ( ) 1 int n,i,x,sum= 0 ; printf(“how many numbers?”); scanf(“%d” ,&n);

صفحه 117:
for (i=1 ; i<n; ++ i) 1 scanf(“%%d”,&x); if(x<=0) continue ; sum +=x; ۷ printf(“\n sum = %d\n”,sum); i اصول کامپیوتر

صفحه 118:
دستور 010 0: اين دستور ترتيب طبيعى برنامه را تغيير داده و كنترل را به قسمت دیگری از برنامه منتقل می کند و در ‎eee cy‏ ا ۲ اصول کامپیوتر

صفحه 119:
مثال: برنامه زير عددى صحيح را از ورودى خوانده در صورتى كه زوج باشد ييغام مناسب نمايش مى دهد در غير اين صورت از برنامه خارج مى شود: #include<stdio.h> main () { int n; scanf(“%d”,&n) ;

صفحه 120:
if(n%2 == 0) goto even ; else goto odd; even: printf(“even number.\ des exit(1) ; odd : exit (0); اصول کامپیوتر

صفحه 121:
دستور ][(6: اين دستور يك تابع است و اجراى برنامه را بطور كامل قطع كرده و موجب خاتمه يذيرفتن كل برنامه رت اصول کامپیوتر

صفحه 122:
کار ور لا زرد( کر براى اجراى برنامه برقرار نباشد و اجراى برنامه 5 1۳ <>2 exit (0); اصول کامپیوتر

صفحه 123:
نکات: ات رت ا ‎ey eee)‏ رای اصول کامپیوتر

صفحه 124:
وا * در صورت عدم استفاده از 0۲6 دستورات 6 بعدی و تا آخر احرا خواهد شد. اصول کامپیوتر

صفحه 125:

صفحه 126:
در زبان© زيربرنامه تابع ناميده ميشود. تابع يك قطعه برنامه کامل استٌ که کار معینی را انجام میذهد و موجب جلوكيرى از برنامه نويسى تكرارى در بين 0

صفحه 127:
۷۳ ero: 1 COPE EC ere cee ‏اند.‎ ۲-توابع فرعی: توایعی که توسط بر نامه نوی تعریف aS

صفحه 128:
مزاياى طراحى به صورت ييمانه اى: - ساده شدن كنترل و خطا يابى -. امكان انجام تغييرات در برنامه و اصلاح ان - امكان استفاده مجدذد از تابع - امكان همكارى برنامه نويسان متعدد در نوشتن يكف برنامه

صفحه 129:
هر تابع شامل عناصر زیر است: < عنوان تابع: نام و نوع و آرگومانهای تابع - بدنه تابع: اعلان متغيرهاى محلى: متغيرى كه مخصوص خود تابع باشد. ع ل ف كت ‎nis)‏ 0

صفحه 130:
كك بارامترها) <نام تابع> <نوع تابع> تعزیف پار امتر ها 1 i اصول کامپیوتر

صفحه 131:
رو ۱22۵۱ در ۱ مقدارى را و اركومان خواهد بود در غير اينصورت نقش آن فقط خروج از تابع خواهد بود.

صفحه 132:
ی( در خروجی چاپ می کند: ‎Maximum(int x , int y)‏ ‎int z;‏ { ‎Z = (x>=y)?x:y ;‏ ‎printi(“%d” ,z) ;‏ :۳۰ } اصول کامپیوتر

صفحه 133:
فراخوانی تابع: ا ل ‎Peete Re‏ پارامتر های آن به صورت یک تک دستور و یا در ۱ اصول کامپیوتر

صفحه 134:
:۲( ‏محاسبه فاکتوریل عدد صحیح‎ #include<stdio.h> Main() { ‏و قزر‎ scanf(“%d”,&n); printf(“n=%d fact(n)=%d”, n, ۳۹۳ } اصول کامپیوتر

صفحه 135:
int fact(int n) { ‏حور تررل‎ 10) a (ee a aD) [7 return(f); اصول کامپیوتر

صفحه 136:
توابع بهودو صورت از نظر نحوه انتقال آركومانها ثراترائى ‎ye‏ ۱- فراخوانی با مقدار با فراخوانی توسط ارزش پا لا ره اصول کامپیوتر

صفحه 137:
- فراخوانی با مقدار: در اين روش خود متغیر ها به تابع فراخوانده شده انتقال نمى يابند بلكه مقدار آن انتقال مى يابد و هر تغييرى که توسط تابع فرعی روی آن مقدار انجام شود در ار ۱ اصول کامپیوتر

صفحه 138:
idle #include<stdio.h> Main() 1 3 ‏و 10و[‎ long int factorial; printf(“n="); scanf(“%d”,&n); factorial=fact(n); printf(“\n fact(n)=%d” factorial); اصول کامپیوتر

صفحه 139:
int fact (int n) { long int f=1; while(n>1) PS return(f); 1 اصول کامپیوتر

صفحه 140:
-فراخوانی توسط ارجاع: در اين روش آدرس آركومان به درون تابع فراخوانده شده کپی میشود و انجام هرگونه تغییرات بر آنها بر آركومانهاى متناظر آن در تابع فراخواننده نيز همان اثر را خواهد داشت. اصول کامپیوتر

صفحه 141:
: انتقال آرایه به تابع سه روش براى تعريف يارامترى كه اشاره كر آراية را ‎Ber a ewe recep‏ - روش اول: يارامتر مورد نظر به صورت آرايه تعریف می گردد.

صفحه 142:
#include<stdio.h> void display(int num[10]); main() { int a[10], i; for(i=0 ; i<10 ; ++i) EGE display(a); ay void noor(num) { inti; for (i=0 ; i<10; ++i) printf (“\n%d”, num[i]); 7 اضول کمپیرتر

صفحه 143:
- روش دوم: آنرا بصورت آرايه اى معرفى مى كنيم كه اندازه ‎o wg]‏ 02 0 ‎void noor (num)‏ ‎int num{];‏ 1 ‎for (i=0 ; i<10 ; ++i)‏ ‎printf(“\n%d” , numl[i]);‏ اصول کامپیوتر

صفحه 144:
8 روش سوم: آنرا بعنوان يك اشاره كر 1 تعريف ‎void noor (num)‏ ‎int *num;‏ 1 11 ۰ for (i=0 ; i<10; ++i) printf(“%d” , numlil); 5 اصول کامپوتر

صفحه 145:
تابع بازگشتی: بازكشتى بودن فرآيندى اسنت.كه در آن.يك :تابع بطور ‎ESOL SEE geo uel OES‏ اصول کامپیوتر

صفحه 146:
لل ‎e‏ 1 غيرمستقيم تابع خود را فراخوانى كند. مثال: تابع زير مجموع اعداد طبيعى 1) تام را محاسبه مى كند ‎int sum(int n)‏ { ‎if(n<=1)‏ ‎return(n);‏ ‎ye)‏ ‎return (n+sum(n-1));‏ اصول کامپیوتر

صفحه 147:
استفاده از چند تابع: در زبان © مى توان در هر برنامه به هر تعداد كه نياز باشد تابع تعريف كرد و هر تابع می تواند تابع دیگری را فراخوانی کند. اصول کامپیوتر

صفحه 148:
قلمرو متغيرها: شده اند به دو دسته تقسيم ميشوند: ‎-١‏ متغير هاى محلی لسن مس ‎

صفحه 149:
- اینگونه متغیرها فقط درون همان تابع شناخته شده اند. - فقط در موقعى كه اجراى برنامه ارد بلوك آنها ميشود وجود دارند و بعد از آن,از بين مى روند. اصول کامپیوتر

صفحه 150:
ities | { int x; scanf(“%d”, &x); if(x<=1) { char str[20]; printf(“Enter City: “); gets(str); puts(str); 1 1 اصول کامپیوتر

صفحه 151:
NED ‏ل‎ eee) = در تمام طول برنامه شناخته شده اند و مى توانند بوسيله هر قسمت از برنامه بكار روند. 3 در تمامى وقت اجراى برنامه مقادير خود را حفظ اصول کامپیوتر

صفحه 152:
کلاسهای حافظه: سطح دخیره سازی اطلاعات و يا کلاس حافظه قلمرو متغیر و نیز زمان حیات آنرا در یک برنامه مشخص می کند. اصول کامپیوتر

صفحه 153:
‎i‏ درد در زبان © جهار كلاس حافظه وجو ‎500 6 ‏ا‎ ‎(Girlie eel (register) Gls - ‏- خارجی (6<6۲0۵۱) ‏اصول کامپیوتر

صفحه 154:
كلاين حافظه إتوماتيكك: ا ها همیشه در درون یک تابع توصیف می ‎Nyy ey‏ إل ل ل ل ا رل متغيرهايى كه در توابع كوناكون از اين نوع حافظه تعریف می شوند از یکدیگر مستقل خواهند بود حتی ‎mes‏ ۳ اصول کامپیوتر

صفحه 155:
‎ce Bee eee‏ تابع مقادير خود را از دست می دهند پس باید هنگام ورود مجدد به برنامه ‏دوباره مقدار دهی شوند. ‎

صفحه 156:
اگر متغیرهایی را در واحد اصلی تعریف کنیم و بخواهيم از آنها در واحد فرعى استفاده كنيم بايد آنها رادر اين واحدها با كلمه كليدى 11ع]/ا© معرفى کنیم: اصول کامپیوتر

صفحه 157:
‎File2‏ ات ‎extern int x ,y;‏ لو[ 1ك 60۱2۲ 6۲6۲۲ ‎char ch;‏ ‎main( ) func2( )‏ ‎Ah ee {‏ ‎we < ۷‏ ‎i‏ 0 ‎funcl1( ) func3()‏ ‎f‏ 1 ‎x =123; y =10;‏ ‎1] 1] ‏اصول کامپیوتر

صفحه 158:
‎OL ed‏ لد ور میشوند قلمرو آنها از محل تعریفشان تا انتهای برنامه می باشد و در بقیه برنامه و همه توابع بعد از آن شناخته شده اند. ‎

صفحه 159:
كلاسن حافظه استاتئك: ا ا 1 ‎wee ee”‏ ا ل را گردد. ‏اصول کامپیوتر

صفحه 160:
متغير هاى استاتيك نسبت به تابع خود محلى هستند اما برخلاف متغيرهاى اتوماتيك در,تمام طول برنامه مقدار قبلى خود را حفظ مى كنند.

صفحه 161:
‘float a,b,c () main : static float a ; void dummy(void) 1 ; void site (void) } ; satatic int a -int b i ee

صفحه 162:
‎Reve Bee tHe WO) e ie‏ الك متغیر های خارجی تعریف کرد در ابن موارد هرگونه ‎Sis Ses Ohl) os‏ ‎eee)‏ ا ‎peared OS Se Cee‏ ‎

صفحه 163:
هنكام توصيف متغيرهاى محلى استاتيك مئ توان آنها را مقداردهى اوليه كرد اما اين مقدار بايد بشكلك ثابتها بيان كردد نه عبارات.

صفحه 164:
کلاس حافظه تبات: اين نوع كلاس حافظه فقط در مورد متغیر هایی از نوع :۷ 6112۲ قابل اعمال است, استفاده از این کلاس حافظه سرعت هرنوع عملیات روی این متغیر ها را افزایش می دهد. اصول کامپیوتر

صفحه 165:
int noor( m,n ) ‏ار‎ ; register int n / ; register int k ;k=1 for (; n>0 ; n--) ;k=k+m ;return k { 0

صفحه 166:
ماکرو: ۱ ۱ Cocina eee eb yee ‏یک دستور و یا گروهی از دستورات تعریف شده‎ ‏باشد.‎ ‏در صورتى كه ماكرو شامل كروهى از دستورات باشد‎ ‏مشابه تابع عمل مى كند.‎ اصول کامپیوتر

صفحه 167:
<include<stdio.h# define area _ length*width# ()main / ;int length , width ; scanf(“%d%d” , length, width) ; printf(“area = %d” , area) 1 اصول کامپیوتر

صفحه 168:
تعريف ماكروها در ابتداى برنامه و بيش از تعريف ‎ene‏ تابع م - حوزه تعریف ماکرو از محل تعریف شدن تا انتهای ۳ ۰ ماکرویی که در یک فایل تعریف شده در فايل دیگری قابل شناسایی نیست.

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

صفحه 170:

صفحه 171:
ركه - مجموعه عناصرى است داراى ويزكيها و صفات یکسان هستند. - يك فضاى بيوسته ازحافظه اصلى كامييوتر كه مى تواند جندين مقدار را در خود جاى دهد.

صفحه 172:
تعریف آرایه: در زبان © آرايه ها بصورت متغيرهاى معمولى تعريف مى شوند با اين تفاوت كه نام آرايه بايد با ‎eR ly‏ ار م 242۳ رای ات وود ام ارات ۸۰/2 ۱5 اصول کامپیوتر

صفحه 173:
- آرايه ها از نظر نوع اختصاص حافظه فقط نمى توانند به صورت ۲۵01516۳ تعریف شوند. " برای آرایه هایی که بیرون از تابع تعریف می شوند سطح ذخيره سازى خارجى بعنوان ييش فرض در نظر گرفته می شود. اصول کامپیوتر

صفحه 174:
‎US ( :‏ اتوماتيك نمى توانند هنگام تعریف آنها مقدار اوليه بيذيرند. ‏- هركاه نام آرايه بعنوان آركومان يك تابع ظاهر شود بعنوان ادرس اولين عنصر ارايه تعبير مى كردد. ‎

صفحه 175:
رشته ها: در زبان © رشته ها بعنوان آرايه اى از كاراكترها ل ی ل ا ‎Sere‏

صفحه 176:
0 يك ثابت رشته اى آرايه اى را معرفى مى كند كه انديس يايين آن صفر و انديس بالاى أن تعداد كاراكترهايى است كه در رشته وجود دارد. - هر رشته به كاراكتر |الا(] كه يايان رشته را نشان ا كم

صفحه 177:
eC SIS) eee ewe SOC Sire eee) ‏چاپ می کند:‎ # include<stdio.h> main ( ) { char name[12] ; اصول کامپیوتر

صفحه 178:
int i; for (i=1,i<=15; ++i) 1 scanf(“%s”, name); printf(“\n%s” , name) ; }

صفحه 179:
مرتب سازى: 0 ‏ل‎ Cis HP peer PEE ‏يك ويزكّى يا نظم خاص سازمان دهى شوند اين‎ ‏عمل را مرتب سازی گویند.‎ ‏اين عمل به منظور سرعت بخشیدن به عمل جستجو‎ ‏می باشد.‎

صفحه 180:
جسلجو.: - هرگاه داخل مجموعه ای از عناصر دنبال عنصر خاصى بكرديم اين عمل را جستجو نامند. - جستجو در زمبنه هايى جون بانكهاى اطلاعاتى کر را درز

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

صفحه 182:
مرتب سازى حبابى: اين روش:از نظر منطق ساده ترين و از نظر كارايى يايين ترين روش مرتب سازى اطلاعات است. void BubbleSort (int Al ] , int n) { inti, j, temp; for (i=1 ; i<n ; ++i) for (j=0 ; j<n-l ; ++)) اصول کامپیوتر

صفحه 183:
lf (ALj] > Aj+1)) 1 temp = Aj]; Aj] = alj+1]; Alj+1] = temp; } 5 اصول کامپیوتر

صفحه 184:
مرتب سازى انتخابى: بريترى اين ربوش نسبت به روش حبابى آن است كه تعداد تعويض.عناصر كمتر شده و سرعت بيشتر مى شود. ‎void SelectionSort (int a[ ], int n)‏ i ; int i, max, temp for (i=l; i<n; + + i) / اصول کامپیوتر

صفحه 185:
;max = 0 for (j=1 ; j<= n-i+1; + + j) if(A[j] > A[max] ) ;max =j if(max !=n-i) ; temp = A[max] ; A[max] = A[n-i] ; A[n-i] = temp Ge

صفحه 186:
جستجو به روش خطی: اين روش ساده ترين راه براى جستجو در يك آرايه يا جدول نامرتب است. براى اينكار عنصر مورد جستجو را بطور متوالى با عناصر جدول مقايسه مى as

صفحه 187:
NP ey Wee ae SD aoe ae Be Oey int LinearSearch (int A[ ], int n, int x) / 101 | for (i = 0; i<n; + + i) if (x = = Afi] ) ; return (i+1) ‘return (0) { اصول کامپیوتر

صفحه 188:
جستجو به روش دودويى: اين روش در صورتى امكان يذير است كه عناصر جدول مورد نظر مرتب شدّه باشند در اين'صورت از روش خطى سريعتر مى باشد.

صفحه 189:
0050 ‏ا‎ 2 RNa ere kee Is Dy okie) ‏مى كند:‎ int BinarySearch (int A[ ], int n, int x) { int middle, L,H; L=0; H=n-1; while ( L <= H) { middle = (L+H)/2 ; اصول کامپیوتر

صفحه 190:
if (x = = A[middle] ) return (middle +1) ; if (x >A[middle] ) L= middle =1 ; else H = middle -1; 7 return(0) اصول کامپیوتر

صفحه 191:
کتابخانه ای رشته ها: 2 ۳2

صفحه 192:
مثال: برنامه اى كه دو رشته را از ورودى خوانده و ان دو را با هم مقايسه مى كند: ‎<include<string.h #‏ ‎<include<stdio.h #‏ ملقم () / ;char s1[80] , s2[80] , s3[80] ; gets (s1) ; gets (s2) اصول کامپیوتر

صفحه 193:
printf (“\n Lengths : %d%d\ n” ,strien (s1) , strlen (s2)) ; if (‘strcmp (s1 , s2)) printf (“\n The strings are equal\n”) ; strcpy (s1 , s3) staract (s1, s2) ; printf (“\n%s” , s3) ; printf (“\n%s” , s1) ; اصول کامپیوتر

صفحه 194:
۳۹

صفحه 195:
Dee Stee eo ten eee Se ۱ ‏ا‎ ‏رح‎ - اشاره گر روش غیرمستقيم دسترسی به داده ها است.

صفحه 196:
موارد استفاده از اشاره 110 ۱ eee ‏برگرداندن چندین مقدار از تابع فرعی‎ - 1 pe Ce - تشکیل ساختار‌های پیجیده SSH - تخصيص حافظه به صوريت يويا اصول کامپیوتر

صفحه 197:
در بحث اشاره گرها عملگر ۶ به دو مفهوم بکار می ‎Ay‏ ‏< در معرفی متغیرها به عنوان عملگر اشاره گر - براى دستيابى به مقدار متغيرى كه ادرس ان در يك متغير اشاره كّر قرار دارد.

صفحه 198:
‘laf Be) ‏مقداردهى اوليه‎ به هر نوع متغير از نوع اشاره كر مى توان هنكام اعلان آن مقدار اوليه نسبت داد در اينصوّرت مقدار اوليه مورد نظر بايد يك آدرس يا |الام باشد. اصول کامپیوتر

صفحه 199:
ة تعربف متغير اشارهكر نحوة تعر يف متغير 3 1 امتعيز ن اشاره می کند اشارهكر * نوع دادهاي كه به ان ‎١‏ ره مي نام متغير ‎So Lisl‏ ‎pend‏ int *p; char *pc; float *fp; اضول کمپیرتر

صفحه 200:
عملكرهاى اشارهكر : شح كند. 5 اا ‎ie ary ae re‏ ‎se Weer CRN [Cty Ses‏ | 07 50 ‏ریز‎ ETE 7 HO Cae CA é : ‏لس‎ اصول کامپیوتر

صفحه 201:
مثال ‎int i= 100;‏ ‎int * pi;‏

صفحه 202:
pi=&i;

صفحه 203:
ار« ‎BS‏ تهی: - زبان © مفهوم اشاره كر |1ل(ا را پشتیبانی می کند و آن اشاره گری است که به هیچ مقدار معتبر اشاره - هر اشاره گری که مقدار صحیح صفر به آن نسبت داده شده باشد.

صفحه 204:
int * pl,*p2,i; 01 2 7 : 2 + 1م < 1 : 2 *1+ 1م 1م ‎pl == p2‏ 1 -> 2م اصول کامپیوتر

صفحه 205:
مثال: در برنامه زیر حلقه ع۷/۱۱[1 تا موقعی که 0 یک اشاره كر | الال نباشد عمل تكرار را ‎eee)‏ دهد: ‎char *p ;‏ 7 (p) { اصول کامپیوتر

صفحه 206:
ل ۷۱ عمل انتساب 0 0 - انتساب: به يك اشاره گر می توان آدرس یک متغیر يا مقدار صفر نسبت داد.

صفحه 207:
روش غلط ‎swap (int‏ سیم ‎int temp ;‏ ‎temp =a;‏ ‎=p;‏ ۱ b = temp; bi اصول کامپیوتر

صفحه 208:
روش صحیح ‎void swap (int *a, int *b)‏ int temp ; temp = *ta; *q = *b; *b = temp; } اصول کامپیوتر

صفحه 209:
void main () int x =10,y = 20; swap ( &«, &y ); printf (“x = %d , y = %d”, x,y); } x=20,y=10 اصول کامپیوتر

صفحه 210:
- محاسباتى: مى توان يك مقدار صحيح را .به اشاره كر اضّافه كرد. ‎<include<stdio.h#‏ ‎main ()‏ { : لام* , »ام* او ‎static int A[6] = {1,2,3,4,5,6};‏ اصول کامپیوتر

صفحه 211:
px = G&A[0] ; 51 دارم ۱999۱9۷ py=%x” , px, ‏(لام‎ printf(“\n py - px =%x” , py - 0۳ ۳

صفحه 212:
- مقایسه: اشاره گرهایی را که به داده های از یک ‎Ole Tew) tars‏ ار ‎px < py‏ ‎Px >= py‏ دم ‎Px != py‏ االاط < < ۴ اصول کامپیوتر

صفحه 213:
if (px<py) printf (“px points to lower memory than py”); حدات ‎printf (“px points to upper‏ ‎memory than py”);‏ اصول کامپیوتر

صفحه 214:
اشارهكر و آرايه نام آرايه آشاره گر به اولین عنتصر آن است. ‎int A [5];‏ @+e st 00 00 6 ve ole ۱ | [ 1 اصول کامپیوتر

صفحه 215:
بنابراین ‎A[2]‏ ‏ا 00 ۸ ]2[ < 100 : * (A + 2) = 100;

صفحه 216:
۳ ‎oer ce)‏ ا 0 رشته نیز ب و بنابراین ‎reser ia) pee ages er‏ نام رشته اشاره‌گر به اولب scanf (“%s” , s) ; اصول کامپیوتر

صفحه 217:
آرایه و رشته بعنوان پارامتر تابع ‎void f (int *a; char *s) {‏ a [2] = 100; strcpy (s , “Ali”) ; } اصول کامپیوتر

صفحه 218:
void main () { int b [10]; char str [20]; f (b , str) ; 7

صفحه 219:
تابع تخصیص حافظه پویا لندازة حافظة مورد نیاز ) ۲۱۵۱۱۵ * ۷۵۲۵0 (بهبليت int *p; p = (int *) malloc ( sizeof 9 اصول کامپیوتر

صفحه 220:
۱ int *A; A = (int *) malloc ( sizeof (int) * 100 ); با دستورات فوق آرابه‌ای با ظرفیت 100 عنصر با نام هر 0 اصول کامپیوتر

صفحه 221:
000 ‏تابع آزادسازى‎ ‏و تور‎ EVEL qui ums) bur) Ome penew br Pater) | int *A; A = (int *) malloc ( sizeof (int) * 100 ); ۱/0 ‏و‎ ‎; free (A) اصول کامپیوتر

صفحه 222:
روش غلط ‎int n;‏ ‎float A [n];‏ scanf (“%d’ , &n) ;

صفحه 223:
روش صحیح ‎int n;‏ ‎float *A;‏ scanf (“%d’ , &n) ; A = (float *) malloc (sizeof (float) * n); 00 ; free (A) اصول کامپیوتر

صفحه 224:
فصل نهم نوع داده كاربر

صفحه 225:
نوع داده هايى كه كاربر با توجه به نياز خود ايجاد مى كند عبارتند از: pene ۱۳/292 - اجتماع aged? اصول کامپیوتر

صفحه 226:
(۳ نوع داده متفاوت می باشد

صفحه 227:
struct structure_name 1 176 ۷۵۲1۵0161 67 type variablem_name; ۳

صفحه 228:
نمونه اى از تعريف ساختار همراه با نماى ظاهرى: struct account{ int acct-no ; char acct-tyf char name[8 float balance ۷ اصول کامپیوتر

صفحه 229:
ید | عستا یک شاختار ,نمی نوان کلاسم حافظه اختصاص داد. - هنكام تعريف يك ساختار نمى توان به اعضاى آن مقدار اوليه نسبت داد.

صفحه 230:
قطعه برنامه زیر نحوه اختصاص مقادیر اولیه به اعضای یک متغير ساختار را نشان مى دهد: struct data { int month ; int day ; int year ; 1 struct account { int acc-no ; اصول کامپیوتر

صفحه 231:
char acc-type ; char name[80] ; float balance ; struct data lastpayment ; ips Static struct account customer = {12746 ,’R’ , “payman noor” , 2986.50 , 2

صفحه 232:
‎eps.‏ شك ساختار: - اعضاى يك ساختار معمولا مستقل از هم يردازش مر - به هر عضو ساختار با استفاده از عملكر ”.'رجوع مى شود. ‎Variable.member‏ ‏اصول کامپیوتر

صفحه 233:
داده تعریف شده توسط کاربر : در زبان ‏ کاربران می توانند نام جدیدی برای نوع داده تعریف کنند این کار به کمک کلمه کلیدی ‎eh‏ ره ;Typedef type name اصول کامپیوتر

صفحه 234:
اجتماع: ا اا ال ا ل 20 ا ‎eS‏ ‎union tag {‏ ‎member 1;‏ ‎member 2;‏ member m; 1

صفحه 235:
نوع شمارشى: يكى از انواع داده استكالر است و.اعضا آن تابتهايى هستند كه بعنوان شناسه نوشته می شوند. 10617101ع70,..., 1ع 29 ۲۲۱ 61۱:

صفحه 236:
فصل دهم 39 پشته و صف

صفحه 237:
ا ا ‎oe‏ ۷ حذف از يك سمت أن كه (]0] ناميده نى شود صورت مى كيرد.

صفحه 238:
* ‎Rar te‏ ل كك ا ‏مم | © نك ك4 + 4 @ @ © + © ‏اصول کامپیوتر

صفحه 239:
از آنجا كه آخرين عنصر وارده به يشته اولين عنصر حذف شده از آن مى باشد يشته را بعنوان يك ليست 0 شناسند.

صفحه 240:
برخلاف آرایه پشته در طول اجرای برنامه بطور پویا افز ايش می بابد و محدودیتی نیز در تعداد عناصر پشته ‎ar)‏ ا

صفحه 241:
يشته در زبان © بصورت ساختمانى با دو عضو تعريف مى شود يكى ارايه اى از عناصر پشته ديكرى متغيرى كه نشان دهنده موقعيت بالاى يشته در آرايه است.

صفحه 242:
1 ‏ا ا ا ال‎ ayer on) ‏در آن از يك سمت و تمام حذفهاى آن از:سمت ديكر‎ ‏انجام مى كيرد.‎

صفحه 243:
از آنجا كه اولين عنصر وارده به يك صف اولين عنصرى است كه خارج مى شود صف بعنوان ليست 0بر نظر گرفته می شود.

صفحه 244:
ESRC STUD RC SISTED ne OTe STS TCNTP B® ‏به دو متغیر ۲۳0۲ و ۲6۵۲ جهت نشان دادن ابتدا‎ ‏و انتهاى عناصر صف نياز داريم.‎

صفحه 245:
سبط ۶ 1۳ صف با سه عنصر 00 SS 9 حذف عنصر از صف مس as 20 © اصول کامپیوتر

صفحه 246:
صف اولويت ساختمان داده اى است كه در آن ترتيب طبيعى عناصر نتايج اعمال ابتدایی آن را تعیین می كند و بر دو نوع است: <- صعودی ۳

صفحه 247:
5 صف اولويت صعودى: صفی است که درج عناصر در آن به هر صورتی ممكن است اما در موقع حذف كوحكترين عنصر ۳۰۰۱ Re اصول کامپیوتر

صفحه 248:
- صف اولويت نزولى: همنند صف اولويت صعودى است با اين.تفاوت كه عمل حذف موجب حذف بزركترين عنصزرٌ صف مى سود.

صفحه 249:
صف حلقوى: 0 et Porro VP Pee Ie يك موقعيت عقب تر از اولين عنصر موَجود در صف و انديس انتها به انتهاى فعلى صف اشاره مى ‎“pas‏

صفحه 250:
1 9 2 صف هاى حلقوى تهى و غير تهى 9 9 11 0 Lars aD) سس 91 1 109) ۳-00 اور

صفحه 251:
فصل یاز دهم ساختار 5 کر

صفحه 252:
درخت: بطور کلی درخت مجموعه محدودی از یک یا چند گره با شرايط زير است: ‎-١‏ داراى كره خاصى به نام ريشه است. ‎eerie‏ ا 0050 20 زيردرخت ريشه نام دارند تقسيم شده اند. ‎

صفحه 253:
نمونه اى از يك درخت ‎evens‏ oe ed ا هه ove ke اصول کامپیوتر

صفحه 254:
- به عنضر حاوى اطلاعات كره كفته مى شود. ال و ۱ شود. 3 هايى كه درجه صفر دارند برك ناميده مى شوند.

صفحه 255:
ا ل ا ا ‎REELS EF‏ است. فرزندان یک گره گره های همزاد نام دارند. - ارتفاع درخت به بيشترين سطح كره هاى آن درخت كفته مى شود.

صفحه 256:
درخت دودويى. اكر هر كره در يك درخت داراى دو انشعاب ‏ باشد ابه آن درخت درخت دودویی گفته می شود یک درخت دودویی یا تهی است یا حاوی مجموعه ای محدود از گره ها.

صفحه 257:
تفاوت بین یک درخت دودویی و یک درخت عادی: ‎EB 7‏ 020 3ك ‏- در يك درخت دودويى ترتيب فرزندان داواى اهميت ‏است. ‎

صفحه 258:
خواص درختان دودويى: ‎REG)‏ ا ا ا ا ل ا دودویی ‎eater a a aS)‏ ‏"- حداكتر تعداد كره ها در يك درخت دودويى به عمق »| برابر 2722| است. ‎

صفحه 259:
؟- براى هر درخت دودويى غير تهى اكّر 0 تعداد کر ‎Neen ele‏ ا ‎tala‏ ‎nO=n2+1‏ اصول کامپیوتر

صفحه 260:
‎weer‏ ا ا ‏پیمایش درخت پا دستیابی به هر گره درخت فقظ برای یکبار بر سه نوع است: ‎Inorder - ‎Preorder - ‎Postorder - ‏اصول کامپیوتر

صفحه 261:
:Inorder حرکت به سمت پایین به طرف چپ تا اخرین گره سپس گره بازیابی شده و به سمت راست حرکت را ادامه می دهیم. void inorder (treepointer ptr} 1 if (ptr) 1

صفحه 262:
inorder (ptr->leftchild); printf (“%d”, ptr->data); inorder (ptr->rightchild); } اصول کامپیوتر

صفحه 263:
:Preorder ابتدا كره و بعد انشعابات جب را بازيابى كرده تا رسيدن به گره تهی ادامه می دهیم سپس به نزدیکترین گره والدی که دارای یک فرزند راست باشد مراجعه و همین کار را ادامه 0 اصول کامپیوتر

صفحه 264:
void preorder (treepointer ptr) 1 if (ptr) 1 printf (“%d”, ptr->data); preorder (ptr->leftchild); preorder (ptr->rightchild); i } اصول کامپیوتر

صفحه 265:
:Postorder ابن بيمايش دو فرزند يك كرره را قبل از بنازيابى آن.كره ملاقات می کند یعتی فرزندان یک گره قبل از. خود آن كره بازيابى مى كريدد. ‎void postorder (treepointer ptr)‏ 1 ‎if (ptr)‏ {

صفحه 266:
postorder (ptr->leftchild); postorder (ptr->rightchild); printf’ %d”, ptr->data); 1 اصول کامپیوتر

صفحه 267:
درختان دودویی مساوی: درختان دودويى را در صورتى مساوى ناميم كه 000 هم داشته و اطلاعات موجود در كره های نظیرشان با هم برابر باشند. اصول کامپیوتر

صفحه 268:
int equal (treepointer frist , treepointer second) { return ((!frist && !second) | | (frist && second && (frist->data = = second->data)&& equal (frist->leftchild , second- >leftchild) && equal (frist->rightchild , second- >rightchild)) a

صفحه 269:
درختان جستجوى دودويى: یک درخت جستجو یک درخت دودویی است که ممکن ا 1 اكر درحّت تهئ نباشد داراى اين ‎Dyce‏ رت ‎-١‏ هر عنصر دارای يك كليد منحصر به فرد است. ‎

صفحه 270:
؟- كليدهاى واقع در زيردرخت غيرتهى جب بايد كمتر از مقدار كليد واقع در ريشه زيردرخت راست باشد. ۳- زیردرختان چپ و راست نیز خود درختان جستجوی دودویی می باشند.

صفحه 271:
:جستجوی یک درخت دودویی treepointer search (treepointer root , int key), { if (!root) return NULL ; if (key = = root->data)

صفحه 272:
return root; if (key < root->data) return search (root->leftchild , key) ; return search (root-> rightchild , key); اصول کامپیوتر

صفحه 273:
درج عنصر در درخت جستجوی دودویی: براى درج عنصر بايد درخت را جستجو نمود اكّر جستجو ناموفق باشد می توان عنصر را در محلی که جستجو خاتمه بيدا كرده درج كرد.

صفحه 274:
درج عنصرى به داخل دريخت دودويى ا 00 جایگذاری ۸۰

صفحه 275:
- درخت انتخابى: يك درخت دودويى نک دو فرزند خود مى باشد. - جنكل: اكر ريشه يى درخت را حذف كنيم آنكاه داراى يك جنكل خواهيم بود.

صفحه 276:
فصل دواز دهم فایل

صفحه 277:
- هر فايل شامل مجموعه اى از داده هاى مرتبط به هم است . - داده های مربوط به هر یک از اجزای فایل یک ركورد نام دارد. - هر ركورد مجموعه اى از جند فيلد است.

صفحه 278:
0 00006 د (۹ ۳ عور اصول

صفحه 279:
داده ها ممكن است به جهار روش در فايل ذخيره و بازیابی شوند: ‎١‏ - داده ها كاراكتر به كاراكتر در فايل نوشته شده و سپس کاراکتر به کاراکتر از فایل خوانده شوند. ‎

صفحه 280:
۱2 ۱ nn ‏ل‎ ERY TK Kien ‏نوشته و به همان صورت رشته اى از كاراكترها نيز‎ ‏مورد دستيابى قرار كيرند.‎

صفحه 281:
۳- داده ها در حین نوشتن بر روی فایل با فرمت لط ا ل اه - داده ها به شكل ركورد بر روى فايل نوشته و بصورت ركورد نيز خوانده شوند.

صفحه 282:
انواع فایل: داده ها در فايل به دو صورت ذخيره مى شوند: text - binary - اصول کامپیوتر

صفحه 283:
تفاوت این دو در سه مورد است: - تعیین انتهای فایل - تعیین انتهای خط - نحوه ذخیره شدن اعداد بر روی دیسک

صفحه 284:
در فايل, ]لاع اعداد بصورت ررشتة اى از كا راكترها ذخيره می شوند ولی در فایل باینری اعداد به همان صورتى كه در حافظه قرار مى كيرند روى ديسك ذخيره مى شوند.

صفحه 285:
دو روش از نظر نحوه ذخيره و بازيابى داده ها در فایل وجود دارد: - سازمان فایل ترتیبی - سازمان فایل تصادفی

صفحه 286:
- در سازمان فایل ترتیبی رکوردها به همان ترتیبی ا ل ال ا ‎Vere‏ ‎Teer)‏ ا ۷

صفحه 287:
- در سازمان فايل تصادفى به هر ركرد يك شماره اختصاص مى يابد بنابر اين مى.توان به ركورد دلخواه دسترسى بيدا كرد بدون اينكه ركوردهاى قبل 0

صفحه 288:
بازكردن و بستن فايل: معن ‎EES NT Mn ena‏ مواردى كه در حين باز كردن فايل مشخص مى شوند عبارتند از: اصول کامپیوتر

صفحه 289:
‎ue‏ ذخيره اطلاعات ‎fot A Kate‏ ی - نوع فایل ازنظر ورودی-خروجی ‏اصول کامپیوتر

صفحه 290:
انواع فایل: 0ك نوشتن اطلاعات كه طو ى باز شود كه فقط عمل نوشتن ‎Erik 1 2‏ آن مجاز است. اصول کامپیوتر

صفحه 291:
- فایل ورودی: فايلى كه طورى باز شود كه فقط عمل خواندن ‎nest]‏ ل ۳ را فايلى كه طورى باز شود كه عمل خواندن و نوشتن ‎Cet‏ 5

صفحه 292:
0 7 گرفته و داراى الگوی زير است: FILE *fopen (char *filename, *mode) اصول کامپیوتر

صفحه 293:
ادیر معتبر ۱۵06 در تابع ۲00۵61() pups inode از نوح غيرعغ را بعنوان ورودى باز مى كند.

صفحه 294:
:getc 5 putc ais برای نوشتن و خواندن یک کاراکتر در فایلی که قبلا پر ده ‎Oe‏ و ده int pute (int ch , FILE*fp) int getc (FILE*fp) اصول کامپیوتر

صفحه 295:
:getw + putw als ‏اين دو تابع مشابه عغ]©0 و ع]نام هستند ولى براى‎ 0000 ‏ل ال‎ Tee ES دیگر بکار می روند. putw(50 , fp); اصول کامپوتر

صفحه 296:
‘fgets sfputs als ‏برای نوشتن رشته ها در فایل از تابع کتابام] و برای‎ ‏خواندن رشته ها از فایل از تابع ۲9615 استفاده می‎ كردد. int fputs (const char *str , FILE *fp) char *fgets (char *str , int length , FILE *fp) اصول کامپیوتر

صفحه 297:
فايلهاى ورودى و خروجى: می توان یک فایل را به عنوان وسیله ورودی و خروجى مورد استفاده قرار داد براى اين منظور در تابع ۲0060 بجای ع1100]: + -یام+ برلعب از کردن‌فایل(ع]

صفحه 298:
+۷۷ - ۲ ۷۷+ بر لولیجاد کف یلا6 خ +3 - يا ق+ بر اءليجاد يكفايل اه و ياباز ‎(tone as‏ 0-07 0 + - براءياز كردنفايلباينرىوموجود اصول کامپیوتر

صفحه 299:
تابع 6 ۲6۲۲0۷: برای حذف فایلهای غیر ضروری می توان از این تابع استفاده كزد: int remove (char *filename)

صفحه 300:
-fscanfs fprintf els هرگاه لازم باشد داده ها با فرمت خاصی در فایل نوشته يا از أن خوانده شوند بكار مى روند: ‎int fprintf (FILE *fp , “*control_string,...”, char‏ ‎arg,...)‏ int fscanf (FILE *fp , “*control_string,...”, char arg,...)

صفحه 301:
توابع ۲۷۷۲6 و ۲۲6۵0: برای ورودی خروجی رکورد و ساير ورودی خروجی ها استفاده مئ شود: int fread (void *buffer, int num_byte, int count, FILE*fp) int fwrite (void *buffer, int num_byte, int count, FILE*fp)

صفحه 302:
ice struct student stud ; fread ( &stud , sizeof (struct student) , 1,fp);

صفحه 303:
مثال ‎int a [20] ;‏ ‎fread (a , sizeof (int) , 20,‏ ‎fp);‏ دریافت 20 عدد از فابل و قرار دادن آن در آرابه

صفحه 304:
#نکته ‎fprintf (FILE *fp,“ 2..<, "bic )‏ ‎fscanf (FILE *fp,“ 24<, "Li (‏ دقيقا همانند 0111111 و 562114 ذكر اشارهكر فايل در ابتداى آنها اصول کامپیوتر

صفحه 305:
مثال ‎FILE *fp1, *fp2;‏ ‎fp1 = fopen (“c:\test.txt’” , “rt”) ;‏ ‎fp2 = fopen (“c:\ali.dat’ , “wb”) ;‏ fscanf (fp1 , “%d %f %s”, &i, &f, ‏لوقت‎ ‎fprintf (fp2 , “%f, %s’, f , str) ; اصول کامپیوتر

صفحه 306:
تابع »۲566: براى خاندن و نوشتن داده ها بصسورت تصادفى بكاز م int fseek( FILE *fp,long int num_bytes,int jorigin)

صفحه 307:
دستگاه های ورودی و خروجی استاندارد: اشاره در تا سسکا زد ارد کر تام دستتاد ‎(ys)‏ ‏کارا 1 ‎stelj‏ رک ‎tein‏ دستگاد ورودی ‎stdout ‏ما استاندارد چا ‏پزرت سر و ‎

صفحه 308:
فصل سيزدهم توابع كتابخانه اى

صفحه 309:
تبدیل نرح رشتا ‎integer‏ سیز شناور تبدیل نرح به توح ‎long‏ الگو ‎void clrser (voicl)‏ int ato] (const char *5) clouble atof (const char #5) long atol (const char

صفحه 310:
A double sqrt (double x) double poy (double 4,douple y) int abs (int ‏رم‎ double faps(double x)

صفحه 311:
کار برد محاسبه قد رمطلق ‎double cabs (struct corno.‏ ‎nurn)‏ احذاذ موهومى double sin(double double cos(double arg) double tan(cdouble arg) ‏باه $314 انت‎ rein )(

صفحه 312:
جرب الكو coup in(clouple آرك سينوس ‎arg)‏ يق عدد es hy) ‏ماس‎ یک عدد () ددعت محاسبد آرک تانوانت ‎double atan(cdouole arg)‏ يق عدد ارك تائزانت نتيجه ‎cloud. an2(douole‏ y double ات )0 تتسیم آرگومان ارل بز دوم )4

صفحه 313:
اشر sinn(coup arg) double ¢ nn(douple arg) ail(clouble x)

صفحه 314:
۳ double log (clouble x) double loglO (double x) double a9 (double arg) double Idexp (double nurn,int ‏رع < زیر‎ exp) 0

صفحه 315:
floor () مويق 0 وررر 0) نواه ‎Q‏ التر double floor (clouble x) clouble frnod (clouple x, double y) double rnodf (double ~,int*y) double hypot (clouble x, double y)

صفحه 316:
الكو double ooly (double «int n,clouble Cf]) int tolower (int chi) int toulooer (int ch) isalona (int ch)

صفحه 317:
1) int isounce (int ch) int isugoer (int ch)

صفحه 318:
es) (she); str,char ch, signed count) void #mernichr(const 6 i 1 11-1 ‏ملع‎ ‎unsigned court) =a 9 void *rernicoy( void Inet py rorn, Unsigned court) 5 0 ۱

صفحه 319:
۳ اواج رده اهزور )ناد ‎court)‏ ar *strlwyr (char *str)

صفحه 320:
A strneat ‏ك)‎ 2, unsign const *str , , unsigned 1۲2 , unsign

صفحه 321:
لتر unsign ۳ char *strray (char char *strupar ( اصول کامپیوتر

صفحه 322:
۳ old frae (void *) calloc (unsigned urisn , yoid *rnalloe (unsign Hoe (void *ptr , unisig. 1

صفحه 323:
Fay void clreol() void delline() void inslina() پتوان متان‌نما رادر . ‎void gotoxzy(int x,‏ « فسال ترار داد ‎int y)‏

صفحه 324:
int far gaty(void) (void)

صفحه 325:
30 () رو لءررژرر رنگ ستن را مشخص می‌کند ال nt top int puttext(int laf , ۱۲۲۱ , ۷9۵ int right , int bottorn int pett int right , int void window(int | pint right, int oid taxtcolor(int color)

صفحه 326:
التر void taxtbackground(int color) void textrnode(int riod void far initgraph(int far *driver , int far *rnode char far *path) void far satokcolor(int color)

صفحه 327:
ار void far satpalatta(int inde, int color) void far putoizellint %, int ‏رنگ مشخصر شده را به مل‎ y , int color)

صفحه 328:
J ‏کاربرد‎ void far line(int startx , int ‏شطی از نقطهای به نقطه‎ starty , int endx, int endy) ‏ديكر رسع مىكند‎ yoid far lineto(int %, int y) void circlalint «, int y, int yoid far ellis rt, int end yraclius) Siu yradius ‏ریم میک‎

صفحه 329:
A void far drawpoly(1 nurnpoints , int fi void floodfill(int x, int y , int bordercolor) Fillstyle( , int color) 4t(char *str)

صفحه 330:
tion, int he, , voicl far

صفحه 331:
۳1 ۳ 1 سحتو 1 3 1309 ‎ga‏ / برای نمایش دادن محتراى يف ‎void far gatimagat(int left,‏ int top, void far *ouf, int ar, intend, int radius)

صفحه 332:
التر void far bar(int le int top, int right, int barsdfint p , int rig 2 pint dept

صفحه 333:
oak

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