آرايه ها و ساختارها سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر

Σχετικά έγγραφα
هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند.

محاسبه ی برآیند بردارها به روش تحلیلی

( ) قضايا. ) s تعميم 4) مشتق تعميم 5) انتگرال 7) كانولوشن. f(t) L(tf (t)) F (s) Lf(t ( t)u(t t) ) e F(s) L(f (t)) sf(s) f ( ) f(s) s.

ﻴﻓ ﯽﺗﺎﻘﻴﻘﺤﺗ و ﯽهﺎﮕﺸﻳﺎﻣزﺁ تاﺰﻴﻬﺠﺗ ﻩﺪﻨﻨﮐ

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { }

ﻞﻜﺷ V لﺎﺼﺗا ﺎﻳ زﺎﺑ ﺚﻠﺜﻣ لﺎﺼﺗا هﺎﮕﺸﻧاد نﺎﺷﺎﻛ / دﻮﺷ

روش محاسبه ی توان منابع جریان و منابع ولتاژ

مقدمه -1-4 تحليلولتاژگرهمدارهاييبامنابعجريان 4-4- تحليلجريانمشبامنابعولتاژنابسته

e r 4πε o m.j /C 2 =

( ) x x. ( k) ( ) ( 1) n n n ( 1) ( 2)( 1) حل سري: حول است. مثال- x اگر. يعني اگر xها از = 1. + x+ x = 1. x = y= C C2 و... و

تلفات کل سيستم کاهش مي يابد. يکي ديگر از مزاياي اين روش بهبود پروفيل ولتاژ ضريب توان و پايداري سيستم مي باشد [-]. يکي ديگر از روش هاي کاهش تلفات سيستم

پايداری Stability معيارپايداری. Stability Criteria. Page 1 of 8

تصاویر استریوگرافی.

تحلیل مدار به روش جریان حلقه

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i.

10 ﻞﺼﻓ ﺶﺧﺮﭼ : ﺪﻴﻧاﻮﺘﺑ ﺪﻳﺎﺑ ﻞﺼﻓ ﻦﻳا يا ﻪﻌﻟﺎﻄﻣ زا ﺪﻌﺑ

جلسه ی ۱۰: الگوریتم مرتب سازی سریع

V o. V i. 1 f Z c. ( ) sin ورودي را. i im i = 1. LCω. s s s

مقاومت مصالح 2 فصل 9: خيز تيرها. 9. Deflection of Beams

برخوردها دو دسته اند : 1) كشسان 2) ناكشسان

در اين آزمايش ابتدا راهاندازي موتور القايي روتور سيمپيچي شده سه فاز با مقاومتهاي روتور مختلف صورت گرفته و س سپ مشخصه گشتاور سرعت آن رسم ميشود.

:نتوين شور شور هدمع لکشم

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم

1سرد تایضایر :ميناوخ يم سرد نيا رد همانسرد تلااؤس یحيرشت همان خساپ

جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان

سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات

1 ﺶﻳﺎﻣزآ ﻢﻫا نﻮﻧﺎﻗ ﻲﺳرﺮﺑ

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم

جلسه ی ۳: نزدیک ترین زوج نقاط

جلسه 2 جهت تعریف یک فضاي برداري نیازمند یک میدان 2 هستیم. یک میدان مجموعه اي از اعداد یا اسکالر ها به همراه اعمال

چكيده SPT دارد.

O 2 C + C + O 2-110/52KJ -393/51KJ -283/0KJ CO 2 ( ) ( ) ( )

جلسه 12 به صورت دنباله اي از,0 1 نمایش داده شده اند در حین محاسبه ممکن است با خطا مواجه شده و یکی از بیت هاي آن. p 1

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) X"Y=-XY" X" X" kx = 0

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار

فصل چهارم: جبر رابطه اي

مقاطع مخروطي 1. تعريف مقاطع مخروطي 2. دايره الف. تعريف و انواع معادله دايره ب. وضعيت خط و دايره پ. وضعيت دو دايره ت. وتر مشترك دو دايره

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ(

ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی

آزمایش 8: تقویت کننده عملیاتی 2

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

بخش غیرآهنی. هدف: ارتقاي خواص ابرکشسانی آلياژ Ni Ti مقدمه

گروه رياضي دانشگاه صنعتي نوشيرواني بابل بابل ايران گروه رياضي دانشگاه صنعتي شاهرود شاهرود ايران

جلسه ی ۱۸: درهم سازی سرتاسری - درخت جست و جوی دودویی

را بدست آوريد. دوران

Top Down Parsing LL(1) Narges S. Bathaeian

جلسه ی ۲۴: ماشین تورینگ

1- مقدمه است.

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك

هدف: LED ديودهاي: 4001 LED مقاومت: 1, اسيلوسكوپ:

Angle Resolved Photoemission Spectroscopy (ARPES)

سبد(سرمايهگذار) مربوطه گزارش ميكند در حاليكه موظف است بازدهي سبدگردان را جهت اطلاع عموم در

درهم سازی سید مهدی وحیدی پور ارایه سوم: درهمسازی روشها و کاربردها

فصل پنجم زبان های فارغ از متن

t a a a = = f f e a a

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین

معادلهی مشخصه(کمکی) آن است. در اینجا سه وضعیت متفاوت برای ریشههای معادله مشخصه رخ میدهد:

a a VQ It ميانگين τ max =τ y= τ= = =. y A bh مثال) مقدار τ max b( 2b) 3 (b 0/ 06b)( 1/ 8b) 12 12

جلسه 22 1 نامساویهایی در مورد اثر ماتریس ها تي وري اطلاعات کوانتومی ترم پاییز

پایگاه داده جلسه 8 محمد علی فرجیان مدرس :محمد علی فرجیان 1

دانشکده ی علوم ریاضی جلسه ی ۵: چند مثال

جلسه 2 1 فضاي برداري محاسبات کوانتمی (22671) ترم بهار

تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: میباشد. تلفات خط انتقال با مربع توان انتقالی متناسب

هدف:.100 مقاومت: خازن: ترانزيستور: پتانسيومتر:

+ Δ o. A g B g A B g H. o 3 ( ) ( ) ( ) ; 436. A B g A g B g HA است. H H برابر

جلسه ی ۴: تحلیل مجانبی الگوریتم ها

نظریه زبان ها و ماشین ها

تحلیل الگوریتم پیدا کردن ماکزیمم

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn

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

ﯽﺳﻮﻃ ﺮﯿﺼﻧ ﻪﺟاﻮﺧ ﯽﺘﻌﻨﺻ هﺎﮕﺸﻧاد

يﺎﻫ ﻢﺘﻳرﻮﮕﻟا و ﺎﻫ ﺖﺧرد فاﺮﮔ ﻲﻤﺘﻳرﻮﮕﻟا ﻪﻳﺮﻈﻧ :سرد ﻲﺘﺸﻬﺑ ﺪﻴﻬﺷ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ مﻮﻠﻋ هوﺮﮔ ﻪﻴﻟوا ﺞﻳﺎﺘﻧ و ﺎﻫﻒ ﻳﺮﻌﺗ

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

دانشکده علوم ریاضی دانشگاه گیلان آزمون پایان ترم درس: هندسه منیفلد 1 باشد. دهید.f (gx) = (gof 1 )f X شده باشند سوالات بخش میان ترم

چكيده 1- مقدمه درخت مشهد ايران فيروزكوه ايران باشد [7]. 5th Iranian Conference on Machine Vision and Image Processing, November 4-6, 2008

حل J 298 كنيد JK mol جواب: مييابد.

مدار معادل تونن و نورتن


(,, ) = mq np داريم: 2 2 »گام : دوم« »گام : چهارم«

فصل 5 :اصل گسترش و اعداد فازی

اراي ه روشي نوين براي حذف مولفه DC ميراشونده در رلههاي ديجيتال

عنوان: رمزگذاري جستجوپذیر متقارن پویا


جلسه ی ۵: حل روابط بازگشتی

P = P ex F = A. F = P ex A

جلسه 14 را نیز تعریف کرد. عملگري که به دنبال آن هستیم باید ماتریس چگالی مربوط به یک توزیع را به ماتریس چگالی مربوط به توزیع حاشیه اي آن ببرد.

جلسه 16 نظریه اطلاعات کوانتمی 1 ترم پاییز

آزمایش 2: تعيين مشخصات دیود پيوندي PN

در اين ا زمايش ابتدا راهاندازي موتور القايي رتور سيمپيچي شده سه فاز با مقاومت مختلف بررسي و س سپ مشخصه گشتاور سرعت ا ن رسم ميشود.

خطا انواع. (Overflow/underflow) (Negligible addition)

شاخصهای پراکندگی دامنهی تغییرات:

فصل چهارم آشنايي با اتوكد 2012 فصل چهارم

جلسه 28. فرض کنید که m نسخه مستقل یک حالت محض دلخواه


فصل اول ماتریس و کاربردها

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل

تئوری جامع ماشین بخش سوم جهت سادگی بحث یک ماشین سنکرون دو قطبی از نوع قطب برجسته مطالعه میشود.

آشنایی با پدیده ماره (moiré)

نيمتوان پرتو مجموع مجموع) منحني

متلب سایت MatlabSite.com

Transcript:

آرايه ها و ساختارها سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان- دانشکده مهندسی برق و کامپیوتر

آرايه ها آرايه ها به عنوان يک نوع داده مجرد ساختارها و يونيون ها نوع داده اي مجرد چند جمله اي نوع داده اي مجرد ماتريس اسپارس رشته ها بازنمايي ارايه هاي چند بعدي دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 2

نوع داده ای مجرد نوع داده مجرد يا انتزاعي )ADT( نوع داده اي است که در ان مشخصات دادهها و اعمال بر روي آنها از بازنمايي و پياده سازي داده جدا مي شود نوع داده مجرد يا انتزاعي Abstracted Data Type دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 3

نوع داده ای مجرد عدد طبیعی

آرايه ساختار و يونیون مجموعه ای از عناصر از يک نوع داده می باشد آرايه مجموعه ای از عناصر است که لزومی ندارد داده های آن يکسان باشد ساختار اعالن يونیون مشابه تعريف و اعالن يک ساختار است با اين تفاوت که فیلدهای يک يونیون بايد در حافظه با هم مشترک باشند يونيون دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 5

آرايه به عنوان يک نوع داده مجرد آرايه مجموعه ای از زوج ها شامل انديس و مقدار است دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 8

لیست ها ليست هاي مرتب شده يا خطي به صورت Ordered (linear) list: (item1, item2, item3,, itemn) مثال (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) (Ace, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King) (1941, 1942, 1943, 1944, 1945) (a1, a2, a3,, an-1, an) دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 9

لیست ها اعمال.1.2 پيدا کردن طول يک ليست خواندن اقالم داده يک ليست از چپ به راست يا بر عکس نمايش يک لیست مرتب شده به صورت يک آرايه بازيابي i امين عنصر از يک ليست 3. تعويض يک قلم اطالعاتي در i امين موقعيت يک ليست 4. درج يک قلم داده جديد در i امين موقعيت يک ليست 5. حذف يک قلم اطالعاتي از i امين موقعيت يک ليست 6. پياده سازي نگاشت ترتيبي نگاشت غير ترتيبي sequential mapping (1)~(4) non-sequential mapping (5)~(6)

نوع داده ای مجرد چند جمله ای 1 دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 11

نوع داده ای مجرد چند جمله ای 2 x چند جمله ايهاي نمونه متغير A(x) = 3x 20 +2x 5 +4 and B(x) = x 4 +10x 3 +3x 2 +1 فرض کنيد دو چندجمله اي زير را داشته باشيم که در انها و a i ضريب و i توان است آنگاه A(x) + B(x) = (a i + b i )x i A(x) B(x) = (a i x i (b j x j )) به صورت مشابه ميتوان تفريق و تقسيم چندجمله ايها و بسياري از عمليات ديگر را تعريف کرد.

Representation I a.degree=n a.coef[i]=a n-i نوع داده ای مجرد چند جمله ای 3 #define MAX_degree 101 /*MAX degree of polynomial+1*/ typedef struct{ int degree; float coef [MAX_degree]; }polynomial; ضرايب به ترتيب نزول درجه در ارايه ذخيره شود Drawback: The first representation may waste space.

Representation II نوع داده ای مجرد چند جمله ای 4 آرايه coef را به گونه اي در نظر بگيريم که طول آن برابر a.degree+1 شود Class polynomial{ private: int degree; float *coef; }; Polynomial::polynomial( int d) { degree=d; coef=new float[degree+1] } Drawback: X 1000 +1 in this representation has 2 nonzero term

نوع داده ای مجرد چند جمله ای 5 Representation III تمام چند جمله ايها را در يک ارايه ذخيره کنيم فقط ضرايب غير صفر را به همراه توان انها ذخيره کنيم #define MAX_TERMS 100 /*size of terms array*/ typedef struct{ float coef; int expon; }polynomial; polynomial terms [MAX_TERMS]; int avail = 0;

نوع داده ای مجرد چند جمله ای 6 storage requirements: start, finish, 2*(finish-start+1) A(x) = 2x 1000 +1 B(x) = x 4 +10x 3 +3x 2 +1 representation <start, finish> <0,1> <2,5> specification poly A B

نوع داده ای مجرد چند جمله ای 7 يک تابع c که دو چند جمله اي Aو B را جمع ميکند تا D را به دست آورد D = A + B Analysis: O(n+m) where n (m) is the number of nonzeros in A (B).

نوع داده ای مجرد چند جمله ای 8 مشکل: هنگامي که چندجمله اي الزم نباشد بايد فشرده سازي انجام شود جابجايي داده انجام مي شود

ماتريس اسپارس در رياضيات يک ماتريس شامل m سطر و n ستون از اعضا مي باشد ماتريسي که عناصر صفر آن زياد بوده ماتريس اسپارس ناميده مي شود. sparse matrix data structure? 5*3 15/15 8/36 6*6

ماتريس اسپارس حداقل اعمال ممکن شامل ايجاد جمع ضرب و ترانهاده ماتريس مي باشد. دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 20

ماتريس اسپارس مي توان از يک آرايه از سه تايي هاي نمايش يک ماتريس اسپارس استفاده کرد. value>, row >براي col, row, column in ascending order # of nonzero terms # of rows (columns) دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 21

ماتريس اسپارس پياده سازي Create operation دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 22

ترانهاده يک ماتريس اسپارس براي پيدا نمودن ترانهاده يک ماتريس بايد جاي سطرها و ستون ها را عوض کرد بدين مفهوم که هر عنصر a[i][j] در ماتريس اوليه به عنصر[ b[j][i در ماتريس ترانهاده تبديل مي شود. دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 23

ترانهاده يک ماتريس اسپارس For each row i take element <i, j, value> and store it in element <j, i, value> of the transpose. difficulty: where to put <j, i, value> (0, 0, 15) ====> (0, 0, 15) (0, 3, 22) ====> (3, 0, 22) (0, 5, -15) ====> (5, 0, -15) (1, 1, 11) ====> (1, 1, 11) For all elements in column j, place element <i, j, value> in element <j, i, value> الگوريتم بيان شده نشان مي دهد که بايد تمام عناصر در ستون 0 را پيدا و آنها را در سطر 0 ذخيره کرد همچنين تمام عناصر ستون 1 را پيدا و در سطر 1 قرار داد و همين فرآيند را ادامه داد. از آنجا که ماتريس اوليه سطري بوده لذا ستون هاي داخل هر سطر از ماتريس ترانهاده نيز به صورت صعودي مرتب مي شود.

الگوريتم ترانهاده Assign A[i][j] to B[j][i] place element <i, j, value> in element <j, i, value> For all columns i For all elements in column j Scan the array columns times. The array has elements elements. ==> O(columns*elements)

EX: A[6][6] transpose to B[6][6] Matrix A Row Col Value i=1 a[j]=3 1 a[j].col = 2 i=0 i=0 j=2 j=2 j=1 j=1 j=4 j=3 j=3 j=4 j=5 j=5 j=6 j=6 a[j].col j=7 j=7 j=8 i=1 j=8 a[i].col = a[j].col 5 0!= == 1 05 32!= == i!= i i i!= i Set Up row & column in B[6][6] Row Col Value 0 6 6 8 1 0 0 15 2 0 4 91 3 1 1 11 And So on

بحث در مورد الگوريتم ترانهاده مقايسه الگوريتم ارائه شده براي بازنمايي اسپارس و بازنمايي دوبعدي مشکل: O(columns*elements) vs. O(columns*rows) وقتي ماتريس اسپارس نباشد elements --> columns * rows O(columns 2 *rows) ارايه columns راهکار: بار بررسي مي شود مي توان ترانهاده ماتريسي که به صورت سه تاييها نگهداري شده را در زمان elements) O(columns + پيدا کرد. تعداد عناصر در هر ستون ماتريس اوليه را مشخص کنيد شروع هر سطر ماتريس ترانهاده را تعيين کنيد

الگوريتم ترانهاده سريع تعداد عضوهاي هر ستون ماتريس A تعداد عضوهاي هر سطرB را به دست مي دهد برابر RowStart[i-1]+RowSize[i-1] است Rowstart[i] [0] [1] [2] [3] [4] [5] row_terms = 2 1 2 2 0 1 starting_pos = 1 3 4 6 8 8 transpose

[0] [1] [2] [3] [4] [5] Matrix A Row Col Value row_terms starting_pos 01 2 01 01 2 01 2 0 01 1 3 4 6 8 8 #col = 6 #term = 6

I = 23 45 67 18 Matrix A Row Col Value [0] [0] [1] [1] [2] [2] [3] [4] [3] [5] [4] [5] row_terms = = 2 2 1 2 22 0 0 1 1 starting_pos = = 3 23 1 4 3 4 56 6 7 88 8 8 9 9 Row Col Value 0 6 6 8 1 0 0 15 2 0 4 91 3 1 1 11 4 2 1 3 5 2 5 28 6 3 0 22 7 3 2-6 8 5 0-15

بحث در مورد الگوريتم ترانهاده سريع For columns Buildup row_term & starting_pos For elements For columns transpose For elements

بحث در مورد الگوريتم ترانهاده سريع مقايسه الگوريتم ارائه شده براي بازنمايي اسپارس و بازنمايي دوبعدي وقتي ماتريس اسپارس باشد O(columns+elements) vs. O(columns*rows) هم در حافظه و هم در زمان اجرا صرفه جويي خواهد شد وقتي ماتريس اسپارس نباشد elements --> columns * rows O(columns*rows) شبيه حالت استفاده از بازنمايي دوبعدي فقط ضريب ثابت FastTranspose بزرگتر از حالت ارايه اي هزينه: FastTranspose در مقايسه با transpose نيازمند حافظه بيشتري مي باشد. راهکار: Additional row_terms and starting_pos arrays از همان حافظه مشترک براي نمايش دو ارايه استفاده شود row_terms و starting_pos

نمايش آرايه ها معموال ارايه چند بعدي از طريق ذخيره سازي عضوهايش در يک آرايه يک بعدي پياده سازي مي شود. اگر يک ارايه به صورت ] n a[upper 0 ][upper 1 ] [upper اعالن شده باشد تعداد عضوهاي اين ارايه برابر است با n 1 مثال: اگر ما a را به صورت ان احتياج داريم a[10][10][10] اگر يک ارايه به صورت عضوهاي اين ارايه برابر است با مثال: اگر ما a را به صورت 24=2*2*3*2 عضو دارد i 0 اعالن کنيم آنگاه به 1000 a[p 1..q 1 ][p 2..q 2 ] [p n..q n ] n i 1 upper i ( q p 1) i i a[4..5][2..4][1..2] [3..4] واحد حافظه براي ذخيره اعالن شده باشد تعداد اعالن کنيم آنگاه اين ارايه دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 33

پیاده سازی آرايه های چند بعدی آرايه هاي دوبعدي مي توانند به صورت سطری يا ستونی ذخيره شوند. در روش سطري ابتداعناصر سطر اول سپس عناصر سطردوم و غيره ذخيره مي شوند. در روش ستوني ابتدا عناصر ستون اول سپس عناصر ستون دوم و غيره ذخيره مي شوند. در روش سطري آرايه هاي چند بعدي را به وسيله سطرهاي آن ذخيره A[ upper 0 مي کنيم. به عنوان مثال آرايه دو بعدي ][ upper 1] ( row است داراي upper 0 سطر به صورت 0, row1,..., row uppe 0 1) به نحوي که هر سطر شامل upper 1 عنصر مي باشد دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 34

پیاده سازی آرايه های چند بعدی int a[3][5]; روش سطري دانشگاه کاشان- دانشکده مهندسي برق و کامپيوتر 35

پیاده سازی آرايه های چند بعدی فرض کنيد آرايه A با upper 0 سطر و upper 1 ستون تعريف شده است و α آدرس [0][0]A باشد براي رسيدن به اولين عنصر سطر iٱم )يعني عنصر ) بايد از i سطر کامل A[i][0] بگذريم که هر سطر آن داراي upper 1 عنصر است. لذا آدرس عنصر اول سطر i اولين عنصر سطر =آدرس +α.i i برابر است با: upper 1 j j i ستون تا سطر عنصر اولين فاصله است. با برابر بنابراين آدرس عنصر به صورت است: زير A[i][j] A[i][j] آدرس عنصر = α+ i. Upper 1 +j

پیاده سازی آرايه های چند بعدی A[upper 0 ][upper 1 ] Row major order:a[i][j] : + i*upper 1 + j Column major order: A[i][j] : + j*upper 0 + i col 0 col 1 col u1-1 row 0 A[0][0] A[0][1]... A[0][u1-1] + u 0 +(u 1-1)* u 0 row 1 A[1][0] A[1][1]... A[1][u1-1] + u 1... row u0-1 A[u0-1][0] A[u0-1][1]... A[u0-1][u1-1] +(u 0-1)*u 1

پیاده سازی آرايه های چند بعدی براي نمايش آرايه سه بعدي ] 2 A[upper 0 ][upper 1 ][upper آن را به عنوان upper 0 آرايه دو بعدي با ابعاد upper 1 upper 2 در نظر مي گيريم. براي پيدا کردن محل a[i][j][k] address of a[i][0][0] = + i*upper 1* upper 2 چون i ارايه دوبعدي با ابعاد upper1 upper2 قبل از اين عضو وجود دارد address of a[i][j][0]= + i*upper 1 *upper 2 +j *upper 2 address of a[i][j][k]= + i*upper 1 *upper 2 +j *upper 2 +k

پیاده سازی آرايه های چند بعدی با تعميم بحث ارائه ارايه n بعدي که صورت زير به دست شده فرمول به صورت مي ايد. ادرس هر عضو[ n-1 A[i 0 ][i 1 ] [i در A[upper 0 ][upper 1 ] [upper n-1 ] يک به

نوع داده ای مجرد رشته عملکردهايي که مي توان براي رشته ها تعريف کرد مانند : ايجاد يک رشته تهي جديد خواندن يا نوشتن يک رشته ضميمه کردن دو رشته به يکديگر (concatenation) کپي کردن يک رشته مقايسه رشته ها درج کردن يک زير رشته به داخل رشته برداشتن يک زير رشته از يک رشته مشخص پيدا کردن يک الگو( pattern ) يا عبارت در يک رشته

نوع داده ای مجرد رشته نحوه ذخيره سازي در حافظه : در زبان C رشته ها به صورت آرايه هاي کاراکتري که به کاراکترتهي 0 \ ختم مي شوند نگهداري مي گردد. s[0] s[1] s[2] s[3] d o g \0 نمايش رشته char s[] = {"dog {; در زبان C پيدا کردن يک الگو در يک رشته روش کنوث-موريس-پرات مطالعه شود