120 likes | 250 Views
درس برنامه سازي کامپيوتر. آرايه ها در زبان برنامه سازي C++. آرايه. مجموعه اي از عناصر هم نوع يک نام دارد (مطابق قواعد identifier زبان c ) نوعي ترتيب براي آنها قائل شويم (انديس، شمارة عنصر از مجموعه) نحوة تعريف int x[5]; //x[0], x[1], x[2], x[3], x[4] float y[2][5];
E N D
درس برنامهسازي کامپيوتر آرايهها در زبان برنامهسازي C++
آرايه • مجموعهاي از عناصر همنوع • يک نام دارد (مطابق قواعد identifier زبان c) • نوعي ترتيب براي آنها قائل شويم (انديس، شمارة عنصر از مجموعه) • نحوة تعريف • int x[5]; //x[0], x[1], x[2], x[3], x[4] • float y[2][5]; • int z[]={2,4,129,-12,7289}; • char c[23], ch[]=“This is a sentence”; • int a[20]={2,3}; • float y[2][5][3][24]; • int d[2][3]={{3,5,9},{4,99,6}}, e[2][3]={4,8,-1,7,8,2};
آرايه • نام آرايه همواره از نوع اشارهگرهاست • int a[12]; • a اشارهگر به نوع int است • a[7] متغير از نوع int است • int b[3][5]; • b اشارهگر به اشارهگر از نوع int است • b[1] اشارهگر به نوع int است • b[2][4] متغير از نوع int است
رشتهها strings • آراية از نوع char را رشته مينامند • مطابق قرارداد زبان c رشته با مقدار صفر ختم ميشود • char s[]=“abcdef”; // is equal to : • // char s[]={‘a’,’b’,’c’,’d’,’e’,’f’,’\0’}; • نحوة ورود و خروج رشته • در توابع scanf يا printf با استفاده از قالب %s • توابع gets و puts (کتابخانة conio) ويژة ورود و خروج رشتهها هستند
استفاده از آرايه به عنوان آرگومان تابع • int fnc1 (int x [10]) { } • void fnc2 (int x[], int length) { } • char fnc3 (int x[][3], intrlen) { }
مثال • t23-t25
مرتبسازي • در کاربردها نياز به مرتب کردن ليستها بر حسب مقدار اعضاء پيش ميآيد • مثال : • مقادير اندازهگيري/محاسبه شده • معدل – وزن – ابعاد – موقعيت • ليست اسامي/شماره تلفن • روشها (الگوريتمها) ي مختلفي براي مرتبسازي ارائه شده • تفاوت روشها در • پيچيدگي/سادگي فرآيند • سرعت اجرا • کلي يا وابسته به شرايط خاص : ليست نيمه مرتب شده/پراکنده – حجم زياد/کم ... • طول برنامه
مرتبسازي • يک روند (الگوريتم) ساده : • در ليست موجود دنبال بزرگترين عضو بگرد • جاي آنرا با آخرين عضو عوض کن • عضو آخر را از ليست حذف کن (در نظر نگير) • اگر تعداد اعضاي ليست از 1 بيشتر است به اولين خط برو • معيارهاي مؤثر بودن الگوريتم • تعداد مقايسهها ؟ • تعداد عمليات انتقال ؟
مرتبسازي • روش حبابي : • تکرار اول • عضو اول را در نظر بگير • آنرا با عضو بعدي مقايسه کن • اگر عضو فعلي از عضو بعدي بزرگتر است جاي آن دو را عوض کن • عضو بعدي را در نظر بگير • اگر به عضو ماقبل آخر نرسيدهاي به خط دوم برو • به عدد تکرار يکي اضافه کن • عضو آخر فعلي را از عمليات بعدي حذف کن (در نظر نگير) • اگر تعداد تکرار از تعداد کل اعضاء يکي کمتر نيست به خط اول برو
جستجو در آرايهها • اگر آرايه مرتب نباشد • جستجو از يک کنار (جستجو exhaustive است) • اگر آرايه مرتب شده باشد • روشهاي مبتني بر ترتيب مانند • روش منصف
کتابخانة string.h • عمليات با متن نيازهاي مختلفي دارد • افزودن متنها به يکديگر (ترکيب) • جستجو در متن • جايگزين کردن در متن • حذف از متن
مثالها • t019 – t020